전공공부/컴퓨터망 (Computer Network)

[컴퓨터망] Network Layer (6) - DHCP

jooona 2021. 2. 1. 13:49
반응형

IP 주소를 그냥 기기 당 하나씩 할당을 해주게 되면 IP도 최대 2^32개까지만 할당할 수 있기 때문에 언젠가 고갈이 될 수 있습니다. 2^32개는 약 42억개 정도로 그렇게 많은 수가 아닙니다. 그래서 이를 극복하기 위해 여러가지 방법이 동원됩니다. 바로 앞 게시물에서 공부한 CIDR, 그리고 이번 글에서 공부할 DHCP, 그리고 그 뒤에 알아볼 NAT과 IPv6가 이러한 방법에 포함됩니다. 

 

이번 글에선 이 방법들 중 동적으로 IP를 할당받는 방법에 대해 알아보겠습니다. IP의 동적할당을 위해 DHCP(Dynamic Host Configuration Protocol)라는 방법이 사용됩니다.

 

DHCP에서는 호스트가 현재 속해있는 네트워크의 서버로부터 IP 주소를 할당받습니다. 해당 네트워크와 연결되어 있을 때만 IP 주소를 할당받고 그렇지 않을 때는 IP 주소를 반납하기 때문에, 기기가 계속 이동을 하는 모바일과 같은 환경에도 적합합니다.

 

DHCP에서 IP를 할당받을 때는 아래의 4단계를 거칩니다.

 

1. DHCP discover

2. DHCP offer

3. DHCP request

4. DHCP ACK

 

새로운 기기인 A가 어느 네트워크의 범위 내에 들어왔을 때, A는 브로드캐스트(Broadcast)로 DHCP를 찾는 메시지를 보냅니다. 브로드캐스트로 보낸다는 말은, 모든 기기에 메시지를 보낸다는 뜻입니다. 어디에 어떤 서버가 존재하는 지를 모르니 그냥 네트워크 내의 모든 기기에 메시지를 뿌려주는 것입니다. 이를 DHCP discover이라고 합니다. 

 

이렇게 뿌려진 메시지를 해당 네트워크의 DHCP 서버도 수신하게 됩니다. 이때까지도 메시지를 보낸 A는 IP 주소가 없기 때문에, DHCP 서버는 브로드캐스트로 '내가 DHCP 서버고, 너는 이 IP 주소를 쓸 수 있다'는 메시지를 사용 가능한 IP 주소와 함께 보내줍니다. 이를 DHCP offer라고 합니다. 이때 IP 주소뿐만 아니라 해당 네트워크의 다양한 프로토콜들, 서브넷 마스크와 같은 네트워크 정보들도 함께 전달해 줍니다. 

 

A는 이 메시지를 받아 '좋아. 이 주소를 내가 사용할게!'라는 메시지를 다시 DHCP 서버에게 보내줍니다. 이 과정도 일대일 통신이 아닌 브로드캐스트로 메시지를 송신하게 되는데, 이는 혹시 여러 개의 DHCP 서버가 DHCP discover를 받아 offer를 해주었을 수 있기 때문에 그중에 하나를 선택했다고 offer를 해준 다른 DHCP 서버들에게도 알려주어야 하기 때문입니다. 이를 DHCP request라고 합니다.

 

그리고 마지막으로 선택된 DHCP 서버는 A에게 알겠다는 뜻의 DHCP ACK을 보내줌으로써 주소 할당을 완료해주게 됩니다. ACK을 보낼 때는 브로드캐스트 혹은 유니캐스트(1대 1)로 보내줍니다.

 

DHCP는 Plug and Play(PnP)라는 장점을 가집니다. 해석하자면, 꼽자마자 사용할 수 있다는 뜻으로, 즉시 사용이 가능하다고 해석할 수 있습니다. 그리고 위에서도 언급했듯이, 사용하지 않는 호스트는 IP를 반납하기 때문에 주소 부족 현상을 해결할 수 있습니다.

 

단점으로는 DHCP 서버에 IP 할당을 의존하기 때문에 서버에 문제가 생길 경우 네트워크 내의 주소 할당이 이루어질 수 없다는 점을 가집니다.

 

 

반응형