목차
1. How to get IP Address?
2. DHCP (Dynamic Host Configuration Protocol)
1) DHCP Client - Server Scenario : UDP/IP Protocol
2) More function
3) The flow of obtaining an IP Address
1. How to get IP Address?
인터넷에 연결하기 위해선 모든 네트워크 기기는 IP 주소를 할당 받아야만 한다.
카페나 학교에서 노트북을 사용하기 위해서 와이파이를 연결하면 IPv4 address가 할당되는 것을 볼 수 있다.
해당 네트워크의 각종 정보들을 알 수만 있다면, 본인만의 고유 IP 주소를 수동으로 할당할 수도 있긴 하다.
하지만 그런 경우는 잘 없을 것이며, 해당 정보를 아무에게나 공개하지도 않을 것이다.
그렇다면 사용자는 어떻게 IP 주소를 할당받을 수 있는 것일까?
그 역할을 해주는 것이 바로 DHCP다.
2. DHCP (Dynamic Host Configuration Protocol)
DHCP는 Application Layer에서 동작한다.
목적은 ip pool을 유지하면서, ip 주소를 할당받고자 하는 클라이언트에게 ip 주소를 빌려주는 것이다.
일정시간이 지나 더 이상 사용하지 않으면 회수하여 다른 유저에게 할당해준다.
DHCP 주요 메시지는 다음과 같으며, 순서대로 발생한다.
- DHCP discover: Host가 DHCP를 찾기 위해 Broadcast 한다. [optional]
- DHCP offer: DHCP가 Host에게 위치를 알려준다. [optional]
- DHCP request: Host가 IP address를 요청한다.
- DHCP ack: DHCP가 Host에게 IP address를 할당해준다.
📌 DHCP Client - Server Scenario : UDP/IP Protocol
DHCP 서버는 보통 라우터와 합쳐져 있다고 한다. (점점 흉물스러워지는 라우터)
그래서 새롭게 subnet에 연결하려는 host에게 ip 주소를 할당해주는 역할까지 떠맡고 있다.
통신 과정을 보기 전에 명심해야 할 것이 하나 있다.
"Client는 현재 할당된 IP 주소가 없다"는 것이다.
이 말은 즉, unicast를 하려고 해도 ip 주소가 없기 때문에 모든 통신이 Broadcast 된다는 점이다.
1️⃣ DHCP discover
discover 단계에선 앞이 안 보이는 전재준씨가 공사장에서 병원에 보내달라고 울부짖던 장면을 떠올리면 된다.
IP 주소를 받긴 해야겠는데, DHCP 서버 위치를 모르니 일단 Subnet에서 소리치면서 DHCP를 찾아 헤맨다.
DHCP는 port number 67을 쓰기로 약속했기 때문에, 67번 포트를 사용하는 서버인 DHCP가 대답해줄 것이다.
(다른 Client는 Port number 때문에 무시할 것이다.)
2️⃣ DHCP offer
DHCP가 Client에게 해당 ip를 쓸 것인지 권유한다.
이 때, 주의해야 하는 점이 2가지가 있다.
- 아직 IP address를 할당받은 시점이 아니다. 제안만 받은 것이다. → 따라서 계속 Broadcast 한다.
- DHCP 서버가 하나라고 단정지을 수 없다. → 3️⃣에서 판단 가능하다.
discover와 offer 단계는 IP 주소 재사용 요청 시 넘어갈 수 있는 과정이다.
3️⃣ DHCP request
Client에서 제안 받은 IP addr을 사용하겠다고 요청하는 메시지를 Broadcast 한다.
여기서 위에서 발생한 문제를 해결할 수 있는데, 2개의 DHCP는 서로 다른 IP 주소를 제안했을 것이다.
그런데 Client가 엉뚱한 IP addr를 사용하겠다고 회신하면, 둘 중 하나의 제안은 선택되지 않았음을 의미한다.
이 경우 DHCP는 다른 서버로 부터 IP 주소를 할당받았겠거니 하고 통신을 종료한다.
4️⃣ DHCP ACK
Client가 사용하겠다고 한 IP addr를 승인해줌으로써 Life Cycle이 종료된다.
이 과정이 끝나면 Client에는 IP 주소가 할당된다.
📌 More function
DHCP는 IP 주소 할당 외에도 다른 기능들이 존재한다. (라우터랑 합쳐저 있으니, 라우터 기능이라 보면 된다)
- Client 입장에서 one-hop 떨어진 라우터 주소와 동일하다.
- Client가 IP 주소를 할당받을 때, DNS 서버의 이름과 IP 주소도 함께 받을 수 있다.
- network mask를 제공한다.
📌 The flow of obtaining an IP Address
그렇다면 Network는 어디서 IP 주소를 할당 받을까?
IP Address는 계층적 구조를 가진다고 지난 포스팅에서 언급했었다.
한국의 IP 주소를 할당하는 기관이 있고, 그 위에 아시아의 IP 주소를 할당하는 기관이 있고, 그 위에 전세계의 IP 주소를 관리하는 기관이 또 존재한다.
이 부분은 뭐 딱히 설명할 것도 없고, 시험에도 안 나오니 패스.