[L3] IP Address system

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 주소

  1. 0.0.0.0: "이 호스트" 의미, PC가 IP 설정을 받지 못 했을 때 임시로 사용 (*ARP 글 참고)
  2. private 주소 (*NAT 글 참고)
    • A: 10.0.0.0/8
    • B: 172.16.0.012
    • C: 192.168.0.0/16
  3. Link Local: 169.254.0.0/16: DHCP 실패시 자동 할당(특히 VM network bridge에서 자주 보임)

IPv6

IPv4 주소 고갈에 대응하는 2가지 방법: NAT(중단기), IPv6(장기, 영구)

  • 주소 길이 128비트($≈ 3.4 * 10^{38}$)

IPv6 종류

  1. 유니캐스트(Unicast)
    • Global Unicast: 전 세계적으로 라우팅 가능한 주소
    • Link-local / Site-local: 로컬 링크 혹은 사이트 내부에서만 유효한 주소
  2. 멀티캐스트(Multicast)
    • IPv4처럼 그룹통신을 하는 주소
    • IPv6에는 브로드캐스트가 따로 없고, 멀티캐스트 형태로 처리
  3. 애니캐스트(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 생성 방식

  1. 랜덤 생성: 보안을 위해 무작위로 생성
  2. 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