⚠️ 들어가기 앞서
경북대학교 컴퓨터학부 COMP0414-001 컴퓨터망 과목을 공부하며 정리한 글입니다.
지난번 글에서는 IP 주소와 클래스, 그리고 서브넷의 개념에 대해 알아보았고, 이 글에서는 실질적으로 IP 주소가 어떻게 할당되는지를 알아보려고 한다.
호스트가 자신의 IP 주소를 할당받아 사용하는 hard-coded
방식을 사용하면 호스트가 네트워크를 사용하지 않을 때에도 그 호스트의 IP 주소를 사용할 수 없기 때문에 비효율적이다. 따라서 DHCP 방식을 사용한다.
DHCP는
Dynamic Host Configuration Protocol(동적 호스트 구성 프로토콜)
의 약자로, IP 네트워크에 사용되는 네트워크 프로토콜이다. DHCP는 IP 주소 및 기타 통신 매개변수를 네트워크에 연결된 장치에 자동으로 할당한다. (NordVPN)
'내 주소' 라는 개념이 없이 동적으로 IP 주소를 할당해 주기 때문에 사용하지 않는 동안 낭비되는 IP 주소가 없게 된다.
각 네트워크에는 DHCP 서버
가 있다. 호스트가 네트워크에 접속하면, IP 주소를 할당받기 위해 DHCP 서버와 통신한다. 과정을 먼저 간략히 살펴보면 다음과 같다.
DHCP discover
메시지를 보냄 (optional)DHCP offer
메시지를 보냄 (optional)DHCP request
메시지를 보냄DHCP ack
메시지를 보냄DHCP를 사용해서 클라이언트가 IP 주소를 할당받는 과정을 도식화하면 위 그림과 같다.
👦🏻 : 안녕하세요, 저는 클라이언트인데요... 거기 DHCP 서버 계십니까?
클라이언트는 먼저 서버를 찾기 위해 메시지를 보낸다. DHCP 서버의 주소를 모르기 때문에 브로드캐스팅 해야 한다. 브로드캐스트 메시지이므로 DHCP 서버를 포함해 서브넷 안의 모든 호스트가 이 메시지를 들을 수 있다.
🦊 : 안녕하세요, 저는 DHCP 서버입니다. 제 주소는
1.1.1.254
이구요, 님이 사용할 수 있는 IP 주소는1.1.1.5
입니다.
서버는 이에 응답한다. 아직 클라이언트는 IP 주소가 없기 때문에 서버 역시 브로드캐스트 메시지를 보낸다. 다만 자신의 IP 주소 (source IP address)는 알려준다.
👦🏻 : 네! 그 주소 사용하겠습니다. 저한테 할당 해 주시겠어요?
DHCP 서버의 존재 및 자기가 사용할 수 있는 IP 주소를 알아낸 클라이언트는 그 주소의 할당 요청을 서버에게 보낸다. 이 때도 브로드캐스트 메시지로 보낸다.
"응답한 DHCP 서버가 자기 주소 알려줬는데 왜 브로드캐스트로 보내지?"
-> 여러 개의 DHCP 서버가 존재할 수 있고, 그 서버들에게 모두 "내가 이 주소를 사용하고 싶다" 라는 사실을 알려야 하기 때문에
🦊 : 알겠습니다. 이제부터 그 주소 사용하셔도 됩니다. 필요한 네트워크 자원 할당해 드릴게요.
서버는 알겠다는 메시지와 함께 다양한 네트워크 정보들을 전달한다. 다음과 같은 정보들이 포함된다.
네트워크는 어떻게 서브넷 부분을 얻을까?
ISP가 가지고 있는 IP address 중 일부분을 취하게 된다.
어떤 ISP의 네트워크인지를 나타내는 ISP block 부분(... ... 0001
까지) 뒤에 각 organization마다 다른 subnet 네트워크 주소를 추가로 할당받고 있음을 확인하고 (000
부터 111
까지), 서브넷 마스크 부분이 /20
에서/23
으로 바뀐 것을 확인하자.
효율적인 라우팅을 위해 계층을 나누어서 관리한다.
위와 같이 Fly-By-Night-ISP
ISP가 있고 ISPs-R-Us
ISP가 있다고 하자. 두 네트워크는 서로 네트워크 주소가 다르다. 그리고 각각의 네트워크는 특정 요청을 자신한테로 보내면 된다는 것을 인터넷에 알려준다.
예컨대 Fly-By-Night-ISP
ISP는 "200.23.16.0/23 으로 시작하는 IP는 나한테로 보내시오"
라고 한다.
이 때 organization 1이 ISPs-R-Us
밑으로 이동한다고 해보자.
그럼 이렇게 뻐꾸기 자식마냥 다른 자식들과 다른 녀석이 ISPs-R-Us
밑으로 들어오게 된다. 그러면 이동한 organization 1은 주소를 변경해야 할까?
답은 '변경하지 않아도 된다'
이다. 이렇게 해도 문제가 없는 것이, 기본적으로 routing algorithm은 longest prefix matching
원칙을 따르기 때문이다. 즉 200.23.18.0/23
과 200.23.16.0/20
중에서 전자가 더 long prefix 이므로, organization 1로 향하는 패킷을 정상적으로 ISPs-R-Us
쪽으로 보낼 수 있다.
ISP는 ICANN
(Internet Corporation for Assigned Names and Numbers, 국제인터넷주소관리기구)을 통해 ISP block을 할당받는다.
다음 글에서 다룰 NAT
을 통해 IP 주소를 절약할 수 있으나 IPv4 체계 하에서 할당할 수 있는 IP 주소가 모두 소진된지는 꽤 오래 되었으며, 128비트 주소 체계를 사용하는 IPv6가 등장하였다.