본문 바로가기
Computer Network/컴퓨터네트워크

[컴퓨터네트워크] 1110

by leziwn.cs 2023. 11. 11.
IP address: how to get one subnet part?

Host는 기관에 의해 IP 주소를 제공받는다. 

이때 host가 IP 주소를 제공받는 방법에는, 시스템에 의해 수동으로 제공받는 hard-coded 방법과 host가 일시적으로 쓸 주소를 받아오는 DHCP(Dynamic Configuration Protocol) 방법이 있다.

 

Q. 그렇다면 기관은 어떻게 IP 주소의 subnet part를 받아오는 것일까?

A. Gets allocated portion of its provider ISP's address space! 즉, ISP가 기관에 주소를 할당한다.

ISP가 기관에 주소를 할당한다.

예를 들어, 하나의 ISP의 subnet part가 20-bit라고 하자. 

이러한 ISP가 8개의 기관에게 IP 주소를 할당하려면, 23-bit의 subnet mask를 할당해주어야 한다. (8개의 기관 각각을 식별하기 위해서는 2^3개가 더 필요하기 때문)

이때, 이러한 ISP가 제공한 subnet part의 공통된 부분 20을, common network prefix라고 한다. 그리고 이 common network prefix를 통해 ISP는 "이러한 first 20-bit을 가지는 것은 나에게 보내줘."라고 이야기할 수 있다. 그리고 이 때는 route aggregation이 이용된다.

 

 

Hierarchical addressing: route aggregation

Route aggregation

Route aggregation에 대해 자세히 알아보자. 두 개의 ISP가 있는 상황이다.

Fly-By-Night-ISP와 ISP-R-US는 각각 200.23.16.0/20, 199.31.0.0/16이라는 common network prefix를 가지고 기관에게 IP 주소를 할당했었다. 

그런데 기존에는 Fly-By-Night-ISP 관할의 기관이었던 200.23.18.0/23을 ISP-R-US 관할 기관으로 변경하려고 한다. 이때는 ISP-R-US에 200.23.18.0/23 을 할당하면 된다. 원래 200.23.18.0/23은 Fly-By-Night-ISP 의 기관이었고, 겹치는 부분이 있지만, route aggregationlongest prefix matching을 하기 때문에, 200.23.18.0/23과 더 많이 겹치는 ISP-R-US가 이를 관할하게 된다.

 

Longest prefix matching

Longest prefix matching

Longest prefix matching이란, 가장 길게 matching되는 ISP가 그 기관을 관할하게 된다는 원칙이다.

 

Route aggregation: EXAMPLE

Q8
Q9

4개의 기관을 식별하기 위해서는 2 bits가 추가되어야 한다.

64를 이진수로 변환하면 01xxxxxx이다. 2 bits가 추가되었으므로, 

- 0100xxxx

- 0101xxxx

- 0110xxxx

- 0111xxxx

각각의 subnet에게는 이렇게 4개의 prefix가 할당된다.

 


IP addressing: last words...

Q. 그렇다면 ISP는 어떻게 주소 block을 할당받아 기관에게 IP 주소를 제공할 수 있는 것일까?

A. ICANN(Internet Corporation for Assigned Names and Numbers)에서 5개의 RR(regional registries)를 가지고 ISP에게 주소 block을 할당해준다.

  • 이때 ICANN은 주소 block 할당 기능 뿐만 아니라,
    manages DNS root servers including delegation of individual TLD management, 
    assigning domain names,
    resolving domain name dispates.

 

Q. ISP는 20-bit의 common prefix part를 받아, 총 32-bit의 IP 주소를 생성한다. 이러한 32-bit만으로 이 세상의 모든 interconnection을 식별할 수 있는 것일까?

A. IP 주소 block이 고갈되었다... 더 이상 ISP에게 줄 주소 block이 없다!

  • Sol 1) NAT: IP 주소 block을 받은 ISP를 통해 로컬 사이트가 각각의 IP 주소를 갖는 것이 아니라, 그냥 IP 주소 하나만 받아서, 그 하나를 잘 나눠쓴다. (private address)
  • Sol 2) IPv6: 128-bit address space

 


4.3.3 Network Address Translation (NAT)

NAT을 이용하면, Iocal site에서 각각의 IP 주소를 할당받는 것이 아니라, IP 주소 1개를 나눠 쓴다.

 

NAT(Network Address Translation)

NAT(Network Address Translation)

NAT-enabled router는 IP 주소 block이 아닌 하나의 IP 주소를 할당받고, local network는 이 하나의 IP주소를 나눠쓴다.

Local network들은 내부에서는 private IP address로 서로 구분된다. 외부에서는 NAT-enabled router로부터 받은 하나의 IP 주소를 가지고, port 번호들로 구분된다.

  • 16-bit port number filed --> 2^16개를 구분할 수 있다.

 

