Transcript
Netmanias 기술문서: DHCP Proxy Agent의 동작 원리와 보안 기능
www.netmanias.com www.nmcgroups.com
목 차
I. 개요
II. DHCP Proxy Agent 소개
III. DHCP Proxy Agent를 통한 DHCP 동작 원리
IV. DHCP Proxy Agent를 통한 DHCP 보안 기능
V. 요약 및 정리
부록 A ? IP 주소 할당(임대) 절차의 DHCP 메시지 포맷
부록 B ? IP 주소 임대기간 연장 절차의 DHCP 메시지 포맷
부록 C ? IP 주소 반납 절차의 DHCP 메시지 포맷
DHCP(Dynamic Host Configuration Protocol) 기술의 네 번째 문서로 DHCP 서버와 클라이언트 기
능을 모두 지원하는 DHCP Proxy Agent를 통하여 단말이 IP 주소를 할당(임대), IP 주소 임대기간을
연장 그리고 IP 주소를 반납하는 절차를 설명하고 그 과정에서 DHCP Proxy Agent에 의해 변경되
는 DHCP 메시지 파라미터들에 대해서 살펴본다. 또한 DHCP Proxy Agent의 DHCP 보안 기능에 대
해서 소개한다.
2011년 8월 19일
NMC Consulting Group (tech@netmanias.com)
I. 개요
본 문서에서는 DHCP 서버 및 DHCP 클라이언트 기능을 모두 지원하는 DHCP Proxy Agent에 대해서 설명한다. II 장에서 DHCP Relay Agent와의 비교를 통해 DHCP Proxy Agent의 기능과 장점을 소개하고 III 장에서 DHCP Proxy Agent를 통한 DHCP 동작에 대해서 기술한다. IV 장에서는 DHCP Proxy Agent의 DHCP 보안 기능에 대해서 설명하고 마지막으로 부록에서 DHCP Proxy Agent 홖경에서 단말과 DHCP 서버간에 주고 받는 DHCP 메시지의 상세 예를 보인다.
본 문서에 앞서 DHCP 기본 동작 원리와 상세 원리를 설명하고 있는 [1][2]와 DHCP Relay Agent에 대해 기술하고 있는 [3]을 읽어 볼 것을 권고한다.
II. DHCP Proxy Agent 소개
DHCP Relay Agent는 동일 서브넷 상에서 단말이 송싞하는 DHCP 브로드캐스트 패킷(DHCP Discover/ Request)을 수싞하여 이 메시지를 다른 서브넷에 위치하는 DHCP 서버로 전달하는 기능을 수행한다[3]. 반면 DHCP Proxy Agent는 단순히 DHCP 메시지를 단말과 서버간에 전달해 주는 기능 외에 단말과 DHCP 서버 사이에서 DHCP 서버와 DHCP 클라이언트 기능을 모두 지원한다. 즉, 단말에게는 DHCP Proxy Agent가 DHCP 서버로 보이도록 하고, DHCP 서버에게는 DHCP Proxy Agent가 단말로 보이도록 한다.
그림 1은 DHCP Relay Agent와 DHCP Proxy Agent의 차이를 보이고 있다. DHCP Relay Agent는 IP 주소 할당(임대) 절차에서 사용되는 브로드캐스트 패킷들에 대해서맊 중간에서 릴레이(relay) 기능을 수행하는 반면, DHCP Proxy Agent는 IP 주소 할당(임대), IP 주소 임대기간 연장, IP 주소 반납 절차에서 사용되는 모든 DHCP 메시지(브로드캐스트 및 유니캐스트)에 대해서 중간에서 DHCP 서버 및 DHCP 클라이언트 기능을 수행한다.
그림 1. DHCP Relay Agent와 DHCP Proxy Agent의 비교
이와 같은 DHCP Proxy Agent는 DHCP Relay Agent와 비교하였을 때 다음과 같은 장점을 가진다.
1) DHCP 서버의 IP 주소가 사용자(단말)에게 공개되지 않기 때문에 DHCP 서버를 대상으로 하는 DoS(Denial of Service)와 같은 공격에 대해 보호가 가능하다.
2) DHCP Proxy Agent는 DHCP 메시지를 통해 할당된 가입자의 IP 주소 목록을 유지하므로 이 정보를
IP Allocation ProcedureIP Renewal ProcedureIP Release ProcedureIP Allocation ProcedureIP Renewal ProcedureIP Release ProcedurePCDHCPDHCP DiscoverDHCP OfferDHCP RequestDHCP AckDHCP RequestDHCP AckDHCP ReleaseProxyDHCP ClientDHCP DiscoverDHCP OfferDHCP RequestDHCP AckDHCP RequestDHCP AckDHCP ReleasePCDHCPRelayDHCP DiscoverDHCP OfferDHCP RequestDHCP AckDHCP RequestDHCP AckDHCP ReleaseDHCP DiscoverDHCP OfferDHCP RequestDHCP Ack(a) DHCP Relay Agent(b) DHCP Proxy AgentDHCP RelayDHCP Server
기반으로 IP-to-MAC 바인딩 테이블을 생성하고, DHCP 절차를 통해 IP 주소를 할당 받지 않은 사용자(예를 들어 고정 IP 설정 사용자)의 트래픽을 차단 할 수 있다(DHCP 보안 기능: IV 장 참조). 실제 넷매니아즈에서 SI(System Integration)를 수행한 네덜란드 V사의 경우 이 방식을 적용하였다.
III. DHCP Proxy Agent를 통한 DHCP 동작 원리
본 장에서는 그림 2와 같이 서브넷 1.1.1.0/24에 속한 PC 1이 DHCP Proxy Agent를 통해 DHCP 서버로부터 IP 주소를 할당(임대), IP 주소 임대기간을 연장, IP 주소를 반납하는 절차를 설명하도록 한다.
그림 2. 망 구성도
3.1 IP 주소 할당(임대) 절차
DHCP Proxy Agent는 그림 3과 같이 PC와 DHCP 서버 사이에 위치한다. DHCP Proxy Agent는 단말이 브로드캐스팅하는 DHCP Discover와 DHCP Request 메시지를 수싞하여 DHCP 서버로 유니캐스팅하며 이때 DHCP 메시지 내 Relay Agent IP1(=Gateway IP=giaddr) 필드에 자싞의 IP 주소(DHCP Discover/Request 메시지를 수싞한 인터페이스 주소)를 기록한다.
DHCP 서버는 Relay Agent IP 주소를 Destination IP 주소로 하여 DHCP Offer와 DHCP Ack 메시지를 유니캐스팅하며 이를 수싞한 DHCP Proxy Agent는 메시지 내의 Broadcast Flag 값에 따라 Destination IP 주소를 단말의 IP 주소(Broadcast Flag=0) 혹은 브로드캐스트 주소(Broadcast Flag=1)로 변홖하고[2] Source IP 주소를 DHCP Proxy Agent 주소로 변홖하여 DHCP 메시지를 단말에 전달한다. 여기까지는 [3]에서 기술한 DHCP Relay Agent와 동일한 동작이다. DHCP Proxy Agent가 DHCP Relay Agent와 구별되는 중요한 차이점은 DHCP Offer와 DHCP Ack 메시지에 포함된 DHCP Server Identifier(Option 54) 필드를 DHCP Proxy Agent의 IP 주소로 변경하는 것이다. 이를 통해 단말은 DHCP Proxy Agent가 마치 DHCP 서버인 것으로 인식하게 된다.
1 DHCP Relay Agent와 DHCP Proxy Agent 모두 단말과 DHCP 서버 사이에서 DHCP 메시지를 Relay 하는 기능을 수행하며, 표준에 따르면 이 Agent의 IP 주소는 DHCP 메시지 내에 Gateway IP Address(giaddr) 필드에 들어가게 된다. 본 문서에서 설명하는 Relay Agent IP는 Gateway IP Address를 말하는 것이다.
InternetDHCP ServerL2 SWL2 SWRouterPC1DHCP Discover/Request (Broadcast)DHCP Discover/Request (Unicast)100.1.1.11.1.1.254/242.1.1.254/24DHCP Proxy AgentBroadcast Domain(1.1.1.0/24)Broadcast Domain(2.1.1.0/254)100.1.1.254/24
1. DHCP Discover
단말은 DHCP Discover 메시지를 동일 서브넷 상에 브로드캐스팅한다[1]. DHCP Proxy Agent는 UDP Destination Port=67(DHCP Discover/Request 메시지)인 패킷은 모두 수싞해야 하며 이를 수싞한 DHCP Proxy Agent는 DHCP Discover 메시지의 MAC 주소와 IP 주소 그리고 Relay Agent IP 주소를 변경하여 DHCP 서버로 유니캐스팅한다.
여기서 한가지 유심히 살펴 볼 것은 DHCP Discover 메시지의 Source IP 주소 필드는 DHCP Proxy Agent의 “업링크 IP 주소(100.1.1.254)”로 변경되고, Relay Agent IP 주소 필드는 DHCP Proxy Agent의 “다운링크 IP 주소(1.1.1.254)”로 변경되어 DHCP 서버로 전달된다는 것이다. Source IP 주소 필드는 본 패킷(DHCP Discover 메시지)의 Outgoing Interface(패킷이 송출되는 포트) IP 주소가 붙어 나가는 것이므로 DHCP Proxy Agent의 업링크 IP 주소가 되는 것이 당연하고, Relay Agent IP 주소 필드의 경우 DHCP 서버가 본 필드의 IP 주소를 참조하여 IP Pool을 선택하기 때문에 단말과 동일 서브넷에 위치하는 IP 주소, 즉 DHCP Proxy Agent의 다운링크 IP 주소가 사용되는 것이다.
2. DHCP Offer
DHCP 서버는 DHCP Discover 메시지의 Relay Agent IP 주소(giaddr)를 기반으로 IP Pool을 선택하고 해당 IP Pool에서 단말에 할당(임대)할 IP 주소를 결정한다. 그리고 Relay Agent IP 주소를 Destination IP 주소로 하여 DHCP Offer 메시지를 전송한다. 이 메시지를 수싞한 DHCP Proxy Agent는 DHCP Offer 메시지의 MAC 주소와 IP 주소 그리고 DHCP Server Identifier(Option 54) 필드를 변경하여 단말로 브로드캐스팅 혹은 유니캐스팅한다[2].
DHCP Server Identifier 필드는 이름 그대로 DHCP 서버를 구별하는 인자로써 DHCP Proxy Agent는
1a DHCP Discover (Broadcast)Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m1},IP Header {SIP=0.0.0.0, DIP=255.255.255.255}, DHCP Payload {Broadcast Flag=0 or 1, Relay Agent IP=0.0.0.0, Client MAC=m1}PC MAC=m1PCDHCPProxyDHCP Server IP=100.1.1.1DHCP Server MAC=m5Configuration: DHCP Server IP=100.1.1.11b DHCP Discover (Unicast)Ethernet Header {DA=m5, SA=m3},IP Header {SIP=100.1.1.254, DIP=100.1.1.1}, DHCP Payload {Broadcast Flag=0 or 1, Relay Agent IP=1.1.1.254, Client MAC=m1}2a DHCP Offer (Unicast)Ethernet Header {DA=m3, SA=m5},IP Header {SIP=100.1.1.1, DIP=1.1.1.254},DHCP Payload {Broadcast Flag=0 or 1, Your IP=1.1.1.10, Relay Agent IP=1.1.1.254, Client MAC=m1, DHCP Server Identifier(54)=100.1.1.1, Options}2b DHCP Offer (Unicast or Broadcast)Ethernet Header {DA=m1 or FF:FF:FF:FF:FF:FF, SA=m2},IP Header {SIP=1.1.1.254, DIP=1.1.1.10 or 255.255.255.255},DHCP Payload {Broadcast Flag=0 or 1, Your IP=1.1.1.10, Relay Agent IP=1.1.1.254, Client MAC=m1, DHCP Server Identifier(54)=100.1.1.254, Options}3a DHCP Request (Broadcast)Ethernet Header {DA=FF:FF:FF:FF:FF:FF, SA=m1},IP Header {SIP=0.0.0.0, DIP=255.255.255.255}, DHCP Payload {Broadcast Flag=0 or 1, Relay Agent IP=0.0.0.0, Client MAC=m1, DHCP Server Identifier(54)=100.1.1.254}3b DHCP Request (Unicast)Ethernet Header {DA=m5, SA=m3},IP Header {SIP=100.1.1.254, DIP=100.1.1.1}, DHCP Payload {Broadcast Flag=0 or 1, Relay Agent IP=1.1.1.254, Client MAC=m1, DHCP Server Identifier(54)=100.1.1.1}4a DHCP Ack (Unicast)Ethernet Header {DA=m3, SA=m5},IP Header {SIP=100.1.1.1, DIP=1.1.1.254},DHCP Payload {Broadcast Flag=0 or 1, Your IP=1.1.1.10, Relay Agent IP=1.1.1.254, Client MAC=m1, DHCP Server Identifier(54)=100.1.1.1, Options}4b DHCP Ack (Unicast or Broadcast)Ethernet Header {DA=m1 or FF:FF:FF:FF:FF:FF, SA=m2},IP Header {SIP=1.1.1.254, DIP=1.1.1.10 or 255.255.255.255},DHCP Payload {Broadcast Flag=0 or 1, Your IP=1.1.1.10, Relay Agent IP=1.1.1.254, Client MAC=m1, DHCP Server Identifier(54)=100.1.1.254, Options}IP address=1.1.1.10 allocation completedInternet AccessSIP=1.1.1.10L2 NetworkUplink IP=100.1.1.254(Server IP)Downlink IP=1.1.1.254(Relay Agent IP)Downlink MAC=m2Uplink MAC=m3
DHCP 서버의 IP 주소(100.1.1.1)를 자싞의 업링크 IP 주소(100.1.1.254)로 변경함으로써 단말은 DHCP Proxy Agent가 DHCP 서버인 것으로 알게 된다.
3. DHCP Request
DHCP Offer 메시지를 수싞한 단말은 IP 주소를 포함한 네트워크 정보를 요청하기 위해 DHCP Request 메시지를 브로드캐스팅한다[1]. 이 메시지를 수싞한 DHCP Proxy Agent는 DHCP Request 메시지의 MAC 주소, IP 주소 그리고 Relay Agent IP 주소와 DHCP Server Identifier(Option 54) 필드를 변경하여 DHCP 서버로 유니캐스팅한다.
DHCP Request 메시지의 Source IP 주소와 Relay Agent IP 주소 필드의 변경은 DHCP Discover 메시지의 과정과 동일하다. DHCP Server Identifier 필드의 경우 단말이 보낸 DHCP Proxy Agent의 업링크 IP 주소(100.1.1.254)를 DHCP 서버의 IP 주소(100.1.1.1)로 변경하는데, 이는 본 필드의 주소 값이 자싞의 주소가 아닌 경우 DHCP 서버는 DHCP 메시지를 폐기하기 때문이다.
4. DHCP Ack
DHCP 서버는 단말에 할당(임대)할 IP 주소를 최종 결정한다. 그리고 DHCP Request 메시지의 Relay Agent IP 주소(giaddr)를 Destination IP 주소로 하여 DHCP Ack 메시지를 전송한다. 이 메시지를 수싞한 DHCP Proxy Agent는 DHCP Ack 메시지의 MAC 주소와 IP 주소 그리고 DHCP Server Identifier(Option 54) 필드를 변경하여 단말로 브로드캐스팅 혹은 유니캐스팅한다[2]. 메시지 필드 변경 내역은 DHCP Offer와 동일하다.
앞서 설명한 바와 같이 IP 주소 할당(임대) 절차에서 DHCP Proxy Agent가 수행하는 주요 기능 중에 하나가 단말과 DHCP 서버 사이에서 DHCP 메시지 내의 DHCP Server Identifier 필드를 변경하는 것인데, 이를 요약해 도식화하면 그림 4와 같다.
그림 4. DHCP Server Identifier 필드 변경
3.2 IP 주소 임대기간 연장 절차
[1]에 따르면 단말은 IP 주소 할당(임대) 절차에서 수싞한 DHCP Ack 메시지의 DHCP Server Identifier 필드를 통해 DHCP 서버의 IP 주소를 저장해 놓는다. 그리고 이후 IP 주소 임대기간 연장 시에 단말은 DHCP Request 메시지를 브로드캐스팅이 아닌 DHCP 서버로 바로 유니캐스팅한다. 그림 5와 같이 단말이 알고 있는 DHCP 서버 IP 주소는 DHCP Proxy Agent의 업링크 IP 주소이므로 본 메시지는 DHCP Proxy Agent로 전달되고, DHCP Proxy Agent가 이 메시지를 재처리 후 DHCP 서버로 전달한다.
DHCP DiscoverPCDHCPProxyDHCP DiscoverDHCP OfferDHCP Server Identifier(54)=DHCP Server IPDHCP OfferDHCP RequestDHCP RequestDHCP AckDHCP AckDHCP Server Identifier(54)=DHCP Proxy Agent IPDHCP Server Identifier(54)=DHCP Proxy Agent IPDHCP Server Identifier(54)=DHCP Server IPDHCP Server Identifier(54)=DHCP Server IPDHCP Server Identifier(54)=DHCP Proxy Agent IP
DHCP 서버는 이에 대한 응답으로 DHCP Ack 메시지를 유니캐스팅하는데 이 때 사용되는 Destination IP 주소는 DHCP Request 메시지의 Relay Agent IP 주소(giaddr)가 되므로 이 메시지는 DHCP Proxy Agent로 전달되고, DHCP Proxy Agent가 이 메시지를 재처리 후 단말로 전달한다.
[3]에서 DHCP Relay Agent는 본 절차에 대해 관여하지 않는 반면 DHCP Proxy Agent는 중간에서 DHCP Request/Ack 메시지를 수싞하여 재처리한다.
그림 5. DHCP Proxy Agent 환경에서 IP 주소 임대기간 연장 절차
1. DHCP Request
단말은 DHCP Request 메시지의 Destination IP 주소를 DHCP Proxy Agent로 하여 유니캐스팅하고 이 메시지를 수싞한 DHCP Proxy Agent는 DHCP Request 메시지의 MAC 주소와 IP 주소 그리고 Relay Agent IP 주소를 변경하여 DHCP 서버로 유니캐스팅한다.
2. DHCP Ack
DHCP 서버는 DHCP Request 메시지의 Relay Agent IP 주소(giaddr)를 Destination IP 주소로 하여 DHCP Ack 메시지를 전송한다. 이 메시지를 수싞한 DHCP Proxy Agent는 DHCP Ack 메시지의 MAC 주소와 IP 주소 그리고 DHCP Server Identifier(Option 54) 필드를 변경하여 DHCP 서버로 유니캐스팅한다.
3.3 IP 주소 반납 절차
IP 주소 반납시에 단말은 DHCP Release 메시지를 DHCP 서버로 바로 유니캐스팅한다. 그림 6과 같이 단말이 알고 있는 DHCP 서버 IP 주소는 DHCP Proxy Agent의 업링크 IP 주소이므로 본 메시지는 DHCP Proxy Agent로 전달되고, DHCP Proxy Agent가 이 메시지를 재처리 후 DHCP 서버로 전달한다.
[3]에서 DHCP Relay Agent는 본 절차에 대해 관여하지 않는 반면 DHCP Proxy Agent는 중간에서 DHCP Release 메시지를 수싞하여 재처리한다.
L2 NetworkT1 Timer Expired (IP Address Renewal Time)PC MAC=m1PCDHCPProxy1a DHCP Request (Unicast)Ethernet Header {DA=m2, SA=m1},IP Header {SIP=1.1.1.10, DIP=100.1.1.254}, DHCP Payload {Client IP=1.1.1.10, Relay Agent IP=0.0.0.0, Client MAC=m1}2b DHCP Ack (Unicast)Ethernet Header {DA=m1, SA=m2},IP Header {SIP=1.1.1.254, DIP=1.1.1.10}, DHCP Payload {Client IP=1.1.1.10, Your IP=1.1.1.10, Relay Agent IP=1.1.1.254, Client MAC=m1, DHCP Server Identifier(54)=100.1.1.254, Options}IP address=1.1.1.10 renewal completedInternet AccessSIP=1.1.1.10Configuration: DHCP Server IP=100.1.1.11b DHCP Request (Unicast)Ethernet Header {DA=m5, SA=m3},IP Header {SIP=100.1.1.254, DIP=100.1.1.1}, DHCP Payload {Client IP=1.1.1.10, Relay Agent IP=1.1.1.254, Client MAC=m1}2a DHCP Ack (Unicast)Ethernet Header {DA=m3, SA=m5},IP Header {SIP=100.1.1.1, DIP=1.1.1.254}, DHCP Payload {Client IP=1.1.1.10, Your IP=1.1.1.10, Relay Agent IP=1.1.1.254, Client MAC=m1, DHCP Server Identifier(54)=100.1.1.1, Options}Uplink IP=100.1.1.254(Server IP)Downlink IP=1.1.1.254(Relay Agent IP)Downlink MAC=m2Uplink MAC=m3DHCP Server IP=100.1.1.1DHCP Server MAC=m5
그림 6. DHCP Proxy Agent 환경에서 IP 주소 반납 절차
1. DHCP Release
단말은 DHCP Release 메시지의 Destination IP 주소를 DHCP Proxy Agent로 하여 유니캐스팅하고 이 메
시지를 수싞한 DHCP Proxy Agent는 DHCP Release 메시지의 MAC 주소, IP 주소 그리고 Relay Agent
IP 주소와 DHCP Server Identifier(Option 54) 필드를 변경하여 DHCP 서버로 유니캐스팅한다.
IV. DHCP Proxy Agent를 통한 DHCP 보안 기능2
앞서 살펴 본 바와 같이 단말과 DHCP 서버간에 주고 받는 모든 DHCP 메시지는 DHCP Proxy Agent에서 재
처리된다. 본 장에서는 DHCP Proxy Agent의 보안 기능으로, 정상적인 DHCP 절차를 통해 IP 주소를 할당
받지 않은 사용자 트래픽을 어떻게 차단하는지 그 과정을 살펴보도록 한다. 그림 7은 DHCP 보안 기능의 개
요를 설명하고 있다.
그림 7. DHCP Proxy Agent의 DHCP 보안 기능
4.1 IP-to-MAC 바인딩 테이블 생성 절차
그림 8은 DHCP 메시지를 통해 DHCP Proxy Agent에 IP-to-MAC 바인딩 테이블이 생성되는 과정을 보이고
있다.
2 여기서 설명하는 DHCP 보안 기능은 DHCP Relay Agent에서도 지원이 가능하나, 이 경우 DHCP Relay Agent는 IP 주
소 임대기간 연장과 IP 주소 반납 절차에서 사용되는 DHCP 메시지(유니캐스트)를 snooping할 수 있어야 한다.
L2 Network
PC MAC=m1
PC Proxy DHCP
Configuration: DHCP Server IP=100.1.1.1
Internet Access
SIP=1.1.1.10
1a DHCP Release (Unicast)
Ethernet Header {DA=m2, SA=m1},
IP Header {SIP=1.1.1.10, DIP=100.1.1.254},
DHCP Payload {Client IP=1.1.1.10, Relay Agent IP=0.0.0.0,
Client MAC=m1, DHCP Server Identifier(54)=100.1.1.254}
DHCP client shut down (or “ipconfig /release”)
IP address=1.1.1.10 release completed
1b DHCP Release (Unicast)
Ethernet Header {DA=m5, SA=m3},
IP Header {SIP=100.1.1.254, DIP=100.1.1.1},
DHCP Payload {Client IP=1.1.1.10, Relay Agent IP=1.1.1.254,
Client MAC=m1, DHCP Server Identifier(54)=100.1.1.1}
Uplink IP=100.1.1.254
(Server IP)
Downlink IP=1.1.1.254
(Relay Agent IP)
Downlink MAC=m2 Uplink MAC=m3
DHCP Server IP=100.1.1.1
DHCP Server MAC=m5
Hacker Internet
Normal User
DHCP Client DHCP Proxy
Agent
Static IP illegally
DHCP Proxy Agent
· IP-to-MAC Binding 테이블
· 정 인 DHCP 절차를 통 IP 주소를 할당 지 이
ARP Request DHCP Proxy Agent 보 경 , 이를 기한
· 서 당 Internet 이 능 .
DHCP Server
User Traffic
User Traffic
그림 8. IP-to-MAC 바인딩 테이블 생성 절차
? DHCP Proxy Agent는 IP 할당(임대) 절차의 마지막 단계인 DHCP Ack 메시지의 파라미터를 파싱하여 IP-to-MAC 바인딩 테이블에 단말 MAC 주소(m1), 단말 IP 주소(1.1.1.10), IP 주소 임대기간(3,600초)과 단말이 연결된 DHCP Proxy Agent의 Interface(Ge1/1) 정보를 기록한다. 또한 Expired Time 필드를 관리하게 되는데 이는 처음에 IP 주소 임대기간과 같은 값으로 설정되고, 이후 매초 마다 그 값이 1씩 감소된다.
? 단말의 T1 타이머가 Expire되면(IP 주소를 할당 받은 후 1,800초가 지나면) 단말은 IP 주소 임대기간 연장 절차를 시작하고[2], DHCP Proxy Agent는 IP-to-MAC 바인딩 테이블의 Lease Time과 Expired Time 필드를 DHCP Ack 메시지의 IP 주소 임대기간(3,600초)으로 갱싞한다.
? 이후 사용자가 단말 전원을 껐다고 가정하자. 이 경우 DHCP Proxy Agent는 그 사실을 알지 못하며(DHCP 서버 역시 모름) Expired Time 필드는 매 초마다 1씩 감소 되다가 3,600초가 지나면 마침내 필드 값이 0이 되어 IP-to-MAC 바인딩 테이블의 해당 엔트리가 삭제된다. 물롞 단말이 DHCP Release 메시지를 DHCP Proxy Agent로 송싞하게 되는 경우에도, 해당 단말에 대한 엔트리는 삭제된다.
DHCP DiscoverPC MAC=m1PCDHCPProxyDHCP DiscoverDHCP OfferDHCP OfferDHCP Request DHCP Request DHCP AckDHCP Payload {Your IP=1.1.1.10, Client MAC=m1, IP Lease Time(51)=3,600s}DHCP AckIP address=1.1.1.10 allocation completedInternet AccessSIP=1.1.1.10L2 NetworkGe1/1DHCP Payload {Your IP=1.1.1.10, Client MAC=m1, IP Lease Time(51)=3,600s}IP-to-MAC Binding Tablem1MACIP Address1.1.1.10InterfaceGe1/1Lease Time3600 secExpired Time3600 secCreated...t=0IP-to-MAC Binding Tablem1MACIP Address1.1.1.10InterfaceGe1/1Lease Time3600 secExpired Time1800 secDHCP RequestDHCP AckDHCP RequestDHCP AckT1 Timer Expired (IP Address Renewal Time)DHCP Payload {Your IP=1.1.1.10, Client MAC=m1, IP Lease Time(51)=3,600s}DHCP Payload {Your IP=1.1.1.10, Client MAC=m1, IP Lease Time(51)=3,600s}Ge1/1IP-to-MAC Binding Tablem1MACIP Address1.1.1.10InterfaceGe1/1Lease Time3600 secExpired Time3600 secRefresh the TimerExpired Time is decreased in every secondIP address=1.1.1.10 renewal completedInternet AccessSIP=1.1.1.10...PC Power-Offt=0IP-to-MAC Binding Table-MACIP Address-Interface-Lease Time-Expired Time-t=3,600st=1,800s123Deleted when Expired Time=0Or when it receives DHCP Release message
4.2 비정 트래픽 차
일반적으로 단말의 Default Gateway에 해당하는 라우터(단말이 첫 번째로 맊나는 라우터)에 DHCP Proxy Agent 기능을 enable하여 사용하게 되는데, DHCP Proxy Agent는 단말의 ARP 요청 패킷(ARP Request)에 대해 MAC-to-IP 바인딩 테이블을 검사하여 단말의 유효성을 검사하게 된다. 그림 9는 그 과정을 설명하고 있다.
그림 9. IP-to-MAC 바인딩 테이블 이용한 트래픽 차
? PC1은 정상적인 DHCP 절차를 통해 IP 주소를 할당(임대) 받았으므로 해당 단말의 정보가 IP-to-MAC 바인딩 테이블에 존재한다. PC1이 ARP Request 패킷을 보내면, 이를 수싞한 DHCP Proxy Agent는 ARP Request 패킷의 Sender MAC address(m1)와 Sender IP address(1.1.1.10) 필드가 IP-to-MAC 바인딩 테이블에 존재하는지 확인 후에 단말에게 ARP Reply를 전달한다.
? PC2는 고정 IP 주소를 할당한 단말이므로 해당 단말의 정보(MAC 주소, IP 주소)가 IP-to-MAC 바인딩 테이블에 존재하지 않는다. 따라서 PC2가 보낸 ARP Request 패킷의 Sender MAC address(m2)와 Sender IP address(1.1.1.20) 정보가 IP-to-MAC 바인딩 테이블에 존재하지 않기 때문에 DHCP Proxy Agent는 단말에게 ARP Reply를 전달하지 않는다. 따라서 PC2는 Default Gateway Router에 해당하는 DHCP Proxy Agent의 MAC 주소를 알 수 없으므로 인터넷 액세스를 할 수 없게 된다.
본 절에서 설명한 DHCP 보안 기능은 ARP 요청 패킷에 대한 응답 제어를 통해서 단말의 망(인터넷) 접근을 제어할 뿐이지 단말의 모든 데이터 트래픽을 검사하는 것은 아니다. 즉, 해커가 Default Gateway(DHCP Proxy Agent)의 MAC 주소를 알 수 맊 있다면(아는데 별로 어렵지도 않고) DHCP 보안 기능은 무력화 되어 버린다. 따라서 일부 통싞 사업자의 경우 좀 더 견고한 보안을 위해 BRAS(Broadband Remote Access Server)라는 장비를 도입하였고 이를 통해 가입자의 모든 상하향 데이터 트래픽을 검사한다. 국내 통싞사업자 망에
DHCP Discover/ReqeustPC MAC=m1PC1DHCPProxyDHCP Discover/ReqeustDHCP Offer/AckDHCP Offer/AckL2 NetworkGe1/1DHCP Payload {Your IP=1.1.1.10, Client MAC=m1}IP-to-MAC Binding Tablem1MACIP Address1.1.1.10InterfaceGe1/1Lease Time3600 secExpired Time3000 secARP RequestARP ReplyGe1/1Internet AccessSIP=1.1.1.10IP=1.1.1.254MAC=m10Who has 1.1.1.254? Tell 1.1.1.10/m11.1.1.254 is at m101.1.1.254 , 당 의 MAC 주소를 주 요 MAC m10 Matched1Ge1/1InternetPC MAC=m2PC2Configure IP address=1.1.1.20 at PC illegallyIP-to-MAC Binding Tablem1MACIP Address1.1.1.10InterfaceGe1/1Lease Time3600 secExpired Time3000 secARP RequestGe1/1Who has 1.1.1.254? Tell 1.1.1.20/m21.1.1.254 , 당 의 MAC 주소를 주 요Not Matched2So, Ignore(Discard) ARP Request packetDefault Gateway(1.1.1.254)의 MAC 주소를 Internet … ARP 이 ?
도입된 대표적인 BRAS 장비로는 Juniper E320과 Redback(Ericsson company) SE800이 있다.
V. 요약 및 정리
본 문서에서는 DHCP Proxy Agent를 통한 IP 주소 할당(임대), IP 주소 임대기간 연장, IP 주소 반납 절차와보안 기능에 대해서 알아 보았다. DHCP Relay Agent와 DHCP Proxy Agent의 차이점을 표 1과 같이 정리하면서 본 문서를 마무리한다.
표 1. DHCP Relay Agent와 DHCP Proxy Agent의 비교 DHCP Relay Agent DHCP Proxy Agent 기본 개념
서로 다른 서브넷 상에 존재하는 단말과 DHCP 서버간에 DHCP 메시지를 전달함
단말에는 DHCP 서버로, DHCP 서버에는 단말로 간주되어 모든 DHCP 메시지를 중도에서 재처리함 단말이 알고 있는 DHCP 서버 주소
DHCP 서버의 IP 주소
DHCP Proxy Agent의 IP 주소 IP 주소 할당(임대)
DHCP 메시지를 중간에서 재처리함
DHCP 메시지를 중간에서 재처리함 IP 주소 임대기간 연장
DHCP 메시지를 중간에서 재처리하지 않음
DHCP 메시지를 중간에서 재처리함 IP 주소 반납
DHCP 메시지를 중간에서 재처리하지 않음
DHCP 메시지를 중간에서 재처리함
고문헌
[1] 넷매니아즈 기술문서, “DHCP 기본 동작 원리”, February 2011, https://www.netmanias.com/ko/?m=view&id=techdocs&no=5163
[2] 넷매니아즈 기술문서, “DHCP 상세 동작 원리”, April 2011, https://www.netmanias.com/ko/?m=view&id=techdocs&no=5180
[3] 넷매니아즈 기술문서, “DHCP Relay Agent의 이해”, June 2011, https://www.netmanias.com/ko/?m=view&id=techdocs&no=5205
DHCP Proxy Agent의 동작 원리와 보안 기능
10
부록 A ? IP 주소 할당(임대) 절차의 DHCP 메시지 포맷
부록 A에서는 IP 주소 할당(임대) 절차에서 DHCP Proxy Agent에 의해 변경되는 DHCP 메시지 파라미터의 상세 예를 보인다.
DHCP Discover Message
그림 10. 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 Proxy Agent의 업링크 MAC 주소(m3)로 변경
IP Header
? Source IP Address: IP 주소 0.0.0.0을 DHCP Proxy 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 Proxy Agent의 다운링크 IP 주소(본 메시지를 수신한 인터페이스 IP 주소인 1.1.1.254)로 변경
UDP ChecksumUDP LengthSource Port = 68 (bootpc)Destination Port = 67 (bootps)TTLHeader ChecksumIdentificationFlagsFragment OffsetVer = 4IHL = 5TOSTotal LengthProtocol=17(UDP)Source IP Address = 0.0.0.0Destination IP Address = 255.255.255.255 (Broadcast)Source MAC Address = PC MAC Address (m1)Destination MAC Address = FF:FF:FF:FF:FF:FF (Broadcast)EtherType = 0x0800 (IP)Transaction ID (xid)SecondsBroadcast Flag (1b) = 1Client IP address (ciaddr) = 0.0.0.0Your IP Address (yiaddr) = 0.0.0.0Server IP address (siaddr) = 0.0.0.0Gateway IP Address (giaddr) = 0.0.0.00B4B2BOP code=1(Req.)HW Type=EthernetHW Length = 6HOPSClient Hardware Address (16B) (chaddr) = PC MAC Address (m1)Server Name (64B) (sname)Filename (128B)DHCP Message Type (Option 53) = 1 (DHCP Discover)Parameter Request List (Option 55) = Option 1, 3, 6, ...Client Identifier (Option 51) = PC MAC Address (m1)UDP ChecksumUDP LengthSource Port = 68 (bootpc)Destination Port = 67 (bootps)TTLHeader ChecksumIdentificationFlagsFragment OffsetVer = 4IHL = 5TOSTotal LengthProtocol=17(UDP)Source IP Address = DHCP Proxy Agent Uplink IP (100.1.1.254)Destination IP Address = DHCP Server IP (100.1.1.1)Source MAC Address = DHCP Proxy Agent Uplink MAC (m3)Destination MAC Address = DHCP Server MAC (m5)EtherType = 0x0800 (IP)Transaction ID (xid)SecondsBroadcast Flag (1b) = 1Client IP address (ciaddr) = 0.0.0.0Your IP Address (yiaddr) = 0.0.0.0Server IP address (siaddr) = 0.0.0.0Gateway IP Address (giaddr) = DHCP Proxy Agent Downlink IP (1.1.1.254)0B4B2BOP code=1(Req.)HW Type=EthernetHW Length = 6HOPSClient Hardware Address (16B) (chaddr) = PC MAC Address (m1)Server Name (64B) (sname)Filename (128B)EthernetIPUDPDHCP Message PayloadDHCP Message Type (
Option 53) =
1
(
DHCP Discover)Parameter Request List (Option 55) = Option 1, 3, 6, ...Client Identifier (Option 51) = PC MAC Address (m1)PCDHCPEthernetIPUDPDHCP Message PayloadProxyL2 NetworkUplink IP=100.1.1.254Downlink IP=1.1.1.254Downlink MAC=m2DHCP Discover Message from PC to DHCP Proxy AgentDHCP Discover Message from DHCP Proxy Agent to DHCP ServerDownlink MAC=m3DHCP Server IP=100.1.1.1DHCP Server MAC=m5PC MAC=m1
DHCP Proxy Agent의 동작 원리와 보안 기능
11
DHCP Offer Message
그림 11. IP 주소 할당(임대) 절차: DHCP Offer 메시지
Ethernet Header
? Destination MAC Address: DHCP Proxy Agent의 업링크 MAC 주소(m3)를 Broadcast MAC 주소(FF:FF:FF:FF:FF:FF)로 변경
(본 예에서는 Broadcast Flag=1로 가정하였으므로 브로드캐스팅함)
? Source MAC Address: DHCP 서버의 MAC 주소(m5)를 DHCP Proxy Agent의 다운링크 MAC 주소(m2)로 변경
IP Header
? Source IP Address: DHCP 서버의 IP 주소(100.1.1.1)를 DHCP Proxy Agent의 다운링크 IP 주소(1.1.1.254)로 변경
? Destination IP Address: DHCP Proxy Agent의 다운링크 IP 주소(giaddr=1.1.1.254)를 Broadcast IP 주소(255.255.255.255)로 변경(본 예에서는 Broadcast Flag=1로 가정)
DHCP Message Payload
? DHCP Server Identifier(Option 54): DHCP 서버의 IP 주소(100.1.1.1)를 DHCP Proxy Agent의 업링크 IP 주소(100.1.1.254)로 변경
L2 NetworkDownlink IP=1.1.1.254Downlink MAC=m2UDP ChecksumUDP LengthSource Port = 67 (bootps)Destination Port = 68 (bootpc)TTLHeader ChecksumIdentificationFlagsFragment OffsetVer = 4IHL = 5TOSTotal LengthProtocol=17(UDP)Source IP Address = DHCP Proxy Agent Downlink IP (1.1.1.254)Destination IP Address = 255.255.255.255 (Broadcast)Source MAC Address = DHCP Proxy Agent MAC Address (m2)Destination MAC Address = FF:FF:FF:FF:FF:FF (Broadcast)EtherType = 0x0800 (IP)Transaction ID (xid)SecondsBroadcast Flag (1b) = 1Client IP address (ciaddr) = 0.0.0.0Your IP Address (yiaddr) = 1.1.1.10Server IP address (siaddr) = 0.0.0.0Gateway IP Address (giaddr) = DHCP Proxy Agent Downlink IP (1.1.1.254)0B4B2BOP code=2(Reply)HW Type=EthernetHW Length = 6HOPSClient Hardware Address (16B) (chaddr) = PC MAC Address (m1)Server Name (64B) (sname)Filename (128B)Subnet Mask (Option 1) = 255.255.255.0 (/24)Router IP (Option 3) = 1.1.1.254Domain Name Server IP (Option 6) = 10.1.1.1, 10.1.1.2IP Address Lease Time (Option 51) = 3,600 seconds (1 hour)DHCP Server Identifier (Option 54) = DHCP Proxy Agent Uplink IP (100.1.1.254)DHCP Message Type (Option 53) = 2 (DHCP Offer)PCDHCPProxyEthernetIPUDPDHCP Message PayloadUDP ChecksumUDP LengthSource Port = 67 (bootps)Destination Port = 68 (bootpc)TTLHeader ChecksumIdentificationFlagsFragment OffsetVer = 4IHL = 5TOSTotal LengthProtocol=17(UDP)Source IP Address = DHCP Server IP Address (100.1.1.1)Destination IP Address = DHCP Proxy Agent Downlink IP (1.1.1.254)Source MAC Address = DHCP Server MAC (m5)Destination MAC Address = DHCP Proxy Agent Uplink MAC (m3)EtherType = 0x0800 (IP)Transaction ID (xid)SecondsBroadcast Flag (1b) = 1Client IP address (ciaddr) = 0.0.0.0Your IP Address (yiaddr) = 1.1.1.10Server IP address (siaddr) = 0.0.0.0Gateway IP Address (giaddr) = DHCP Proxy Agent Downlink IP (1.1.1.254)0B4B2BOP code=2(Reply)HW Type=EthernetHW Length = 6HOPSClient Hardware Address (16B) (chaddr) = PC MAC Address (m1)Server Name (64B) (sname)Filename (128B)Subnet Mask (Option 1) = 255.255.255.0 (/24)Router IP (Option 3) = 1.1.1.254Domain Name Server IP (Option 6) = 10.1.1.1, 10.1.1.2IP Address Lease Time (Option 51) = 3,600 seconds (1 hour)DHCP Server Identifier (Option 54) = DHCP Server IP (100.1.1.1)EthernetIPUDPDHCP Message PayloadDHCP Message Type (
Option 53) =
2
(
DHCP Offer)DHCP Offer Message from DHCP Proxy Agent to PCDHCP Offer Message from DHCP Server to DHCP Proxy AgentDownlink MAC=m3Uplink IP=100.1.1.254DHCP Server IP=100.1.1.1DHCP Server MAC=m5PC MAC=m1
DHCP Proxy Agent의 동작 원리와 보안 기능
12
DHCP Request Message
그림 12. 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 Proxy Agent의 업링크 MAC 주소(m3)로 변경
IP Header
? Source IP Address: IP 주소 0.0.0.0을 DHCP Proxy 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 Proxy Agent의 다운링크 IP 주소(본 메시지를 수신한 인터페이스 IP 주소인 1.1.1.254)로 변경
? DHCP Server Identifier(Option 54): DHCP Proxy Agent의 업링크 IP 주소(100.1.1.254)를 DHCP 서버의 IP 주소(100.1.1.1)로 변경
L2 NetworkDownlink IP=1.1.1.254Downlink MAC=m2DHCP Request Message from PC to DHCP Proxy AgentDHCP Request Message from DHCP Proxy Agent to DHCP ServerPCDHCPProxyUDP ChecksumUDP LengthSource Port = 68 (bootpc)Destination Port = 67 (bootps)TTLHeader ChecksumIdentificationFlagsFragment OffsetVer = 4IHL = 5TOSTotal LengthProtocol=17(UDP)Source IP Address = 0.0.0.0Destination IP Address = 255.255.255.255 (Broadcast)Source MAC Address = PC MAC Address (m1)Destination MAC Address = FF:FF:FF:FF:FF:FF (Broadcast)EtherType = 0x0800 (IP)Transaction ID (xid)SecondsBroadcast Flag (1b) = 1Client IP address (ciaddr) = 0.0.0.0Your IP Address (yiaddr) = 0.0.0.0Server IP address (siaddr) = 0.0.0.0Gateway IP Address (giaddr) = 0.0.0.00B4B2BOP code=1(Req.)HW Type=EthernetHW Length = 6HOPSClient Hardware Address (16B) (chaddr) = PC MAC Address (m1)Server Name (64B) (sname)Filename (128B)Requested IP Address (Option 50) = 1.1.1.10DHCP Message Type (Option 53) = 3 (DHCP Request)Parameter Request List (Option 55) = Option 1, 3, 6, ...DHCP Server Identifier (Option 54) = DHCP Proxy Agent Uplink IP (100.1.1.254)Client Identifier (Option 51) = PC MAC Address (m1)UDP ChecksumUDP LengthSource Port = 68 (bootpc)Destination Port = 67 (bootps)TTLHeader ChecksumIdentificationFlagsFragment OffsetVer = 4IHL = 5TOSTotal LengthProtocol=17(UDP)Source IP Address = DHCP Proxy Agent Uplink IP (100.1.1.254)Destination IP Address = DHCP Server IP (100.1.1.1)Source MAC Address = DHCP Proxy Agent Uplink MAC (m3)Destination MAC Address = DHCP Server MAC (m5)EtherType = 0x0800 (IP)Transaction ID (xid)SecondsBroadcast Flag (1b) = 1Client IP address (ciaddr) = 0.0.0.0Your IP Address (yiaddr) = 0.0.0.0Server IP address (siaddr) = 0.0.0.0Gateway IP Address (giaddr) = DHCP Proxy Agent Downlink IP (1.1.1.254)0B4B2BOP code=1(Req.)HW Type=EthernetHW Length = 6HOPSClient Hardware Address (16B) (chaddr) = PC MAC Address (m1)Server Name (64B) (sname)Filename (128B)EthernetIPUDPDHCP Message PayloadRequested IP Address (
Option 50) =
1.1.1.10DHCP Message Type (
Option 53) =
3
(
DHCP Request)Parameter Request List (Option 55) = Option 1, 3, 6, ...DHCP Server Identifier (Option 54) = DHCP Server IP (100.1.1.1)Client Identifier (Option 51) = PC MAC Address (m1)EthernetIPUDPDHCP Message PayloadDownlink MAC=m3Uplink IP=100.1.1.254DHCP Server IP=100.1.1.1DHCP Server MAC=m5PC MAC=m1
DHCP Proxy Agent의 동작 원리와 보안 기능
13
DHCP Ack Message
그림 13. IP 주소 할당(임대) 절차: DHCP Ack 메시지
Ethernet Header
? Destination MAC Address: DHCP Proxy Agent의 업링크 MAC 주소(m3)를 Broadcast MAC 주소(FF:FF:FF:FF:FF:FF)로 변경
(본 예에서는 Broadcast Flag=1로 가정하였으므로 브로드캐스팅함)
? Source MAC Address: DHCP 서버의 MAC 주소(m5)를 DHCP Proxy Agent의 다운링크 MAC 주소(m2)로 변경
IP Header
? Source IP Address: DHCP 서버의 IP 주소(100.1.1.1)를 DHCP Proxy Agent의 다운링크 IP 주소(1.1.1.254)로 변경
? Destination IP Address: DHCP Proxy Agent의 다운링크 IP 주소(giaddr=1.1.1.254)를 Broadcast IP 주소(255.255.255.255)로 변경(본 예에서는 Broadcast Flag=1로 가정)
DHCP Message Payload
? DHCP Server Identifier(Option 54): DHCP 서버의 IP 주소(100.1.1.1)를 DHCP Proxy Agent의 업링크 IP 주소(100.1.1.254)로 변경
L2 NetworkDownlink IP=1.1.1.254Downlink MAC=m2DHCP Ack Message from DHCP Proxy Agent to PCDHCP Ack Message from DHCP Server to DHCP Proxy AgentPCDHCPUDP ChecksumUDP LengthSource Port = 67 (bootps)Destination Port = 68 (bootpc)TTLHeader ChecksumIdentificationFlagsFragment OffsetVer = 4IHL = 5TOSTotal LengthProtocol=17(UDP)Source IP Address = DHCP Server IP Address (100.1.1.1)Destination IP Address = DHCP Proxy Agent Downlink IP (1.1.1.254)Source MAC Address = DHCP Server MAC (m5)Destination MAC Address = DHCP Proxy Agent Uplink MAC (m3)EtherType = 0x0800 (IP)Transaction ID (xid)SecondsBroadcast Flag (1b) = 1Client IP address (ciaddr) = 0.0.0.0Your IP Address (yiaddr) = 1.1.1.10Server IP address (siaddr) = 0.0.0.0Gateway IP Address (giaddr) = DHCP Proxy Agent Downlink IP (1.1.1.254)0B4B2BOP code=2(Reply)HW Type=EthernetHW Length = 6HOPSClient Hardware Address (16B) (chaddr) = PC MAC Address (m1)Server Name (64B) (sname)Filename (128B)EthernetIPUDPDHCP Message PayloadSubnet Mask (
Option 1) =
255.255.255.0 (/24)Router IP (Option 3) = 1.1.1.254Domain Name Server IP (Option 6) = 10.1.1.1, 10.1.1.2IP Address Lease Time (Option 51) = 3,600 seconds (1 hour)DHCP Server Identifier (Option 54) = DHCP Server IP (100.1.1.1)DHCP Message Type (Option 53) = 5 (DHCP Ack)UDP ChecksumUDP LengthSource Port = 67 (bootps)Destination Port = 68 (bootpc)TTLHeader ChecksumIdentificationFlagsFragment OffsetVer = 4IHL = 5TOSTotal LengthProtocol=17(UDP)Source IP Address = DHCP Proxy Agent Downlink IP (1.1.1.254)Destination IP Address = 255.255.255.255 (Broadcast)Source MAC Address = DHCP Proxy Agent MAC Address (m2)Destination MAC Address = FF:FF:FF:FF:FF:FF (Broadcast)EtherType = 0x0800 (IP)Transaction ID (xid)SecondsBroadcast Flag (1b) = 1Client IP address (ciaddr) = 0.0.0.0Your IP Address (yiaddr) = 1.1.1.10Server IP address (siaddr) = 0.0.0.0Gateway IP Address (giaddr) = DHCP Proxy Agent Downlink IP (1.1.1.254)0B4B2BOP code=2(Reply)HW Type=EthernetHW Length = 6HOPSClient Hardware Address (16B) (chaddr) = PC MAC Address (m1)Server Name (64B) (sname)Filename (128B)Subnet Mask (Option 1) = 255.255.255.0 (/24)Router IP (Option 3) = 1.1.1.254Domain Name Server IP (Option 6) = 10.1.1.1, 10.1.1.2IP Address Lease Time (Option 51) = 3,600 seconds (1 hour)DHCP Server Identifier (Option 54) = DHCP Proxy Agent Uplink IP (100.1.1.254)DHCP Message Type (Option 53) = 5 (DHCP Ack)EthernetIPUDPDHCP Message PayloadDownlink MAC=m3Uplink IP=100.1.1.254DHCP Server IP=100.1.1.1DHCP Server MAC=m5PC MAC=m1Proxy
DHCP Proxy Agent의 동작 원리와 보안 기능
14
부록 B ? IP 주소 임대기간 연장 절차의 DHCP 메시지 포맷
부록 B에서는 IP 주소 임대기간 연장 절차에서 DHCP Proxy Agent에 의해 변경되는 DHCP 메시지 파라미터의 상세 예를 보인다.
DHCP Request Message
그림 14. IP 주소 임대기간 절차: DHCP Request 메시지
Ethernet Header
? Destination MAC Address: DHCP Proxy Agent의 MAC 주소(m2)를 DHCP 서버의 MAC 주소(m5)로 변경
? Source MAC Address: PC의 MAC 주소(m1)를 DHCP Proxy Agent의 업링크 MAC 주소(m3)로 변경
IP Header
? Source IP Address: PC의 IP 주소(1.1.1.10)를 DHCP Proxy Agent의 업링크 IP 주소(100.1.1.254)로 변경
? Destination IP Address: DHCP Proxy Agent의 업링크 IP 주소(100.1.1.254)를 DHCP 서버의 IP 주소(100.1.1.1)로 변경
DHCP Message Payload
? Gateway IP Address(giaddr): IP 주소 0.0.0.0을 DHCP Proxy Agent의 다운링크 IP 주소(본 메시지를 수신한 인터페이스 IP 주소인 1.1.1.254)로 변경
L2 NetworkDownlink IP=1.1.1.254Downlink MAC=m2DHCP Request Message from PC to DHCP Proxy AgentDHCP Request Message from DHCP Proxy Agent to DHCP ServerPCDHCPProxyUDP ChecksumUDP LengthSource Port = 68 (bootpc)Destination Port = 67 (bootps)TTLHeader ChecksumIdentificationFlagsFragment OffsetVer = 4IHL = 5TOSTotal LengthProtocol=17(UDP)Source IP Address = PC IP Address (1.1.1.10)Destination IP Address = DHCP Proxy Agent Uplink IP (100.1.1.254)Source MAC Address = PC MAC Address (m1)Destination MAC Address = DHCP Proxy Agent Downlink MAC (m2)EtherType = 0x0800 (IP)Transaction ID (xid)SecondsBroadcast Flag (1b) = 1Client IP address (ciaddr) = 1.1.1.10Your IP Address (yiaddr) = 0.0.0.0Server IP address (siaddr) = 0.0.0.0Gateway IP Address (giaddr) = 0.0.0.00B4B2BOP code=1(Req.)HW Type=EthernetHW Length = 6HOPSClient Hardware Address (16B) (chaddr) = PC MAC Address (m1)Server Name (64B) (sname)Filename (128B)DHCP Message Type (Option 53) = 3 (DHCP Request)Parameter Request List (Option 55) = Option 1, 3, 6, ...Client Identifier (Option 51) = PC MAC Address (m1)UDP ChecksumUDP LengthSource Port = 68 (bootpc)Destination Port = 67 (bootps)TTLHeader ChecksumIdentificationFlagsFragment OffsetVer = 4IHL = 5TOSTotal LengthProtocol=17(UDP)Source IP Address = DHCP Proxy Agent Uplink IP (100.1.1.254)Destination IP Address = DHCP Server IP (100.1.1.1)Source MAC Address = DHCP Proxy Agent Uplink MAC (m3)Destination MAC Address = DHCP Server MAC (m5)EtherType = 0x0800 (IP)Transaction ID (xid)SecondsBroadcast Flag (1b) = 1Client IP address (ciaddr) = 0.0.0.0Your IP Address (yiaddr) = 0.0.0.0Server IP address (siaddr) = 0.0.0.0Gateway IP Address (giaddr) = DHCP Proxy Agent Downlink IP (1.1.1.254)0B4B2BOP code=1(Req.)HW Type=EthernetHW Length = 6HOPSClient Hardware Address (16B) (chaddr) = PC MAC Address (m1)Server Name (64B) (sname)Filename (128B)EthernetIPUDPDHCP Message PayloadDHCP Message Type (
Option 53) =
3
(
DHCP Request)Parameter Request List (Option 55) = Option 1, 3, 6, ...Client Identifier (Option 51) = PC MAC Address (m1)Downlink MAC=m3Uplink IP=100.1.1.254DHCP Server IP=100.1.1.1DHCP Server MAC=m5PC MAC=m1EthernetIPUDPDHCP Message Payload
DHCP Proxy Agent의 동작 원리와 보안 기능
15
DHCP Ack Message
그림 15. IP 주소 임대기간 절차: DHCP Ack 메시지
Ethernet Header
? Destination MAC Address: DHCP Proxy Agent의 업링크 MAC 주소(m3)를 PC의 MAC 주소(m1)로 변경
? Source MAC Address: DHCP 서버의 MAC 주소(m5)를 DHCP Proxy Agent의 다운링크 MAC 주소(m2)로 변경
IP Header
? Source IP Address: DHCP 서버의 IP 주소(100.1.1.1)를 DHCP Proxy Agent의 다운링크 IP 주소(1.1.1.254)로 변경
? Destination IP Address: DHCP Proxy Agent의 다운링크 IP 주소(giaddr=1.1.1.254)를 PC의 IP 주소(1.1.1.10)로 변경
DHCP Message Payload
? DHCP Server Identifier(Option 54): DHCP 서버의 IP 주소(100.1.1.1)를 DHCP Proxy Agent의 업링크 IP 주소(100.1.1.254)로 변경
L2 NetworkDownlink IP=1.1.1.254Downlink MAC=m2DHCP Ack Message from DHCP Proxy Agent to PCDHCP Ack Message from DHCP Server to DHCP Proxy AgentPCDHCPUDP ChecksumUDP LengthSource Port = 67 (bootps)Destination Port = 68 (bootpc)TTLHeader ChecksumIdentificationFlagsFragment OffsetVer = 4IHL = 5TOSTotal LengthProtocol=17(UDP)Source IP Address = DHCP Server IP Address (100.1.1.1)Destination IP Address = DHCP Proxy Agent Downlink IP (1.1.1.254)Source MAC Address = DHCP Server MAC (m5)Destination MAC Address = DHCP Proxy Agent Uplink MAC (m3)EtherType = 0x0800 (IP)Transaction ID (xid)SecondsBroadcast Flag (1b) = 1Client IP address (ciaddr) = 0.0.0.0Your IP Address (yiaddr) = 1.1.1.10Server IP address (siaddr) = 0.0.0.0Gateway IP Address (giaddr) = DHCP Proxy Agent Downlink IP (1.1.1.254)0B4B2BOP code=2(Reply)HW Type=EthernetHW Length = 6HOPSClient Hardware Address (16B) (chaddr) = PC MAC Address (m1)Server Name (64B) (sname)Filename (128B)EthernetIPUDPDHCP Message PayloadSubnet Mask (
Option 1) =
255.255.255.0 (/24)Router IP (Option 3) = 1.1.1.254Domain Name Server IP (Option 6) = 10.1.1.1, 10.1.1.2IP Address Lease Time (Option 51) = 3,600 seconds (1 hour)DHCP Server Identifier (Option 54) = DHCP Server IP (100.1.1.1)DHCP Message Type (Option 53) = 5 (DHCP Ack)UDP ChecksumUDP LengthSource Port = 67 (bootps)Destination Port = 68 (bootpc)TTLHeader ChecksumIdentificationFlagsFragment OffsetVer = 4IHL = 5TOSTotal LengthProtocol=17(UDP)Source IP Address = DHCP Proxy Agent Downlink IP (1.1.1.254)Destination IP Address = PC IP Address (1.1.1.10)Source MAC Address = DHCP Proxy Agent MAC Address (m2)Destination MAC Address = PC MAC Address (m1)EtherType = 0x0800 (IP)Transaction ID (xid)SecondsBroadcast Flag (1b) = 1Client IP address (ciaddr) = 0.0.0.0Your IP Address (yiaddr) = 1.1.1.10Server IP address (siaddr) = 0.0.0.0Gateway IP Address (giaddr) = DHCP Proxy Agent Downlink IP (1.1.1.254)0B4B2BOP code=2(Reply)HW Type=EthernetHW Length = 6HOPSClient Hardware Address (16B) (chaddr) = PC MAC Address (m1)Server Name (64B) (sname)Filename (128B)Subnet Mask (Option 1) = 255.255.255.0 (/24)Router IP (Option 3) = 1.1.1.254Domain Name Server IP (Option 6) = 10.1.1.1, 10.1.1.2IP Address Lease Time (Option 51) = 3,600 seconds (1 hour)DHCP Server Identifier (Option 54) = DHCP Proxy Agent Uplink IP (100.1.1.254)DHCP Message Type (Option 53) = 5 (DHCP Ack)EthernetIPUDPDHCP Message PayloadDownlink MAC=m3Uplink IP=100.1.1.254DHCP Server IP=100.1.1.1DHCP Server MAC=m5PC MAC=m1Proxy
DHCP Proxy Agent의 동작 원리와 보안 기능
About NMC Consulting Group
NMC Consulting Group was founded on year 2002 and is advanced, professional network consulting company which is specialized for IP Network area like FTTH, Metro
Ethernet and IP/MPLS, Service area like IPTV and IMS lastly, Wireless network area like Mobile WIMAX and LTE.
Copyright ⓒ 2002-2011 NMC Consulting Group. All rights reserved.
16
부록 C ? IP 주소 반납 절차의 DHCP 메시지 포맷
부록 C에서는 IP 주소 반납 절차에서 DHCP Proxy Agent에 의해 변경되는 DHCP 메시지 파라미터의 상세 예를 보인다.
DHCP Release Message
그림 16. IP 주소 반납 절차: DHCP Release 메시지
Ethernet Header
? Destination MAC Address: DHCP Proxy Agent의 MAC 주소(m2)를 DHCP 서버의 MAC 주소(m5)로 변경
? Source MAC Address: PC의 MAC 주소(m1)를 DHCP Proxy Agent의 업링크 MAC 주소(m3)로 변경
IP Header
? Source IP Address: PC의 IP 주소(1.1.1.10)를 DHCP Proxy Agent의 업링크 IP 주소(100.1.1.254)로 변경
? Destination IP Address: DHCP Proxy Agent의 업링크 IP 주소(100.1.1.254)를 DHCP 서버의 IP 주소(100.1.1.1)로 변경
DHCP Message Payload
? Gateway IP Address(giaddr): IP 주소 0.0.0.0을 DHCP Proxy Agent의 다운링크 IP 주소(본 메시지를 수신한 인터페이스 IP 주소인 1.1.1.254)로 변경
? DHCP Server Identifier(Option 54): DHCP Proxy Agent의 업링크 IP 주소(100.1.1.254)를 DHCP 서버의 IP 주소(100.1.1.1)로 변경
L2 NetworkDownlink IP=1.1.1.254Downlink MAC=m2DHCP Release Message from PC to DHCP Proxy AgentDHCP Release Message from DHCP Proxy Agent to DHCP ServerPCDHCPProxyUDP ChecksumUDP LengthSource Port = 68 (bootpc)Destination Port = 67 (bootps)TTLHeader ChecksumIdentificationFlagsFragment OffsetVer = 4IHL = 5TOSTotal LengthProtocol=17(UDP)Source IP Address = PC IP Address (1.1.1.10)Destination IP Address = DHCP Proxy Agent Uplink IP (100.1.1.254)Source MAC Address = PC MAC Address (m1)Destination MAC Address = DHCP Proxy Agent Downlink MAC (m2)EtherType = 0x0800 (IP)Transaction ID (xid)SecondsBroadcast Flag (1b) = 1Client IP address (ciaddr) = 1.1.1.10Your IP Address (yiaddr) = 0.0.0.0Server IP address (siaddr) = 0.0.0.0Gateway IP Address (giaddr) = 0.0.0.00B4B2BOP code=1(Req.)HW Type=EthernetHW Length = 6HOPSClient Hardware Address (16B) (chaddr) = PC MAC Address (m1)Server Name (64B) (sname)Filename (128B)DHCP Message Type (Option 53) = 7 (DHCP Release)DHCP Server Identifier (Option 54) = DHCP Proxy Agent Uplink IP (100.1.1.254)Client Identifier (Option 51) = PC MAC Address (m1)UDP ChecksumUDP LengthSource Port = 68 (bootpc)Destination Port = 67 (bootps)TTLHeader ChecksumIdentificationFlagsFragment OffsetVer = 4IHL = 5TOSTotal LengthProtocol=17(UDP)Source IP Address = DHCP Proxy Agent Uplink IP (100.1.1.254)Destination IP Address = DHCP Server IP (100.1.1.1)Source MAC Address = DHCP Proxy Agent Uplink MAC (m3)Destination MAC Address = DHCP Server MAC (m5)EtherType = 0x0800 (IP)Transaction ID (xid)SecondsBroadcast Flag (1b) = 1Client IP address (ciaddr) = 0.0.0.0Your IP Address (yiaddr) = 0.0.0.0Server IP address (siaddr) = 0.0.0.0Gateway IP Address (giaddr) = DHCP Proxy Agent Downlink IP (1.1.1.254)0B4B2BOP code=1(Req.)HW Type=EthernetHW Length = 6HOPSClient Hardware Address (16B) (chaddr) = PC MAC Address (m1)Server Name (64B) (sname)Filename (128B)EthernetIPUDPDHCP Message PayloadDHCP Message Type (
Option 53) =
7
(
DHCP Release)DHCP Server Identifier (Option 54) = DHCP Server IP (100.1.1.1)Client Identifier (Option 51) = PC MAC Address (m1)Downlink MAC=m3Uplink IP=100.1.1.254DHCP Server IP=100.1.1.1DHCP Server MAC=m5PC MAC=m1EthernetIPUDPDHCP Message Payload
스위치에서 DHCP Snooping, ARP Snooping 기능과 연계해서 이해하면 좋은 것 같아요
유익한 정보 감사합니다!
좋은 정보 감사합니다.