7계층 프로토콜
DHCP : Dynamic Host Configuration Protocol
DHCP Discover : 클라이언트가 브로드캐스트로 DHCP서버를 찾음
DHCP Offer : 서버 혹은 서버들이 브로드캐스트로 서버 본인의 ip 주소와 할당가능한 임대주소들을 보내줌
DHCP Request : 클라이언트가 브로드캐스트로 자신이 사용할 DHCP 서버주소와 원하는 IP 주소를 명시 (이때 다른 DHCP 서버는 자신이 선택되지 못함을 알 수 있음)
DHCP Ack : 서버가 브로드캐스트로 할당주소와 임대시간등을 보내줌.
DHCP ACK안에 있는 값들.
• 클라이언트가 사용할 IP 주소
• 서브넷 마스크
• 게이트웨이 주소(라우터)
• DNS 서버 주소
• 임대 시간(lease time) 등
클라이언트(OS 내장되어있는 DHCP 클라이언트 소프트웨어)는 이 ACK을 받자마자, 자기 네트워크 스택에 이 값을 자동으로 설정.
최초 할당시에는 ip스택이 초기화 되지 않았으니 브로드캐스트로 보낼 수 밖에없음(확정이 안됐으니)
하지만 연장시에는 주소가 있으니 유니캐스트로 보낼 수 있으며 request와 ack단계만 존재한다.
→ 라우터(또는 L3 스위치)가 브로드캐스트를 받아다가 유니캐스트로 DHCP 서버에게 전달함.
Relay가 있다면 흐름이 조금 달라짐.
클라이언트가 브로드캐스트로 discover
라우터가 그것을 받아 유니캐스트로 DHCP 서버에 전달
이때 라우터가 Gateway IP address 필드에 자신의 인터페이스 주소를 넣음.
서버는 라우터의 메시지를 보고 어떤 네트워크의 클라이언트인지 알게됨
서버는 라우터에게 유니캐스트로 해당 네트워크 pool에서 선택한 IP 주소들을 담은 메시지를 보냄
라우터가 이 메시지를 브로드캐스트로 전달.
Request와 ACK도 같은 방식으로.