How NAT works

How NAT works

  1. outgoing datagrams: (source IP address(private IP 주소), port #) --> (NAT IP address, new port #)
  2. NAT translatation table: (source IP address, port #) --> (NAT IP address, new port #) 무엇을 무엇으로 바꿨는지 기억한다.
  3. remote host는 (NAT IP address, new port #)로 응답한다.
  4. incoming datagrams: NAT translation table에 있는 정보를 이용해, 다시 사설 IP 주소로 변환한다.
    : (NAT IP address, new port #) --> (source IP address, port #) 

 

Motivation & Advantages of NAT
  • Just one IP address is needed from provider ISP for all devices.
  • Can change address of host in local network (사설 IP 주소) without nofiying outside world. (외부에서는 NAT-address만 알면 된다.)
  •  Can change ISP without changing addresses of devices in local network. (NAT-address만 바꾸면 된다.)
  • Security: devices inside local network is not directly addressable, visible by outside world.

--> Management가 간단하다!

 

 

NAT is controversal
  • Rouuters should only process up to layer 3. --> NAT violates the principle of end-to-end connectivity (port number manipulation by network-layer device) originally envisioned in the design of the Internet.
  • Port numbers are used for addressing processes, not for addressing hosts.
    NAT uses port # for addressing hosts. --> server로 동작 불가능, P2P 참여 불가능

--> NAT은 자주 사용되기는 하지만, 결과적으로 IP 주소의 부족 문제는 NAT이 아니라, IPv6로 해결되어야 한다.

 

 

UPnP IGD

UPnP IGD

▶ NAT에 대한 해결책: IGD (Internet Gateway Device) protocol

: IGD 프로토콜은 host가 private IP 주소를 할당받을 필요가 없도록, IGD를 통해 NAT router와 직접 연결한다.

 

 

NAT traversal techniques

: NAT에 대한 해결책

Relaying

▶ Relaying

: host들은 통신하기 전에 relay server에 먼저 connection 요청을 하여, NAT translation table에 WAN side address를 만들어 놓는다. 그리고 host들은 이 relay server를 통해 통신한다.

 

Connection reversal

▶ Connection reversal

: 한 쪽의 host만 NAT 뒤에 있는 경우 사용할 수 있는 방법이다. NAT 뒤에 있는 Peer B가 미리 Peer C에 NAT translation table을 만들어놓고, 이를 이용하여 Peer A와 Peer B가 직접 통신한다.

 


4.3.4 IPv6

NAT에서는 IP 주소의 부족 문제를 해결하기 위해 여러 개의 local network에서 하나의 IP 주소를 나눠 쓰는 방식을 이용하였다. 하지만 IPv6는 IP 주소 자체를 늘림으로써, 이 문제를 해결한다.

 

IPv6: motivation

: IP 주소 확장!

 

▷ Additional motivations:

  • 고정 길이 헤더 --> speed up (IPv4: 가변 길이 헤더)
  • 헤더에 "flow" 추가 --> QoS  서비스

 

IPv6 addressing

: 128-bit addressing 

  • IPv4: 32-bit addressing --> 8-bit를 묶어서 10진수로 표현하였다.
  • IPv6: 128-bit addressing --> 16-bit를 묶어서 4자리 16진수로 표현하였다.

IPv6 addressing

 

IPv6 datagram format

IPv6 datagram format

  • ver: 버전
  • Pri: datagram flow 사이의 priority
  • flow lable: datagram이 어떤 flow에 속하는지 식별한다.
    IPv6의 경우, router에서 fragmentation이 일어나지 않는다. MTU가 바뀌면 fragmentation을 하지 않고 그냥 drop한다. "다시 보내!"
  • payload len: 고정 길이 헤더를 사용하기 때문에, payload의 길이만 표시한다.
  • next hdr: 어떤 data field로 전송되는지 표시한다.
  • hop limit: hop count
  • source address (128 bits)
  • destination address (128 bits)
  • Data: chain of extension headers + upper layer header + payload

 

Changing Extension Headers in IPv6 Packets

Changing Extension Headers in IPv6 Packets

  • next hdr에는 어떤 data field로 전송되는지를 표시한다.
  • Data에서의 chain of extension headers에는 뒤에 오는 헤더의 종류를 표시한다.
    --> destination에서 fragmentation을 reassemble할 수 있도록 한다.

 

IPv4 vs. IPv6

IPv4 vs. IPv6

▶ IPv6:

  • 고정 길이 헤더
  • router에서 fragmentation하지 않는다.

 

 

 

 

 

출처: 이화여자대학교 이미정교수님 컴퓨터네트워크