IPv4(32 bits)
IPv6(128 bits)
다음 IPv4 주소를 점으로 구분된 십진 표기법(dotted-decimal notation)으로 변환하십시오.
점으로 구분된 십진 표기법: 잘못된 사용 예시
0을 맨앞에 넣으면 안됨
.은 3개사용
하고, 총 4개의 숫자 덩어리
→ `IPv4 주소` : (`0~255`의 숫자 사용)
IP주소 = 네트워크 주소 + 호스트 주소
(Network address + Host address)대륙에 주소 공간을 할당
합니다.네트워크 크기를 기준으로 주소 공간을 할당
하는 시스템- 클래스 `A 및 B는 너무 크다`: 클래스 A와 B의 주소 공간은 매우 크기 때문에 소규모 네트워크에는 `낭비`적입니다.
- 클래스 `C는 너무 작다` : 클래스 C 주소 공간은 네트워크에 속한 호스트 수가 1000-2000개 정도인 경우에는 `충분하지 않습니다.`
→ `A, B is wasteful and C is not enough`
- 네트워크의 수가 증가함에 따라 주소 공간은 `효율적으로 할당`되어야 합니다.
- 그러므로 Classful addressing은 네트워크의 크기에 제한을 가지고 있어서 주소 공간의 효율적인 할당이 어렵습니다.
- 이로 인해 `Classless inter domain routing (CIDR)이 도입`되었고, CIDR은 Classful addressing의 문제를 해결하고 보다 `유연하고 효율적인 IP 주소 할당`을 가능하게 합니다. `CIDR은 주소 공간을 보다 세분화`하여 `작은 네트워크를 조합`하거나 `필요한 만큼의 주소 공간을 할당`할 수 있도록 합니다. 이를 통해 `주소 공간의 효율성을 향상`시키고 `라우팅 효율`을 높일 수 있습니다.
네트워크 주소
: 호스트 그룹
으로 네트워크를 나타냅니다.
호스트 주소
: 네트워크 내의 호스트
를 나타냅니다.
대형 ISP 또는 기관의 경우, 클래스 A 주소 공간이 할당됩니다.
작은 ISP 또는 기관의 경우, 클래스 B 또는 클래스 C 주소 공간이 할당됩니다
→ Large ISP : Class A
→ Small ISP : Class B, Class C
주소 공간을 재할당(re-allocate)
하여 여러 개의 서브넷
을 구성할 수 있습니다.Subnet Masks
는 호스트 부분을 subnet ID와 host ID로 분할하는 데 사용됩니다. → host number = subnet ID + host ID
Classless Addressing = CIDR(Classless Interdomain Routing)
슈퍼네팅
(Supernetting) : subnet mask를 사용해 여러 개의 네트워크 주소를 결합
여러 개의 네트워크 주소를 결합하기 위해 서브넷 마스크를 사용
하는 것이 가능합니다.서브넷 마스크를 사용하여 어떤 크기의 네트워크든 정의할 수 있습니다.
CIDR
(Classless Interdomain Routing)로도 불립니다.
유연하고 효율적
으로 사용할 수 있도록 합니다. CIDR은 IP 주소를 엄격한 클래스 (A, B, C)로 나누지 않고, 접두사 길이
또는 서브넷 마스크
를 사용하여 표현합니다.여러 작은 네트워크를 더 큰 블록으로 통합
하여 라우팅 항목의 수를 줄이고
라우팅 효율성을 향상
시킵니다. CIDR은 네트워크 주소를 더 세분화
하고 IP 주소를 더 효율적으로 할당
하는 데 도움이 됩니다.IP 주소와 해당 서브넷 마스크를 IP 주소 다음에 슬래시 (/)와 함께 유효한 비트 수
로 표시합니다. 예를 들어, 192.168.0.0/16은 서브넷 마스크가 255.255.0.0인 네트워크 주소를 나타냅니다.주소 할당의 새로운 접근 방식
No class : 주소가 주소 블록으로 할당
됩니다.
주소 할당의 세 가지 규칙:
연속적
(continuous)이어야 하고, 분할되면 안된다. (address space : continuous O, partitioned X)개수는 2의 거듭제곱
이어야 합니다.첫 번째 주소는 블록 내 주소 개수로 나누어 떨어져야
합니다.예시: 조직이 16개의 주소
가 필요한 경우 - 205.16.37.32 ~ 205.16.37.47로 할당됨
조직이 16개의 주소가 필요한 경우, 주소 블록은 205.16.37.32에서 205.16.37.47까지 할당됩니다. 이러한 주소 할당은 연속적
이며, 주소의 개수가 2의 거듭제곱이며(2^4)
주소 블록의 첫 번째 주소인 205.16.37.32는 주소 블록 내의 주소 개수 16으로 나누어 떨어집니다.
이를 통해 조직은 필요한 주소를 효율적으로 할당받을 수 있습니다.
네트워크 마스크는 동일한 네트워크를 나타내는 IP 주소의 접두사
입니다.
IP 주소가 210.115.227.98이고 서브넷 마스크가 255.255.255.0인 경우, 이를 이진수로 표현하면 다음과 같습니다
IP 주소: 11010010 01110011 11100011/ 01100010
→ 네트워크 주소 : 210.115.227.0
(11010010 01110011 11100011)
→ 호스트 주소 : 0.0.0.98
(01100010)
서브넷 마스크: 11111111 11111111 11111111 00000000
네트워크 마스크는 IP 주소의 네트워크
부분을 나타내며, 네트워크 주소와 호스트 주소를 구분
합니다. 이 경우, 네트워크 부분은 IP 주소의 처음 24비트
이므로, 네트워크 주소는 210.115.227.0
입니다. 호스트 주소는 IP 주소의 마지막 8비트
이므로, 호스트 주소는 0.0.0.98
입니다. 이를 통해 네트워크 마스크를 사용하여 IP 주소를 네트워크와 호스트로 구분할 수 있습니다.
네트워크 마스크는 x.y.z.t/n
형식으로 표현되며, 여기서 n은 서브넷 마스크의 길이(subnet mask) 또는 프리픽스 길이(prefix length)
를 나타냅니다.
주어진 예시인 205.16.37.39/28
의 경우, 이를 이진수로 표현하면 다음과 같습니다:
IP 주소: 11001101 00010000 00100101 00100111
prefix length : 28
prefix length 28은 이진수로 11111111 11111111 11111111 11110000
과 같은 28비트의 서브넷 마스크
(28개의 1)
를 의미합니다. 이로부터 네트워크 주소와 호스트 주소를 추출할 수 있습니다.
네트워크 주소는 IP 주소와 서브넷 마스크
를 AND 연산
하여 구합니다. 여기서는 IP 주소의 처음 28비트와 서브넷 마스크의 처음 28비트를 AND 연산하여 네트워크 주소를 얻을 수 있습니다. 호스트 주소는 IP 주소의 마지막 4비트이므로, 호스트 주소는 37.39입니다.
따라서 주어진 IP 주소 205.16.37.39와 프리픽스 길이 28을 사용하여 네트워크 주소와 호스트 주소를 구할 수 있습니다.
💡 네트워크 주소 = IP 주소 && 서브넷 마스크Exercise : ISP 가 IP 주소 블럭에 할당되었다. 주소 중 하나는 205.16.37.39/28
이다. 해당 IP주소 블럭의 첫 번째 주소
는 무엇인가?
Answer : 205.16.37.32(11001101 00010000 00100101 00100000)
주어진 IP 주소 블록인 205.16.37.39/28에서 첫 번째 주소는 호스트 비트를 모두 0으로 설정
하여 결정할 수 있습니다.
블록의 주소 중 하나가 205.16.37.39이고, 첫 번째 주소는 호스트 비트인 마지막 4비트를 0으로
설정하면 된다.
블록의 첫 번째 주소인 205.16.37.32의 이진 표현은 11001101 00010000 00100101 00100000
입니다. 이 주소는 블록의 네트워크 주소를 나타냅니다.
일반적으로 블록의 첫 번째 주소는 주소 블록 자체를 나타냅니다. 따라서 이 경우 205.16.37.32/28은 205.16.37.32부터 205.16.37.47까지의 주소 블록을 의미할 수 있습니다.
→ 블록의 주소 중 하나 : 11001101 00010000 00100101 00100111
(205.16.37.39)
→ 블록의 첫 번째 주소 : 11001101 00010000 00100101 00100000
(205.16.37.32)
Exercise : ISP 가 IP 주소 블럭에 할당되었다. 주소 중 하나는 205.16.37.39/28
이다. 해당 IP주소 블럭의 마지막 주소
는 무엇이고, 블록에 있는 주소의 개수
는 얼마인가?
Answer :
블록의 마지막 주소를 찾기 위해, 브로드캐스트 주소를 결정해야 합니다. 접두사 길이가 /28인 서브넷에서, 브로드캐스트 주소는 모든 호스트 비트를 1로 설정
하여 얻습니다. 이 경우, 호스트 비트는 마지막 4비트
입니다.
호스트 비트(마지막 4비트)를 이진수로 변환하면 다음과 같습니다 : 0011
(11001101.00010000.00100101.0010 0111
)
주어진 주소 (205.16.37.39)에서 호스트 비트를 1111로 대체하면 다음과 같습니다:
205.16.37.47(11001101.00010000.00100101.0010 1111
)
따라서 블록의 마지막 주소는 205.16.37.47
입니다.
주소 블록의 크기는 접두사 길이에 따라 결정됩니다. 주어진 접두사 길이인 /28에서 호스트 비트는 4비트
입니다. 블록에 있는 주소의 수를 계산하기 위해, 2^(32 - 접두사 길이)
의 공식을 사용할 수 있습니다. 이 경우, 접두사 길이는 28이므로 계산은 다음과 같습니다:
2^(32 - 28)
= 2^4 = 16
호스트 비트는 2^4 = 16개의 주소를 나타낼 수 있습니다.
따라서 블록에는 16개의 주소
가 있습니다.
첫번째 주소 : 호스트 비트인 마지막 4비트를 0으로 설정
마지막 주소 :호스트 비트인 마지막 4비트를 1로 설정
주소의 개수 : 2^(32-접두사 길이)
Forwarding with CIDR (CIDR를 사용한 포워딩)
Entry 항목 : (Destination 목적지, Next Hop 다음 홉)
큰 크기는 처리 속도를 늦춥니다.
공간이 너무 많이 필요
합니다.Prefix Routing
Prefix Routing
예를 들어, 194.24.x.x
가 영국 캠브리지 대학의 호스트
를 나타낸다고 가정해보겠습니다.
서강대학교의 라우터로부터,
194.24.1.1, 194.24.83.72, 194.24.235.55는 동일한 next hop 라우터
를 갖는 것이 가능합니다.하나의 라우트 항목
만 유지됩니다.목적지의 처음 16비트가 194.24.0.0와 일치하는 경우에 이 항목을 사용
해야 합니다.대학교의 호스트 주소가 다음과 같다고 가정해봅시다.
194.24.17.4
주소로 가는 패킷의 경우 00010001옥스포드
의 경로가 사용됩니다.가장 긴 접두사를 가진 엔트리
가 사용됩니다.→ 뒤의 /prefix 에서 prefix만큼의 비트가 일치해야 이걸로 라우팅될 수 있음
—좀 더 설명—
194.24.17.4 주소로 가는 패킷의 경우,
일치하는 엔트리가 여러 개인 경우 가장 긴 접두사를 가진 엔트리가 사용된다
는 것입니다. 194.24.17.4 주소는 194.24.16.0/20의 접두사 길이인 20비트와 일치하며, 이것이 다른 경로보다 긴 접두사를 가지기 때문에 Oxford의 경로가 선택됩니다.따라서, 194.24.17.4 주소는 Oxford의 경로로 전달되며 해당 네트워크로 라우팅됩니다.
목적지 IP 주소: 194.24.17.25 (11000010 00011000 00010001 00011001)
이제 이진 표현과 가능한 경로들을 비교해보겠습니다:
194.24.17.25의 접두사가 옥스포드의 경로 (194.24.16.0/20)와 일치하므로, 이 패킷은 옥스포드 경로를 통해 라우팅될 것입니다.
가장 긴 매칭 접두사 (Longest matching prefix)
194.24.14.72
인 경우, 어떤 Next Hop
을 사용해야 할까요?→ 접두사(맨 뒤에거)가 가장 긴거!
→ 그게 더 구체적인 경로
이다
목적지 : 11000010.00011000.00001110.01001000
194.24.0.0/19 : 11000010.00011000.00000000.00000000 ok
194.24.12.0/22 : 11000010.00011000.00001100.00000000 ok, longer → 선택
194.24.12.0/**22**
의 접두사 길이가 더 길기
때문에 샌프란시스코
가 다음 홉으로 선택됩니다.가장 긴 접두사: 더 구체적인 경로
Route aggregation(경로 집계)
여러 작은 경로 항목을 하나의 큰 항목으로 결합
하는 기술입니다.동일한 Next Hop
을 가지고 있는 경우입니다. 이러한 세 개의 경로 항목을 집계할 수 있습니다(Route aggregation 경로 집계)공통된 접두사 "194.24."
를 찾고, 개별 경로를 모두 포함하는 가장 긴 접두사 길이를 결정
할 수 있습니다. 이 경우, 가장 긴 접두사 길이는 19비트입니다
. → 케임브리지, 에딘버러, 옥스포드의 194.24 이후의 비트에서 동일한 비트가 17~19비트까지라는 것!! 그 다음부터는 다르다는 것!!aggregated : 194.24.0.0/19
라우팅 테이블의 크기를 줄이고 라우터의 처리 성능을 향상
시킬 수 있습니다.