IPv4
Dotted decimal notation
- 32비트로 구성되어 주소를 사람이 읽기 편하도록 xxx.xxx.xxx.xxx 형태로 표기
- 내부적으로 컴퓨터가 32비티를 다시 사용하므로, 사람이 보는 것과 실제 컴퓨터 메모리 구조는 다름
IPv4 주소 유형
- Unicast: 1대1 통신을 위한 주소
- Multicast: 1대다 그룹의 방식으로 패킷을 전달
- Broadcast: 1대모두, 같은 서브넷 상 모든 호스트로 패킷을 보냄
IP 주소 공간 구조
IPv4는 처음에 A, B, C, D, E 클래스로 구분하여 할당했다.
A, B, C 클래스는 네트워크ID를 크게 세 덩어리로 나누었지만, 점차적으로 Goldilocks와 같은 불균형 할당 문제가 발생
IP Unicast 주소 구조
비효율적이던 주소 할당을 해결하기 위해 Classless 개념인 CIDR(Classless Inter-Domain Routing)가 도입됨.
CIDR 표기에서는 네트워크 ID 길이를 슬래시 뒤에 명시함.
- 163.152.0.0/16 (고려대학교)
- 61.78.0.0/14 (KT (일부))
IP 주소 집속 (Aggregation)
주소 배분 단위에서 클래스 개념을 쓰지 않게 되니, 라우팅 테이블이 급증하는 문제가 발생한다.
라우팅 테이블이 왜 늘어나는지 설명 (아래 펼치기)
1. 예전 Class 주소 상황
- 클래스 기반 주소, 예를 들어서 고려대학의 클래스 B를 통으로 주게 되면, 라우터는 고려대학으로 가려면 163.152.0.0/16 으로 보내는 하나의 라우팅 엔트리만 추가하면 된다.
- 즉, 거대한 주소 덩어리를 한 번에 등록하니 테이블이 많이 늘어나지 않는다.
2. 새로운 Classless 주소 상황
- 모든 단체에 클래스 B ($2^16$개)를 주기엔 IPv4 주소가 모자름
- 새로운 A 조직에게 클래스 C에 해당하는 작은 덩어리(222.0.0.0/24 ~ 222.0.31.0/24) 32개를 준다.
- 그러면 라우터에서는 해당 조직으로 가는 32개의 구간을 각각 별도로 등록해야 한다. (라우팅 테이블 증가)
3. 스노우볼
- 나중엔 테이블 32개가 아니라 32000개, 320000개가 될 수 있다.
- 결과적으론 인터넷 전체 라우팅이 느려진다.
aggregation = super-netting = route summarization
인터넷 중심부 라우터는 많은 트래픽을 처리해야 하므로, 라우팅 테이블이 커지면 성능에 영향이 있다.
인접 prefix들은 같은 지역에 할당하기 용이
만약, 조직 A (222.0.0.0/19)와 조직 B (222.0.1.0/19) 둘 다 내부 라우팅 경로가 같은 R3 라우터로 향하면 R2 라우터 입장에서는 그 블록을 합쳐 222.0.0.0/18 로 묶을 수 있다.
나중에 목적지 근처 R3 라우터에 가면, 다시 두 블록을 분리해서 조직 A, B를 각각 구분하면 된다.
일본 인터넷 Aggregation 적용 효과 (1995년 말)
IP 주소 배급
- ICANN(Internet Corportation for Assigned Names and Numbers): IP 주소의 궁극적 소유자
- IANA(Internet Assigned Numbers Authority): 관리자
- 대륙별 NIC(Network Infermation Center)
80% 할당 후 상위 관리자에게 새 블록 요청
대륙별 주소 배분 -> 각 국가/ISP가 받아서 IP 제공
IP 주소 공간 고갈 해결법 -> NAT, IPv6
Subnet
IPv4에서 네트워크 ID, 호스트 ID가 있는데, 기관 내부적으로 호스트ID를 더 작게 나누고 싶을 때 서브넷팅을 한다.
예를 들어 고려대학교가 163.152.0.0/16 이라면, 내부에서 여러 서브넷으로 쪼개어 캠퍼스별, 건물 또는 단과대별 할당도 가능
서브넷 마스크 또한 네트워크ID+서브넷ID 부분이고 어디가 호스트인지 알려주는 32비트 값
통상 LAN이 하나의 서브넷으로 불리며, point-to-point 링크도 하나의 서브넷이다.
IPv4 Multicast 주소
- 멀티캐스트 그룹에 속한 여러 호스트가 동일한 멀티캐스트 주소 하나를 공유
- 224.0.0.0 ~ 224.0.255.255: well-known
- 224.0.1.0 ~ 238.255.255.255: 전역 멀티캐스트
- 239.0.0.0 ~ 239.255.255.255: 관리 범위 내 로컬 멀티캐스트
멀티캐스트를 위해서는 MAC 주소로도 특별한 매핑 규칙을 사용(01-00-5e-xx-xx-xx)
멀티캐스트 IP 범위와 MAC 매핑
- 224.0.0.0 ~ 239.255.255.255 사이가 멀티캐스트 주소
- MAC 접두어는 01:00:5E로 고정
- 하위 23비트 매핑
32비트 IPv4 주소 중 상위 9비트(1110 0000~1110 1111)는 멀티캐스트를 구분하기 위해 사용
-> MAC 변환시 23비트만 사용함.
32:1 모호성 문제
- IPv4는 28비트정도가 그룹 식별자로 쓰이는데
- MAC 변환시 하위 23비트를 사용하기에 5비트가 버려짐 ($2^5=32$개)
-> 서로 다른 멀티캐스트 주소가 동일한 MAC 주소를 공유
IPv4 Broadcast 주소
- 브로드캐스트는 같은 서브넷 내의 모든 호스트에게 패킷을 전송하는 방식.
- Limited broadcast(255.225.255.255)가 있고, 서브넷에 따라 163.152.161.255와 같은 Directed Broadcast도 존재
- -> Smurf 공격 등의 보안 문제로 Directed Broadcast는 대부분의 라우터에서 차단
- 서브넷 마스크가 8비트 단위로 떨어지지 않는 경우, 브로드캐스트 주소 계산 시 주의(예: 123.45.6.123/26)
특별한 IPv4 주소
- 0.0.0.0: "이 호스트" 의미, PC가 IP 설정을 받지 못 했을 때 임시로 사용 (*ARP 글 참고)
- private 주소 (*NAT 글 참고)
- A: 10.0.0.0/8
- B: 172.16.0.012
- C: 192.168.0.0/16
- Link Local: 169.254.0.0/16: DHCP 실패시 자동 할당(특히 VM network bridge에서 자주 보임)
IPv6
IPv4 주소 고갈에 대응하는 2가지 방법: NAT(중단기), IPv6(장기, 영구)
- 주소 길이 128비트($≈ 3.4 * 10^{38}$)
IPv6 종류
- 유니캐스트(Unicast)
- Global Unicast: 전 세계적으로 라우팅 가능한 주소
- Link-local / Site-local: 로컬 링크 혹은 사이트 내부에서만 유효한 주소
- 멀티캐스트(Multicast)
- IPv4처럼 그룹통신을 하는 주소
- IPv6에는 브로드캐스트가 따로 없고, 멀티캐스트 형태로 처리
- 애니캐스트(Anycast)
- 동일한 주소를 여러 호스트가 공유하고, 가까운 호스트로 트래픽을 전달하는 구조를 구현
IPv6 주소 구조
일반적인 Global Unicast 주소
- 라우팅 prefix(48비트) + 서브넷 ID(16비트) + 인터페이스 ID(64비트)
- 호스트 부분(인터페이스 ID)이 64비트로 넉넉하며, 내부에서 서브넷팅도 여러 단계 가능
IPv6 주소 표기법
- Colon-hex -> 2001:0db8:85a3:0000:0000:8a2e:0370:7334
- 연속된 0000 블록은 ::로 표기 가능 -> 2001:db8:85a3::8a2e:370:7334
인터페이스 ID 생성 방식
- 랜덤 생성: 보안을 위해 무작위로 생성
- Modified EUI-64:
- 실제 MAC 주소(48비트) 기반으로 64비트 인터페이스 ID 생성
- 중간에 ff:fe를 삽입하고, Universal/Local 비트를 반전시키는 등의 과정을 거침
-> IPv6주소만 보고 MAC 주소를 추정할 수 있는건 장점이 될 수 있지만 보안과 프라이버시 면에서 약점으로 지적됨
IPv6 Multicast
우리는 여기서 flag의 transient를 유념히 봐야한다.
- T 비트 (Transient bit)
- T=0: IANA에서 표준화된(well-known) 멀티캐스트 주소
- T=1: 임의 사용자용, 임시 멀티캐스트 주소
- 범위 ID (Scope ID)
- 1: Node-local (노드 내)
- 2: Link-local (같은 링크 내)
- 14: Global (인터넷 전역)
Solicited-node multicast(SNM) 주소
- IPv6는 ARP 대신 Neighbor Discovery (ND) 프로토콜을 사용하며, 이때 브로드캐스트를 쓰지 않고 멀티캐스트로 처리
- SNM(Solicited-Node Multicast) 주소: ff02::1:ffXX:XXXX 형태로, 해당 호스트 주소의 마지막 24비트를 멀티캐스트 주소에 매핑
- ff02::1(모든 IPv6 노드), ff02::2(모든 IPv6 라우터) 등 특수 멀티캐스트 그룹이 존재
기타 특수 주소
- :: (Unspecified Address): 아직 주소가 설정되지 않은 경우
- ::1 (Loopback Address): 자기 자신을 가리키는 주소(IPv4의 127.0.0.1과 유사)
'Computer Science > Network' 카테고리의 다른 글
[L7] Border Gateway Protocol (BGP) (1) | 2025.04.17 |
---|---|
[L3] Internetworking Protocol(IP) (2) | 2025.04.17 |
[L2] ARP (0) | 2025.04.16 |