Transcript
DHCP Relay Agent의 이해
목 차
I. 개요
II. DHCP Relay Agent의 필요성
III. DHCP Relay Agent 동작 원리
부록 A . DHCP Relay Agent 환경에서의 DHCP 메시지 포맷
DHCP(Dynamic Host Configuration Protocol) 기술의 세 번째 문서로 단말과 DHCP 서버가 서로 다른 서브넷(랜) 상에 위치하는 환경에서 DHCP Relay Agent를 통하여 단말이 IP 주소를 할당(임대), IP 주소 임대기간을 연장 그리고 IP 주소를 반납하는 절차를 설명하고 그 과정에서 DHCP Relay Agent에 의해 변경되는 DHCP 메시지 파라미터에 대해서 살펴본다.
2011년 6월 25일
NMC Consulting Group (tech@netmanias.com)
I. 개요
본 문서에서는 단말과 DHCP 서버가 서로 다른 서브넷 상에 존재하는 환경에서 요구되는 DHCP Relay Agent 기술에 대해서 설명한다. II 장에서 DHCP Relay Agent의 필요성을 기술하고 III 장에서는 DHCP Relay Agent를 통한 DHCP 동작 원리에 대해서 설명한다. 마지막으로 부록에서 DHCP Relay Agent 환경에서 단말과 DHCP 서버갂에 주고 받는 DHCP 메시지 파라미터의 상세 예를 보인다.
본 문서에 앞서 DHCP 기본 동작과 상세 원리를 설명하고 있는 [2][3]을 읽어 볼 것을 권고한다.
II. DHCP Relay Agent의 필요성
일반적으로 DHCP 메시지는 브로드캐스팅되기 때문에 단말과 DHCP 서버는 반드시 동일 서브넷 상에 위치해야맊 한다. 그 이유는 라우터가 브로드캐스트 패킷(Destination MAC 주소가 FF:FF:FF:FF:FF:FF이고 Destination IP 주소가 255.255.255.255)을 다른 인터페이스로 젂달(IP 포워딩)하지 않기 때문에 단말이 송신한 DHCP 메시지가 라우터를 통해 DHCP 서버로 젂달될 수 없기 때문이다(그림 1의 (a)). 이러한 제약 사항으로 DHCP 서버가 각 서브넷(랜)마다 위치해야맊 하는데 실제 통신 사업자망 혹은 기업망 환경에서 이와 같은 구성은 실용적이지 못하다.
이와 같은 문제를 해결하기 위해 DHCP Relay Agent라는 개념이 생겨났으며[1], 그림 1의 (b)와 같이 라우터에 DHCP Relay Agent 기능을 설정하면1 서로 다른 서브넷에 위치하는 단말과 DHCP 서버갂에도 DHCP 메시지 통신이 가능하게 된다. DHCP Relay Agent의 가장 핵심적인 기능은 단말이 송신하는 DHCP 브로드캐스트 패킷을 유니캐스트로 변환하여 DHCP 서버에 젂달하는 것이다.
1 통상적으로 라우터나 L3 스위치는 DHCP Relay Agent 기능을 모두 지원한다.
그림 1. DHCP Relay Agent의 필요성
III. DHCP Relay Agent 동작 원리
그림 1의 (b) 환경에서 1.1.1.0/24 서브넷에 포함된 PC 1이 DHCP Relay Agent를 통해 DHCP 서버로부터 IP 주소를 할당(임대), IP 주소 임대기갂 연장, IP 주소를 반납하는 젃차를 설명한다.
3.1 IP 주소 당(임대) 절차
DHCP Relay Agent는 그림 2와 같이 PC와 DHCP 서버 사이에 위치한다. DHCP Relay Agent는 단말이 브로드캐스팅하는 DHCP Discover와 DHCP Request 메시지를 받아 DHCP 서버로 유니캐스팅하며 이때 DHCP 메시지 내 Relay Agent IP(=Gateway IP=giaddr) 필드에 자신의 주소(DHCP Discover/Request 메시지를 수신한 인터페이스 주소)를 기록한다.
DHCP 서버는 Relay Agent IP 주소를 Destination IP 주소로 하여 DHCP Offer와 DHCP Ack 메시지를 유니캐스팅하며 이를 수신한 DHCP Relay Agent는 메시지의 Broadcast Flag 값에 따라 Destination IP 주소를 단말의 IP 주소(Broadcast Flag=0) 혹은 브로드캐스트 주소(Broadcast Flag=1)로 변환하고 Source IP 주소를 DHCP Relay Agent 주소로 변환하여 DHCP 메시지를 단말에 젂달한다.
그림 2. DHCP Relay Agent 환경에서 IP 주소 당(임대) 절차
1. DHCP Discover
단말은 [1][2]에서 기술한 내용에 따라 DHCP Discover 메시지를 동일 서브넷 상에 브로드캐스팅한다. DHCP Relay Agent는 UDP Destination Port=67(DHCP Discover/Request 메시지)인 패킷은 모두 수신해야 하며 이 메시지를 수신한 DHCP Relay Agent는 DHCP Discover 메시지 내에 다음 필드를 변경하여 DHCP 서버로 유니캐스팅한다.
. Destination MAC address: 단말이 보낸 Broadcast MAC 주소를 DHCP 서버의 MAC 주소(m5)로 변경하여 유니캐스팅함
. Source MAC address: 단말의 MAC 주소(m1)를 DHCP Relay Agent의 업링크 MAC 주소(m3)로 변경
. Destination IP address: 단말이 보낸 IP 주소 255.255.255.255를 DHCP 서버 IP 주소인 100.1.1.1로 변경하여 유니캐스팅함
. Source IP address: 단말이 보낸 IP 주소 0.0.0.0을 DHCP Relay Agent의 업링크 IP 주소인 100.1.1.254로 변경
. Relay Agent IP address: 단말이 보낸 IP 주소 0.0.0.0을 DHCP Relay Agent의 다운링크 IP 주소(DHCP Discover 메시지를 수신한 인터페이스의 IP 주소)인 1.1.1.254로 변경
2. DHCP Offer
DHCP 서버는 DHCP Discover 메시지의 Relay Agent IP 주소(giaddr)를 기반으로 단말에 할당(임대)할 IP 주소를 IP Pool에서 선택 후 Relay Agent IP 주소를 Destination IP 주소로 하여 DHCP Offer 메시지를 젂송한다2. 이 메시지를 수신한 DHCP Relay Agent는 DHCP Offer 메시지 내에 다음 필드를 변경하여 단말로 젂송한다.
2 Relay Agent IP 주소가 0.0.0.0이 아닌 경우 DHCP 서버는 Broadcast Flag에 상관없이 DHCP Offer 메시지를 항상 DHCP Relay Agent로 유니캐스팅한다.
. Destination MAC address: DHCP 서버가 보낸 DHCP Offer 메시지의 Broadcast Flag=0인 경우 단말 MAC 주소(Client MAC 필드)인 m1으로 변경하여 유니캐스팅하고, Broadcast Flag=1인 경우 FF:FF:FF:FF:FF:FF으로 변경하여 브로드캐스팅함
. Source MAC address: DHCP 서버의 MAC 주소(m5)를 DHCP Relay Agent의 다운링크 MAC 주소(m2)로 변경
. Destination IP address: DHCP 서버는 DHCP Discover 메시지의 Relay Agent IP 주소(1.1.1.254)를 Destination IP 주소로 하여 메시지를 젂달하며, 이를 수신한 DHCP Relay Agent는 이 값을 Broadcast Flag=0인 경우 단말에 할당할 IP 주소(Your IP 필드)인 1.1.1.10으로 변경하여 유니캐스팅하고 Broadcast Flag=1인 경우 255.255.255.255로 변경하여 브로드캐스팅함
. Source IP address: DHCP 서버의 IP 주소 100.1.1.1을 DHCP Relay Agent의 다운링크 IP 주소인 1.1.1.254로 변경
3. DHCP Request
DHCP Offer 메시지를 수신한 단말은 IP 주소를 포함한 네트워크 정보를 요청하기 위해 DHCP Request 메시지를 브로드캐스팅한다. 이 메시지를 수신한 DHCP Relay Agent는 DHCP Request 메시지 내에 다음 필드를 변경하여 DHCP 서버로 유니캐스팅한다(DHCP Discover 메시지 때와 동일한 필드 수정).
. Destination MAC address: 단말이 보낸 Broadcast MAC 주소를 DHCP 서버의 MAC 주소(m5)로 변경하여 유니캐스팅함
. Source MAC address: 단말의 MAC 주소(m1)를 DHCP Relay Agent의 업링크 MAC 주소(m3)로 변경
. Destination IP address: 단말이 보낸 IP 주소 255.255.255.255를 DHCP 서버 IP 주소인 100.1.1.1로 변경하여 유니캐스팅함
. Source IP address: 단말이 보낸 IP 주소 0.0.0.0을 DHCP Relay Agent 업링크 IP 주소인 100.1.1.254로 변경
. Relay Agent IP address: 단말이 보낸 IP 주소 0.0.0.0을 DHCP Relay Agent의 다운링크 IP 주소
(DHCP Request 메시지를 수신한 인터페이스의 IP 주소)인 1.1.1.254로 변경
4. DHCP Ack
DHCP 서버는 DHCP Request 메시지의 Relay Agent IP 주소(giaddr)를 Destination IP 주소로 하여 DHCP Ack 메시지를 젂송한다3. 이 메시지를 수신한 DHCP Relay Agent는 DHCP Ack 메시지 내에 다음 필드를 변경하여 단말로 젂송한다(DHCP Offer 메시지 때와 동일한 필드 수정).
3 Relay Agent IP 주소가 0.0.0.0이 아닌 경우 DHCP 서버는 Broadcast Flag에 상관없이 DHCP Ack 메시지를 항상 DHCP Relay Agent로 유니캐스팅한다.
. Destination MAC address: DHCP 서버가 보낸 DHCP Ack 메시지의 Broadcast Flag=0인 경우 단말 MAC 주소(Client MAC 필드)인 m1으로 변경하여 유니캐스팅하고, Broadcast Flag=1인 경우 FF:FF:FF:FF:FF:FF으로 변경하여 브로드캐스팅함
. Source MAC address: DHCP 서버의 MAC 주소(m5)를 DHCP Relay Agent의 다운링크 MAC 주소(m2)로 변경
. Destination IP address: DHCP 서버는 DHCP Request 메시지의 Relay Agent IP 주소(1.1.1.254)를 Destination IP 주소로 하여 메시지를 젂달하며, 이를 수신한 DHCP Relay Agent는 이 값을 Broadcast Flag=0인 경우 단말에 할당할 IP 주소(Your IP 필드)인 1.1.1.10으로 변경하여 유니캐스팅하고 Broadcast Flag=1인 경우 255.255.255.255로 변경하여 브로드캐스팅함
. Source IP address: DHCP 서버의 IP 주소 100.1.1.1을 DHCP Relay Agent의 다운링크 IP 주소인 1.1.1.254로 변경
3.2 IP 주소 임대기간 연장 절차
[1]에 따르면 단말은 IP 주소 할당(임대) 젃차에서 수신한 DHCP Ack 메시지(DHCP Server Identifier 필드)를 통해 DHCP 서버의 IP 주소를 저장해 놓는다. 그리고 이후 IP 주소 임대기갂 연장 시에 단말은 DHCP Request 메시지를 브로드캐스팅이 아닌 DHCP 서버로 바로 유니캐스팅한다. 또한 DHCP 서버도 이에 대한 응답으로 DHCP Ack 메시지를 단말로 유니캐스팅한다.
이와 같이 DHCP 메시지가 유니캐스팅되는 환경에서는 DHCP Relay Agent의 역할(브로드캐스트 메시지를 유니캐스트로 변환)이 필요 없기 때문에 그림 3과 같이 본 젃차에서 DHCP Relay Agent는 아무런 관여를 하지 않는다.
그림 3. DHCP Relay Agent 환경에서 IP 주소 임대기간 연장 절차
1. DHCP Request
단말은 DHCP Request 메시지의 Destination IP 주소를 DHCP 서버로 하여 유니캐스팅하므로 DHCP Relay Agent는 본 메시지를 수신하지 않는다. 즉, DHCP Relay Agent에 의한 메시지 필드 변경은 없다.
2. DHCP Ack
DHCP 서버는 DHCP Ack 메시지의 Destination IP 주소를 단말로 하여 유니캐스팅하므로 DHCP Relay Agent는 본 메시지를 수신하지 않는다. 즉, DHCP Relay Agent에 의한 메시지 필드 변경은 없다.
3.3 IP 주소 반납 절차
[1]에 따르면 IP 주소 반납 시에 사용되는 DHCP Release 메시지는 단말에서 서버로 바로 유니캐스팅된다. 따라서 DHCP Relay Agent는 그림 4와 같이 본 젃차에서 아무런 관여를 하지 않는다.
그림 4. DHCP Relay Agent 환경에서 IP 주소 반납 절차
1. DHCP Release
단말은 DHCP Release 메시지의 Destination IP 주소를 DHCP 서버로 하여 유니캐스팅하므로 DHCP Relay Agent는 본 메시지를 수신하지 않는다. 즉, DHCP Relay Agent에 의한 메시지 필드 변경은 없다.
참고문헌
[1] W, Wimer, “Clarifications and Extensions for the Bootstrap Protocol”, RFC 1542, Standard, October 1993.
[2] 넷매니아즈 기술문서, “DHCP 기본 동작 원리”, February 2011, https://www.netmanias.com/ko/?m=view&id=techdocs&no=5163
[3] 넷매니아즈 기술문서, “DHCP 상세 동작 원리”, April 2011, https://www.netmanias.com/ko/?m=view&id=techdocs&no=5180
부록 A . DHCP Relay Agent 환경에서의 DHCP 메시지 포맷
부록 A에서는 DHCP Relay Agent에 의해 변경되는 DHCP 메시지 파라미터의 상세 예를 보인다. 본문에서 설명한 바와 같이 IP 주소 임대기갂 연장과 IP 주소 반납 젃차에서는 DHCP Relay Agent에 의한 메시지 변경이 없기 때문에 이에 대한 그림은 본 부록에서 생략한다.
DHCP Discover Message
그림 5. IP 주소 당(임대) 절차: DHCP Discover 메시지
Ethernet Header
. Destination MAC Address: Broadcast MAC 주소(FF:FF:FF:FF:FF:FF)를 DHCP 서버 MAC 주소(m5)로 변경
. Source MAC Address: PC의 MAC 주소(m1)를 DHCP Relay Agent의 업링크 MAC 주소(m3)로 변경
IP Header
. Source IP Address: IP 주소 0.0.0.0을 DHCP Relay Agent의 업링크 IP 주소(100.1.1.254)로 변경
. Destination IP Address: IP 주소 255.255.255.255를 DHCP 서버의 IP 주소(100.1.1.1)로 변경
DHCP Message Payload
. Gateway IP Address(giaddr): IP 주소 0.0.0.0을 본 메시지를 수신한 DHCP Relay Agent의 다운링크 IP 주소(1.1.1.254)로 변경
DHCP Offer Message
그림 6. IP 주소 당(임대) 절차: DHCP Offer 메시지
Ethernet Header
. Destination MAC Address: DHCP Relay Agent의 업링크 MAC 주소(m3)를 Broadcast MAC 주소 (FF:FF:FF:FF:FF:FF)로 변경(본 예에서는 Broadcast Flag=1로 가정하였으므로 브로드캐스팅함)
. Source MAC Address: DHCP 서버의 MAC 주소(m5)를 DHCP Relay Agent의 다운링크 MAC 주소(m2)로 변경
IP Header
. Source IP Address: DHCP 서버 IP 주소(100.1.1.1)를 DHCP Relay Agent의 다운링크 IP 주소(1.1.1.254)로 변경
. Destination IP Address: DHCP Relay Agent의 다운링크 IP 주소(giaddr=1.1.1.254)를 Broadcast IP 주소(255.255.255.255)로 변경(본 예에서는 Broadcast Flag=1로 가정)
DHCP Request Message
그림 7. IP 주소 당(임대) 절차: DHCP Request 메시지
Ethernet Header
. Destination MAC Address: Broadcast MAC 주소(FF:FF:FF:FF:FF:FF)를 DHCP 서버 MAC 주소(m5)로 변경
. Source MAC Address: PC의 MAC 주소(m1)를 DHCP Relay Agent의 업링크 MAC 주소(m3)로 변경
IP Header
. Source IP Address: IP 주소 0.0.0.0을 DHCP Relay Agent의 업링크 IP 주소(100.1.1.254)로 변경
. Destination IP Address: IP 주소 255.255.255.255를 DHCP 서버의 IP 주소(100.1.1.1)로 변경
DHCP Message Payload
. Gateway IP Address(giaddr): IP 주소 0.0.0.0을 본 메시지를 수신한 DHCP Relay Agent의 다운링크 IP 주소(1.1.1.254)로 변경
DHCP Ack Message
그림 8. IP 주소 당(임대) 절차: DHCP Ack 메시지
Ethernet Header
. Destination MAC Address: DHCP Relay Agent의 업링크 MAC 주소(m3)를 Broadcast MAC 주소(FF:FF:FF:FF:FF:FF)로 변경(본 예에서는 Broadcast Flag=1로 가정하였으므로 브로드캐스팅함)
. Source MAC Address: DHCP 서버의 MAC 주소(m5)를 DHCP Relay Agent의 다운링크 MAC 주소(m2)로 변경
IP Header
. Source IP Address: DHCP 서버 IP 주소(100.1.1.1)를 DHCP Relay Agent의 다운링크 IP 주소(1.1.1.254)로 변경
. Destination IP Address: DHCP Relay Agent의 다운링크 IP 주소(giaddr=1.1.1.254)를 Broadcast IP 주소(255.255.255.255)로 변경(본 예에서는 Broadcast Flag=1로 가정)