IP address의 동적 할당이 필요한 이유?
- 수동적인 IP address 할당을 피하기 위해서 (자동화)
- IP address를 사용자의 요구에 따라 할당하기 위해서
- 모바일 디바이스의 IP address 할당을 위해
모바일 디바이스는 그 특성 상, IP address를 할당받아 짧은 시간동안 이용한 후
자리를 옮기고 또 다른 IP address를 할당받는 것이 비일비재하다.
IP address 동적할당을 위한 세 가지 프로토콜
- RARP (1985년까지 쓰였지만, 더 이상 사용되지 않는다.)
- BOOTP (1985 - 1993, DHCP의 원조격이라고 할 수 있다.)
- DHCP (1993 - , BOOTP를 확장했다고 볼 수도 있다.)
현재는 DHCP가 널리 쓰인다.
BOOTP (BOOTstrap Protocol)
- Host가 자신의 boot time에 IP parameter를 설정한다.
- IP address, boot file name, boot file을 가지고 있는 server를 제공
- 이 뿐만 아니라, default router, netmask 또한 알려줘 정상적인 네트워킹이 가능하도록 해준다.
- UDP를 사용해 메시지를 보내고 서버는 UDP Port 67, 클라이언트는 UDP Port 78를 사용해 통신한다.
- 호스트는 255.255.255.255의 limited broadcast address를 사용해 서버에 메시지를 보내는데,
기본 네트워크 정보를 제공받기 전, BOOTP 서버가 어디있는지 모르기 때문이다.
DHCP (Dynamic Host Configuration Protocol)
- 1993년에 디자인 되었으며, BOOTP의 확장이므로 유사한 부분이 매우 많다.
- BOOTP와 같은 포트 넘버를 사용한다. (server: 67, client: 68)
- IP 주소의 임시 할당을 지원한다. (lease)
- IP address, default gateway router, DNS server, subnet mask의 IP 구성에 필요한 파라미터를 제공한다.
- DHCP는 BOOTP 클라이언트와 상호운용 가능하다.
DHCP Exchange
- 기본적으로 다음 구성을 가진다.
Discover: DHCP 서버를 찾는다.
Offer: DHCP 서버들은 client에게 제안을 한다. (이 때, DHCP server가 여러개라면 각각의 offer가 날아올 것이고
client는 그 중 하나의 서버에 응답하면 된다.)
Request: 사용하고 싶은 구성을 서버에 전달한다.
ACK: IP 구성에 필요한 파라미터들과 리스 타임이 제공되며, IP address가 할당되게 된다.
DHCP message type
1 | DHCPDISCOVER | 1 octet | rfc2132[13]:Section 9.6 |
2 | DHCPOFFER | 1 octet | rfc2132[13]:Section 9.6 |
3 | DHCPREQUEST | 1 octet | rfc2132[13]:Section 9.6 |
4 | DHCPDECLINE | 1 octet | rfc2132[13]:Section 9.6 |
5 | DHCPACK | 1 octet | rfc2132[13]:Section 9.6 |
6 | DHCPNAK | 1 octet | rfc2132[13]:Section 9.6 |
7 | DHCPRELEASE | 1 octet | rfc2132[13]:Section 9.6 |
8 | DHCPINFORM | 1 octet | rfc2132[13]:Section 9.6 |
9 | DHCPFORCERENEW | 1 octet | rfc3203[14]:Section 4 |
10 | DHCPLEASEQUERY | 1 octet | rfc4388[15]:Section 6.1 |
11 | DHCPLEASEUNASSIGNED | 1 octet | rfc4388[15]:Section 6.1 |
12 | DHCPLEASEUNKNOWN | 1 octet | rfc4388[15]:Section 6.1 |
13 | DHCPLEASEACTIVE | 1 octet | rfc4388[15]:Section 6.1 |
14 | DHCPBULKLEASEQUERY | 1 octet | rfc6926[16]:Section 6.2.1 |
15 | DHCPLEASEQUERYDONE | 1 octet | rfc6926[16]:Section 6.2.1 |
16 | DHCPACTIVELEASEQUERY | 1 octet | rfc7724[17]:Section 5.2.1 |
17 | DHCPLEASEQUERYSTATUS | 1 octet | rfc7724[17]:Section 5.2.1 |
18 | DHCPTLS | 1 octet | rfc7724[17]:Section 5.2.1 |
- DCHPRELEASE란 lease time이 종료돼, 자동으로 반환되기 전
클라이언트가 사용이 다 끝났다고 생각하면, 서버에게 release를 보내 IP주소를 스스로 반환하는 것이다.
DHCP lease time
- DHCP는 lease time을 이용해 임시 할당을 지원하게 된다.
- 서버가 정보를 제공할 때, T1(Renewal Time), T2(Rebinding Time)를 제공하게 되는데 클라이언트는 IP address 갱신을 위해 이 값이 사용된다.
- T1은 lease time의 50%, T2는 lease time의 87.5%에 해당한다.
클라이언트는 T1의 시간이 지났을 때, 갱신을 시도하고 이 때 갱신하지 못하면 T2 시간에 다시 갱신하게 된다.
두 번 모두 갱신에 실패한다면, IP address는 반환되고 초기 상태로 돌아간다.
DHCP with relays
- 현대에는 같은 네트워크 세그먼트에 존재하지 않고, 원격 DHCP 서버를 통해 IP를 구성하는 것이 흔하다.
- 서버와 클라이언트는 중간에 릴레이를 해주는 라우터 하나를 끼게 된다.
- 클라이언트는 라우터(relay agent)와 기존 DHCP 통신을 하게 되고, 라우터는 서버와 unicast로 통신한다.
- 패킷의 hop count가 1이라면 DHCP가 릴레이 됐음을 확인할 수 있다.
DHCP rapid commit
- discover, offer, request, ack의 단계에서 offer와 request를 생략한다.
DHCP vulnerability
- DHCP exhaustion attack
DHCP 서버에 무수한 요청을 보내, IP address가 고갈되게 하는 공격이다.
- DHCP MITM attack
255.255.255.255로 DHCP discover가 왔을 때, 자신이 DHCP 서버인 척 패킷에 응답한다.
default gateway router를 자신의 주소로 설정하게 만들면,
해당 클라이언트가 default gateway router로 보내는 패킷을 모두 받을 수 있게 된다.
'컴퓨터 사이언스 > 네트워크' 카테고리의 다른 글
[모바일 컴퓨팅] SIP (Session Initiation Protocol) (0) | 2021.06.08 |
---|---|
[모바일 컴퓨팅] DNS (Domain Name System) (0) | 2021.06.07 |
[모바일 컴퓨팅] Transmission Control Protocol (TCP) (0) | 2021.04.22 |
[모바일 컴퓨팅] User Datagram Protocol (UDP) (0) | 2021.04.21 |
[모바일 컴퓨팅] ICMP (Internet Control Message Protocol) (0) | 2021.04.20 |