컴퓨터/Network
[Network] DHCP란? DHCP 임대 알아보기
도도새 도
2023. 11. 8. 17:56
DHCP란?
DHCP(Dynamic Host Configuration Protocol)란 호스트의 IP주소와 각종 TCP/IP 프로토콜의 기본 설정 등을 클라이언트에게 자동으로 할당해주는 프로토콜이다. 즉 자동으로 컴퓨터에 네임 서버 주소, 게이트웨이 주소, IP주소를 할당해주고 해당 클라이언트는 일정 기간 동안(예 1시간) 해당 요소들을 임대하는 식으로 동작한다.
즉 DHCP는 IP를 필요로하는 컴퓨터에 자동으로 IP를 할당해주고, 해당 IP를 사용하지 않을 경우 반환받아 다른 컴퓨터가 사용할 수 있도록 한다.
DHCP서버는 보통 라우터에 탑제된다. 인터넷 공유기도 DHCP 서버 역할을 한다.
DHCP장점
- 고정 아이피에 대비해 IP풀을 유연하게 사용 가능하다.
- IP가 자동으로 할당되어 IP 충돌을 막을 수 있다.
DHCP 프로토콜의 포트
- DHCP는 Transport layer의 UDP 프로토콜을 사용한다.
- DHCPv4의 포트 : 67(서버용), 68(클라이언트용)
DHCP 임대의 동작
DORA(Discover, Offer, Request, Acknowledment)
DHCP discover
로컬 클라이언트는 우선 DHCP discover 메시지를 보내게 된다
- src인 클라이언트 ip는 0.0.0.0으로 되어있다. 이는 “지정된 주소 없음”을 의미한다. 즉, 클라이언트는 현재 자신의 ip주소마저 모르는 상태이다.
- dest는 255.255.255.255이다. 이는 브로드캐스팅한다는 의미이다. 즉 서브넷 내에 존재하는 모든 멤버들에게 메시지를 보내게 된다. 여러분 나좀 도와주세요! 하고 소리지르는 것이다.
- 모든 서버는 해당 요청을 받아들이지만, 67번(서버 포트)를 열고 있는 서버만 해당 요청을 의미 있게 수신하게 된다.
DHCP offer
DHCP 서버에서 오퍼를 주며 DHCP 서버의 존재를 알리는 역할을 한다.
- 보통 DHCP 서버 역할을 하는 라우터에서는 다양한 동작이 함께 수행된다. 예를 들어 라우팅, NS, NAT등이다. 이 중 NAT 때문에 클라이언트로 할당 될 IP는 세계적으로 유니크한 IP가 아니게 된다. 단, 반대로 로컬의 IP가 라우터를 통해서 나아 갈 떄는 라우터의 IP로 변환되어 나아가게 된다. 이 라우터의 IP는 유니크한 값이다.
- 68번 포트, 즉 요청한 클라이언트로 요청을 보낸다.(255.255.255.68). 이는 앞선 discover에서 보낸 메시지 내의 flag에 따라 유니캐스트 혹은 브로드캐스트로 진행된다.
- DNS 서버의 IP주소, OP Lease Time, Your IP, Client MAC 등의 정보가 함께 넘어온다.
- yiaddr(your ip address)은 클라이언트에 할당할 ip주소이다.
DHCP Request
앞서 클라이언트는 DHCP 서버의 존재를 알게 되었다. 이제 클라이언트는 DHCP서버를 선택하고 해당 서버에 이용할 네트워크 정보를 요청 브로드 캐스트하게 된다. 즉, 이제 아이피를 할당해주세요! 하는 것이다.
DHCP Acknowledgment
이제 비로소 DHCP 서버는 해당 클라이언트에 해당 IP주소를 할당해준 후 클라이언트에 DHCP Acknowledgment 메시지를 송신한다. 클라이언트는 이를 수신하여 IP 주소가 할당되었다는 사실을 확인하게 된다.
reference: