(2) Network Layer(네트워크 계층) - IPv4 주소
IPv4 주소
- 주소
- 연결의 양 끝 장치 식별(Identify)
- IPv4 주소
- 32비트
- 인터넷에 연결된 통신장치(호스트, 라우터)를 전세계적으로 유일하게 정의하는 32비트의 주소
- (GPT) 전통적으로 IPv4 주소는 네트워크 부분과 호스트 부분으로 나뉘며, 서브네팅을 통해 보다 세분화된 주소 구조를 갖게 됩니다.
- (GPT) 사람이 읽기 쉽도록, 32비트의 주소는 8비트씩 네 부분으로 나누고 각각을 십진수로 변환한 후 점으로 구분하여 표시합니다.
- IP 주소는 호스트나 라우터의 주소가 아닌, 연결의 끝단 주소
- 연결이 여러 개인 경우 연결 각각마다 주소가 있음
- 컴퓨터가 아니라, 포트와 같은 장치의 주소
- Transport Layer의 경우 End to End간 신뢰성 있는 정보 전달을 하고, 각 종단에 있는 IP 주소를 이용해 송/수신자를 식별
주소 공간
- 프로토콜이 사용하는 전체 주소의 수
- IPv4 : 32bit
- 2^32 = 약 43억개
- IPv6 : 128bit
- 2^128개
주소 계층(Hierarchy)
- 32bits 중 n bits는 Prefix임 (네트워크 부분)
- network를 식별하는데 사용됨
- GPT : 네트워크의 크기나 클래스를 나타내며, IP 주소 내에서 동일한 네트워크에 속하는 모든 장치는 같은 프리픽스를 공유
- 32bits 중 (32 - n) bits는 Suffix임 (호스트 부분)
- node에 대한 연결을 정의함
- GPT : 네트워크 내의 특정 노드(호스트)를 식별하는 데 사용됩니다
- 계층적 주소임
- Cf) MAC의 Flat address
- GPT : 라우터는 Prefix를 보고 올바른 네트워크로 전송할 수 있고, 서픽스는 네트워크 내에서 호스트를 찾는데 이용한다
- Cf) MAC의 Flat address
Classful Addressing
- Fixed-length prefix
- 네트워크 부분
- 호스트 부분
- 다양한 크기의 네트워크를 수용하기 위해, 3개의 고정길이 Prefix를 고안
- n = 8, 16, 24
- 전체 주소 공간은 5개의 클래스로 분할
- Class A, B, C, D and E
IPv4 Address class
- Class A
- 주소 범위: 0.0.0.0 ~ 127.255.255.255
- 2^7 - 1 = 127
- 네트워크 부분: 처음 8비트 (네트워크 주소의 첫 번째 옥텟은 0xxx xxxx 형태)
- 호스트 부분: 남은 24비트
* 네트워크의 개수 : 2^7 = 128개
- 클래스 A 주소는 매우 큰 네트워크를 위해 사용됩니다
- ex. 정부 기관이나 대규모 기업처럼 수백만 개의 호스트를 가진 네트워크에 할당
- 주소 범위: 0.0.0.0 ~ 127.255.255.255
- Class B
- 주소 범위: 128.0.0.0 ~ 191.255.255.255
- (2^6 - 1 = 63, 128 + 63 = 191)
- 네트워크 부분: 처음 16비트 (네트워크 주소의 첫 두 옥텟은 10xx xxxx xxxx xxxx 형태)
- 네트워크 개수 : 2^14개
- 호스트 부분: 남은 16비트
- 클래스 B 주소는 중형 크기의 네트워크에 적합합니다. 예를 들어, 대학이나 중소기업에 사용됩니다.
- 주소 범위: 128.0.0.0 ~ 191.255.255.255
- Class C
- 주소 범위: 192.0.0.0 ~ 223.255.255.255
- (2^ 5 - 1 = 31, 192 + 31 = 223)
- 네트워크 부분: 처음 24비트 (네트워크 주소의 첫 세 옥텟은 110x xxxx xxxx xxxx xxxx xxxx 형태)
네트워크 개수 : 2^21개
컴퓨터 개수 : 2^8 = 256개
- 호스트 부분: 남은 8비트
- 클래스 C 주소는 소규모 네트워크에 할당됩니다. 일반적으로 작은 비즈니스 또는 개인 LAN에 적합합니다.
- 주소 범위: 192.0.0.0 ~ 223.255.255.255
- Class D
- 주소 범위: 224.0.0.0 ~ 239.255.255.255
- (2^4 - 1 = 15, 224 + 15 = 239)
- 클래스 D는 네트워크 주소 할당용이 아니며, 멀티캐스트 그룹을 위해 예약되어 있습니다.
- 주소 범위: 224.0.0.0 ~ 239.255.255.255
- Class E
- 주소 범위: 240.0.0.0 ~ 255.255.255.254
- A, B, C, D를 제외한 나머지 부분
- 클래스 E는 연구 및 실험적 목적을 위해 예약되어 있으며, 일반적인 IP 네트워크에서는 사용되지 않습니다.
- 주소 범위: 240.0.0.0 ~ 255.255.255.254
Classless Addressing
- 주소 부족 --> 고갈
- Long-term solution : IPv6
- Short-term solution : IPv4 classless addressing
- A/B/C 클래스를 무시
- 클래스에 따라 네트워크 부분이 고정되던 것을 무시
- Network Prefix 크기에 따라 네트워크 부분이 달라짐
- 서브넷 마스크를 사용하여 네트워크와 호스트를 구분
- 주소 정보
- Prefix가 n bits라면, 주소의 수는 2^(32-n) 임
- 주소의 총 수는 해당 네트워크의 주소 공간을 나타내고, 연결될 수 있는 호스트의 수는 그 주소 공간에서 네트워크 주소와 브로드캐스트 주소를 제외한 주소 수를 의미함(총 주소의 수 - 2)
- 라우터까지 제외한다면 총 주소의 수 - 3이 된다
CIDR(Classless Inter-domain Routing) 표기
- IP 주소를 "IP 주소/프리픽스 길이" 형식으로 표기합니다.
- 예를 들어, 192.168.0.0/24는 처음 24비트가 네트워크 주소이고 나머지 8비트가 호스트 주소임을 나타낸다
- 여기서 /24가 Subnet Mask임 (Subnet Mask가 255.255.255.0 이라는 말과 같은 말임)
- 서브넷 마스크에 대해선 나중에 다루겠지만, IP 주소와 Subnet Mask와 비트 AND 연산을 하면 네트워크 주소가 나옴
- 아래서 다루는 내용이지만, Subnetting/VLSM과 Supernetting의 조합이다
- 여기서 /24가 Subnet Mask임 (Subnet Mask가 255.255.255.0 이라는 말과 같은 말임)
- 예를 들어, 192.168.0.0/24는 처음 24비트가 네트워크 주소이고 나머지 8비트가 호스트 주소임을 나타낸다
예제
- Classless address 167.199.170.82/27
- 네트워크의 총 주소 수 : 2^(32 - 27) = 2^5 = 32개
- 마지막 옥텟 : 010 10010
- 첫 주소 구하기(네트워크 주소 구하기)
- 010 00000 : 64이므로, 167.199.170.64임을 알 수 있다.
- 단순히 010 까지 네트워크 영역이므로 뒤에 00000이라고 생각해도 되고
- Subnet Mask가 111 00000이므로, IP와 Subnet Mask의 AND 연산 결과가 01000000이 되어 64가 된다고 생각해도 된다
- 010 00000 : 64이므로, 167.199.170.64임을 알 수 있다.
- 마지막 주소 구하기
- 네트워크의 총 주소 수가 32개임 (00000~11111)
- 따라서 167.199.170.95가 마지막 주소가 된다(BroadCast 주소)
- /27이면, /24에서 3개의 비트를 네트워크에 추가적으로 사용한다고 볼 수 있다.
- 호스트부 비트 8개중 3개의 비트를 네트워크부에 사용하는 것이다
- 8개(2^3)로 분할한다고 볼 수 있고, 네트워크를 이렇게 분할하는 것을 Subnetting이라고 한다
- 호스트부 비트 8개중 3개의 비트를 네트워크부에 사용하는 것이다
Subnetting
- A process of dividing a nework to a set of small networks
- 네트워크 Throughput이 증가함
- 네트워크 주소를 효율적으로 사용할 수 있다
- GPT : 각 서브넷은 독립적인 네트워크로 작동하여 관리를 용이하게 함
- GPT : 라우팅 테이블의 간소화 가능
Subnetting 절차
- 전체 컴퓨터 시스템을 몇 개의 단위 그룹(Subnet)으로 분류
- 전체 네트워크 주소를 서브넷 개수 이상으로 분할
- 가능 숫자 : 2, 4, 8, 16, ...
Subnet 분할
- 지역적으로 뷴류하여 묶음될 수 있으면 비슷한 크기로 분류
- 분할 수는 2, 4, 8 정도가 적당함
네트워크 주소 분할
- IP 주소 : 네트워크부 + 호스트부
- Subnetting은 호스트 주소의 일부를 네트워크 주소로 사용하는 것
호스트주소의 네트워크 비트 사용
- 분할 부분 매핑에 사용할 비트 수에 따라 서브넷 크기가 다름
- 최대 수용 가능 컴퓨터 수가 정해짐
- 같은 크기로 분할됨
- 서브넷의 수는 2의 거듭제곱 형태임
서브넷 주소 할당
- 서브넷 마스크 : (네트워크 주소 사용 부분 모두 1) + (호스트 주소 사용 부분 모두 0)
- 네트워크 주소 : (기존 네트워크 부 + 분할부분 매핑 주소) + (남은 호스트 부분 모두 0)
- 브로드캐스트 주소 : (기존 네트워크 부 + 분할부분 매핑 주소) + (남은 호스트 부분 모두 1)
- 사용 가능 주소 범위 : 네트워크 주소와 브로드 캐스트 주소 제외한 나머지
- 라우터 주소 할당에 1개를 예약함
- 컴퓨터 주소 할당 : 컴퓨터 개수만큼 할당하고, 여분은 추후 사용한다
Subnetting 예시(1)
- 192.168.1.0/24 네트워크를 /26으로 서브넷팅하는 경우
- 2 비트를 사용하여 4개의 서브넷을 생성
- 서브넷 마스크는 255.255.255.192 (1100 0000 --> 192)
- 네 개의 서브넷(192.168.1.0/26, 192.168.1.64/26, 192.168.1.128/26, 192.168.1.192/26)을 생성
- 00, 01, 10, 11 --> 0, 64, 128, 192
- 2^6 - 2개의 호스트를 지원(라우터 까지 빼면 2^6 - 3)
Subnetting 예시(2)
- (가), (나), (다) 3개의 부서 존재
- 컴퓨터가 각각 58 / 59 / 60 개씩 존재
- 할당 주소 : 192.168.1.0 네트워크 (C 클래스)다.
- 접근 : 일단 사용한 주소 범위는 2^8 - 2 = 254개
- IP 주소 공간을 효율적으로 이용하기 위해 Subnetting을 해보자
- 58 ~ 60대이므로 4개의 Subnet으로 나누면, 각 부서별 호스트를 모두 수용할 수 있음
- 2 비트를 네트워크 주소로, 나머지 6비트는 호스트 주소로 사용
- 2^6 - 2(네트워크, 브로드캐스트) - 1(라우터 할당 주소) = 61대까지 할당 가능
- 61 > 60이므로, 분할 가능함
- 서브넷 4개 중 3개만 사용
- 2 비트를 네트워크 주소로, 나머지 6비트는 호스트 주소로 사용
- (가)를 00에 사용
- 서브넷 마스크 : 255.255.255.192 (11111111 ~ ~ 11 000000)
- 네트워크 주소 : 192.168.1.0 (~ ~ ~ 00 000000)
- 브로드캐스트 주소 : 192.168.1.63 (~ ~ ~ 00 111111)
- 이용가능 주소 범위 : 192.168.1.1 ~ 192.168.1.62 (62개)
- 라우터 주소 : 192.168.1.1(보통 처음 혹은 끝 주소를 사용한다)
- 컴퓨터 할당 : 192.168.1.2 ~ 192.168.1.59(58개) // 나머지 60 61 62는 여분
- (나)를 01에 사용
- 서브넷 마스크 : 255.255.255.192 (11111111 ~ ~ 11 000000)
- 네트워크 주소 : 192.168.1.64 (~ ~ ~ 01 000000)
- 브로드캐스트 주소 : 192.168.1.127 (~ ~ ~ 01 111111)
- 이용가능 주소 범위 : 192.168.1.65 ~ 192.168.1.126 (62개)
- 라우터 주소 : 192.168.1.65(처음 주소 사용)
- 컴퓨터 할당 : 192.168.1.66 ~ 192.168.1.124(59개) // 나머지 125 126는 여분
- (다)를 10에 사용
- 서브넷 마스크 : 255.255.255.192 (11111111 ~ ~ 11 000000)
- 네트워크 주소 : 192.168.1.128 (~ ~ ~ 10 000000)
- 브로드캐스트 주소 : 192.168.1.191 (~ ~ ~ 10 111111)
- 이용가능 주소 범위 : 192.168.1.129 ~ 192.168.1.190 (62개)
- 라우터 주소 : 192.168.1.129(처음 주소 사용)
- 컴퓨터 할당 : 192.168.1.130 ~ 192.168.1.189(60개) // 나머지 190은 여분
- 11 영역은 추후 사용
- 서브넷 마스크 : 255.255.255.192 (11111111 ~ ~ 11 000000)
- 네트워크 주소 : 192.168.1.192 (~ ~ ~ 11 000000)
- 브로드캐스트 주소 : 192.168.1.255 (~ ~ ~ 11 111111)
- 이용가능 주소 범위 : 192.168.1.193 ~ 192.168.1.254 (62개)
- 서브네팅 결과
- 기존에는 외부 네트워크 - 라우터 - 177개의 컴퓨터
- 서브네팅 이후 외부 네트워크 - 라우터 - (58, 59, 60) 컴퓨터
- 기존 네트워크 주소 192.168.1.0에서 분할 후
- 192.168.1.0
- 192.168.1.64
- 192.168.1.128
- 192.168.1.192
SubnetMask와 First Address(네트워크 주소), Last Address(브로드캐스트 주소) 관계
- IP 주소와 SubnetMask를 AND 연산하면 First Address(네트워크 주소)가 나옴
- IP 주소와 (NOT Mask)와 OR 연산을 하면 Last Address(브로드캐스트 주소)가 나옴
- ex) Classless Address : 167.199.170.82/27
- 넷 마스크 : 255.255.255.224
- First Address : 167.199.179.64
- Last Address : 167.199.179.95
Subnetting 예시(3)
- classless 주소에서, 하나의 주소를 가지고, 그 주소가 속한 블록(Network)을 알 수가 없다
- Ex) 230.8.24.56의 경우 Prefix의 길이에 따라 속하는 Block이 다르다
Subnetting 예시(4)
- 한 ISP가 1000 개의 주소 블록을 요청했다고 하자.
- ISP가 요청했기 때문에, 효율적인 주소공간을 사용해야 함.
- 1000은 2의 거듭제곱의 수가 아니므로 1024개의 주소를 할당해야 한다.
- prefix 길이는 n = 32 − 10 = 22가 된다
- ISP에 할당하는 하나의 가용 블록의 예는 18.14.12.0/22
VLSM
- Variable Length Subnet Mask
- 분할 서브넷의 크기가 가변적임
- GPT : 하나의 IP 주소 블록을 여러 개의 서브넷으로 나누되 각 서브넷의 크기를 다르게 설정
- 최대 수용 컴퓨터의 수가 다름
- 서브넷 마스크가 서로 다름
- 네트워크 주소를 효율적으로 사용할 수 있음
- GPT : 더 작은 서브넷으로 세분화함으로써 라우터의 라우팅 테이블 크기를 줄이고, 네트워크 성능을 향상
- GPT EX) 하나의 네트워크에 50개, 30개, 10개의 호스트가 필요한 세 개의 서브넷이 있다고 가정
- 모든 서브넷을 동일한 크기로 나눈다면, 많은 주소가 낭비될 것입니다
- 하지만 VLSM을 사용하면, 각 서브넷에 필요한 정확한 수의 호스트를 수용할 수 있는 서브넷을 만들 수 있으므로 IP 주소 공간을 절약할 수 있습니다
VLSM 절차
- 전체 네트워크를 여러 단위로 그룹화(서브넷)
- 컴퓨터의 수가 가장 많은 서브넷 선택
- 서브넷 크기에 꼭 맞도록 서브넷의 크기를 정해야 함
- 네트워크로 사용할 최대 비트수를 선택
- EX) C 클래스의 경우 호스트 8비트 중에서, 1비트 사용시 126개 주소, 2비트 62개, 3비트 30, 4비트 14 ....
- 서브넷 단위에 맞게 주소 할당
- 남은 주소 대역에서 선택
- 할당 안한 나머지 서브넷 중 가장 큰 서브넷을 선택하여 위 동작을 계속
VLSM 예제(1)
- 구성환경
- (가), (나), (다) 3개의 부서
- 컴퓨터가 각각 120, 60, 14개씩 존재
- (가)와 (나), (다)가 멀리 떨어짐
- 할당 주소 : 192.168.1.0 네트워크
- 호스트 부분 : 하위 8비트
- 라우터 연결 부분도 하나의 독립된 네트워크
- 총 4개의 네트워크 필요
- 서브넷팅으로 분할 시
- 2비트 사용 --> 4개의 서브넷 분할가능
- 각 서브넷에 최대 61개의 컴퓨터 수용 가능
- 문제에서는 최대 120개 --> 불가능함
- VLSM를 사용하자
- 필요한 네트워크 수 산정
- 네트워크 설계
- (가) 네트워크 설계
- 120개의 컴퓨터 -> 1비트로 나눈 네트워크의 윗 부분의 반을 사용 (0) (반원)
- 총 가능 주소 : 126개 --> 수용 가능
- 총 네트워크 비트 수 : 24 + 1 = 25
- 서브넷 마스크 : 255.255.255.128 (1111111 ~ ~ 1 000 0000)
- 네트워크 주소 : 192.168.1.0(0 000 0000)
- 브로드캐스트 주소 : 192.168.1.127(0 111 1111)
- 사용 가능 IP : 192.168.1.1 ~ 192.168.1.126(126개)
- 라우터 주소 : 192.168.1.1(처음 주소 사용)
- 컴퓨터 할당 : 192.168.1.2 ~ 192.168.1.121(120개)
- (나) 네트워크 설계
- 60개의 컴퓨터 -> 나머지 아랫 부분(1)의 반(10, 11)에서 2비트로 나눈 처음 부분(10) 사용 (사분원)
- 총 가능 주소 : 62개 --> 수용 가능
- 총 네트워크 비트 수 : 24 + 2 = 26
- 서브넷 마스크 : 255.255.255.192 (1111111 ~ ~ 11 00 0000)
- 네트워크 주소 : 192.168.1.128(10 00 0000)
- 브로드캐스트 주소 : 192.168.1.191(10 11 1111)
- 사용 가능 IP : 192.168.1.129 ~ 192.168.1.190(62개)
- 라우터 주소 : 192.168.1.129(처음 주소 사용)
- 컴퓨터 할당 : 192.168.1.130 ~ 192.168.1.189(60개)
- (다) 네트워크 설계
- 14개의 컴퓨터 -> 나머지 (11) 중에서 3비트(110)로 나눈 처음 부분 사용
* 만약 4비트로 자르면, 16개 - 2개(네트워크, 브로드캐스트) - 1개(라우터) = 13개의 컴퓨터만 연결 가능해서 수용 불가능함
- 총 가능 주소 : 30개 --> 수용 가능
- 총 네트워크 비트 수 : 24 + 3 = 27
- 서브넷 마스크 : 255.255.255.224 (1111111 ~ ~ 111 0 0000)
- 110 0 0000이 아님을 유의하자
- 네트워크 주소 : 192.168.1.192(110 0 0000)
- 브로드캐스트 주소 : 192.168.1.223(110 1 1111)
- 사용 가능 IP : 192.168.1.193 ~ 192.168.1.222(30개)
- 라우터 주소 : 192.168.1.193(처음 주소 사용)
- 컴퓨터 할당 : 192.168.1.194 ~ 192.168.1.207(14개)
- (라) 네트워크 설계
- 2개의 라우터 주소 필요 --> 나머지 부분(111)을 사용
- (가)와 (나), (다)가 멀리 떨어져있기 때문에 라우터 2개 필요
- 총 네트워크 비트 수 : 24 + 3 = 27
- 서브넷 마스크 : 255.255.255.224 (11111111 ~ ~ 111 0 0000)
- 네트워크 주소 : 192.168.1.224(111 0 0000)
- 브로드캐스트 주소 : 192.168.1.255(111 1 1111)
- 사용 가능 IP : 192.168.1.225 ~ 192.168.1.254
- 라우터 주소 : 192.168.1.225, 192.168.1.226(2개)
- 컴퓨터 할당 : 없음
- 최대한 남는 주소가 많게 설계하려면, 남는 111 부분을 8등분 하여 (3개의 비트 추가적으로...) 사용하면 된다
- 4개에서 네트워크, 브로드캐스트를 빼면 2개가 남아서, 라우터 할당에 딱 들어맞음
- 2개의 라우터 주소 필요 --> 나머지 부분(111)을 사용
- (가) 네트워크 설계
VLSM 예제(2)
한 기관이 14.24.74.0/24 블록을 할당 받았다.
이 기관은 3개의 서브 블록으로 나누어 운영하려 한다.
한 블록은 10개의 주소, 다른 블록은 60개의 주소, 마지막 블록은 120개의 주소가 필요하다.
서브 블록을 설계하라. (VLSM)
- 할당받은 블록은 2^8 = 256개 주소를 사용할 수 있음
- 큰 블록부터 시작해서 작은 블록을 할당하는 순서로 진행(120 -> 60 -> 10)
- 가장 큰 블록의 주소 개수는 120 --> 128 할당
- 서브넷 마스크는 24 + 1 = (32 - 7) = 25비트
- 첫 주소는 14.24.74.0/25 (0 000 0000)
- 마지막 주소는 14.24.74.127/25 (0 111 1111)
- 다음으로 큰 블록의 주소 개수는 60 --> 64 할당
- 서브넷 마스크는 24 + 2 = (32 - 6) = 26비트
- 첫 주소는 14.24.74.128/26 (10 00 0000)
- 마지막 주소는 14.24.74.191/26 (10 11 1111)
- 마지막 남은 블록의 주소 개수는 10 --> 16 할당
- 서브넷 마스크는 24 + 4 = (32 - 4) = 28비트
- 첫 주소는 14.24.74.192/28 (1100 0000)
- 마지막 주소는 14.24.74,207/28 (1100 1111)
- 이 과정에서 208개의 주소를 사용하고, 48개의 주소가 남음 --> 나중에 사용하기 위해 남겨둠
- 첫 주소는 14.24.74.208 // 마지막 주소는 14.24.74.255
- 이 블록의 Prefix는 결정 불가능하고, 2~3개의 블록으로 사용 가능함
Supernetting
- Address Summarization(Aggregation)
- 복수개의 네트워크를 묶어 하나의 네트워크로 표현
- 작은 주소를 묶어서 하나의 더 큰 주소를 만드는 것
- GPT : Supernetting에서는 두 개 이상의 연속된 서브넷을 하나의 더 큰 주소 블록으로 합칩니다
- ex) 두 개의 /24 네트워크 (예: 192.168.1.0/24와 192.168.2.0/24)를 하나의 /23 네트워크로 합침
- 192.168.0.0 / 255.255.252.0은 4개를 하나로 표현
- 192.168.0.0 / 255.255.255.0
- 192.168.1.0 / 255.255.255.0
- 192.168.2.0 / 255.255.255.0
- 192.168.3.0 / 255.255.255.0
- 4개의 /24의 경우 (2^8 * 4 = 2^10) 하나의 /22 네트워크(2^10)로 합칠 수 있습니다
- 호스트 부에 2개의 비트를 더 할당했다고 볼 수 있나?
- 역으로 보면, 255.255.252.0 (/22)에서 호스트 비트 2개를 네트워크 부에 subnetting 한 것으로 생각해도 되지 않을까?
- CIDR 전략의 또 다른 큰 이점
- 라우팅 테이블을 간소화함으로써 빠른 처리가 가능하고 관리가 용이해짐
- 라우팅 정보 교환이 감소하면서 트래픽 절약이 가능함
CIDR 활용
- A 라우터의 라우팅 테이블이 다음과 같을 때
목적지주소 다음 라우터 홉 수 192.168.0.0/24 192.168.4.2 1 192.168.1.0/24 192.168.4.2 1 192.168.2.0/24 192.168.4.2 1 192.168.3.0/24 192.168.4.2 1 - 다음과 같이 라우팅 테이블을 줄일 수 있다.
목적지주소 다음 라우터 홉 수 192.168.0.0/22 192.168.4.2 1
Longest Prefix Match(LPM) 알고리즘
- 라우터 연결부분도 하나의 독립된 네트워크
- 예제
- LPM 알고리즘을 적용
- 라우터 A는 들어오는 패킷의 목적지 IP 주소를 확인
- A는 자신의 라우팅 테이블에서 목적지 IP 주소와 일치하는 가장 긴 네트워크 프리픽스를 찾습니다
- 가장 많은 수의 왼쪽에서 일치하는 비트(즉, 가장 긴 네트워크 프리픽스)를 가진 경로를 선택
- 라우팅 테이블에서 가장 긴 일치하는 프리픽스를 가진 엔트리가 결정되면, 해당 엔트리가 가리키는 다음 홉 라우터 또는 인터페이스를 통해 패킷을 전달
- 예시라우터 A는 또한 자신에게 직접 연결된 192.168.2.0/24 네트워크에 대한 엔트리도 가지고 있으며, 이는 지정된 호스트로 직접 연결되어 있음을 나타냄
- 192.168.2.0/24가 DA인 패킷이 들어오면, Prefix가 가장 긴 것을 찾아 A 라우터에 직접 연결되어 있음을 확인
- 라우터 A는 192.168.0.0/22 네트워크로 가는 패킷을 라우터 B(192.168.4.2 주소를 가진 인터페이스)로 전송
- LPM 알고리즘을 적용
- 라우터 A와 라우터 B가 있고, 이들 사이에는 WAN 연결을 통한 라우팅 경로가 설정되어 있습니다.
라우터 A는 192.168.2.0 서브넷에 직접 연결되어 있으며,
라우터 B를 통해 192.168.0.0, 192.168.1.0, 그리고 192.168.3.0 서브넷으로 라우팅할 수 있는 경로를 가지고 있습니다.
Supernetting(Address Aggregation) 예시
뒤 페이지의 그림은 ISP에 할당된 하나의 주소 블록을 더 작은 4개의 주소 블록으로 분할해서 사용하는 것을 보였다.
ISP는 4개의 주소를 모은 하나의 단일 주소를 다른 네트워크에 알린다.
일단 패킷이 이 ISP에 도착하면 ISP는 목적지 주소에 따라 해당하는 작은 블록으로 보내줄 책임이 있다.
이러한 방식은 마치 우체국에서의 편지/소포 전달과 같 은 시스템이다. 특정 국가/지역으로 먼저 보내지고, 그 다음 다시 목적지로 보내진다.
블록 1: 160.70.14.0/26 ~ 160.70.14.63/26
블록 2: 160.70.14.64/26 ~ 160.70.14.127/26
블록 3: 160.70.14.128/26 ~ 160.70.14.191/26
블록 4: 160.70.14.192/26 ~ 160.70.14.255/26
이 서브넷들은 모두 160.70.14.0 네트워크의 일부입니다.
각 서브넷의 시작 주소는 0, 64, 128, 192입니다.
이러한 주소는 256개의 주소를 포함하는 /24 네트워크 범위 내에 있습니다.
서브넷의 연속성 때문에, 우리는 네 개의 /26 네트워크가 사실상 /24 네트워크 한 개로 합쳐질 수 있음을 알 수 있습니다.
- 이 네 개의 서브넷은 160.70.14.0/24라는 한 개의 큰 네트워크 주소로 요약할 수 있다.
- ISP의 라우팅 테이블에는 네 개의 개별적인 라우팅 엔트리 대신 하나의 엔트리로 요약하여 표시할 수 있습니다
'Computer Science > 네트워크' 카테고리의 다른 글
[컴퓨터네트워크] 03. Network Layer Protocols(1) - 네트워크 계층 프로토콜 (0) | 2024.04.10 |
---|---|
[컴퓨터네트워크] 02. (4)Network Layer(네트워크 계층) - IP 패킷의 포워딩 (0) | 2024.04.07 |
[컴퓨터네트워크] 02. (3)Network Layer(네트워크 계층) - DHCP, NAT (0) | 2024.04.07 |
[컴퓨터네트워크] 02. (1)Network Layer(네트워크 계층) - 네트워크 계층 서비스 / 성능, 패킷 스위칭 (0) | 2024.04.07 |
[컴퓨터네트워크] 01. OSI 7계층과 TCP/IP (0) | 2024.04.07 |