Do you like this site? Remember to share it to all your friends on Facebook and Twitter!

Monday, July 27, 2009

IP Helper Address: what about "Source Address" of the diverted broadcast packets?

I crafted an sample "IP Helper Address" lab, and I found the "Source Address" of the diverted broadcast packets should be the unicast address of the interface which enabled "IP Helper Address".

The demonstration output capture is this:
  1. When no "Helper" is enabled, all DHCP broadcasts (DISCOVERY) are just ignored.
  2. Enabling "Helper". Note about the IP address (2.1.1.10) of this LAN interface and the configured diversion destination address (1.1.1.1)
  3. From this time on, the debug output shows the DHCP broadcast's source address is changed from "0.0.0.0" to "2.1.1.10", and destination address is changed from "255.255.255.255" to "1.1.1.1". The packet is forwarded to DHCP server (R1).
  4. Then, DHCP server's response (OFFER) packet is sourced from "1.1.1.1" to destination "2.1.1.10", as expected.
  5. The "Helper" relays it to the client and changes the source address of the packet from "1.1.1.1" to its own address: "2.1.1.10", also the destination is changed from "2.1.1.10" to "255.255.255.255", as if the response were generated from itself.

R0#show ip int brief
Interface                  IP-Address      OK? Method Status                Protocol
FastEthernet0/0            unassigned      YES unset  up                    up      
FastEthernet0/0.200        2.1.1.10        YES manual up                    up      
FastEthernet0/1            unassigned      YES unset  administratively down down    
Serial1/0                  1.1.1.10        YES manual up                    up      
Serial1/1                  unassigned      YES manual administratively down down    
Serial1/2                  unassigned      YES unset  administratively down down    
Serial1/3                  unassigned      YES unset  administratively down down    
R0#
*Mar  1 00:42:43.599: IP: s=0.0.0.0 (FastEthernet0/0.200), d=255.255.255.255, len 604, rcvd 2
*Mar  1 00:42:47.111: IP: s=0.0.0.0 (FastEthernet0/0.200), d=255.255.255.255, len 604, rcvd 2
*Mar  1 00:42:51.159: IP: s=0.0.0.0 (FastEthernet0/0.200), d=255.255.255.255, len 604, rcvd 2
R0#conf t
Enter configuration commands, one per line.  End with CNTL/Z.
R0(config)#int f0/0.200
R0(config-subif)#ip helper-address 1.1.1.1
R0(config-subif)#end
R0#
*Mar  1 00:43:07.607: %SYS-5-CONFIG_I: Configured from console by console
*Mar  1 00:43:09.239: IP: s=0.0.0.0 (FastEthernet0/0.200), d=255.255.255.255, len 604, rcvd 2
*Mar  1 00:43:09.255: IP: tableid=0, s=2.1.1.10 (local), d=1.1.1.1 (Serial1/0), routed via FIB
*Mar  1 00:43:09.259: IP: s=2.1.1.10 (local), d=1.1.1.1 (Serial1/0), len 604, sending
*Mar  1 00:43:09.439: IP: tableid=0, s=1.1.1.1 (Serial1/0), d=2.1.1.10 (FastEthernet0/0.200), routed via RIB
*Mar  1 00:43:09.443: IP: s=1.1.1.1 (Serial1/0), d=2.1.1.10, len 328, rcvd 4
*Mar  1 00:43:09.459: IP: s=2.1.1.10 (local), d=255.255.255.255 (FastEthernet0/0.200), len 328, sending broad/multicast
*Mar  1 00:43:09.567: IP: s=0.0.0.0 (FastEthernet0/0.200), d=255.255.255.255, len 604, rcvd 2
*Mar  1 00:43:09.583: IP: tableid=0, s=2.1.1.10 (local), d=1.1.1.1 (Serial1/0), routed via FIB
*Mar  1 00:43:09.587: IP: s=2.1.1.10 (local), d=1.1.1.1 (Serial1/0), len 604, sending
*Mar  1 00:43:09.619: IP: tableid=0, s=1.1.1.1 (Serial1/0), d=2.1.1.10 (FastEthernet0/0.200), routed via RIB
*Mar  1 00:43:09.623: IP: s=1.1.1.1 (Serial1/0), d=2.1.1.10, len 328, rcvd 4
*Mar  1 00:43:09.635: IP: s=2.1.1.10 (local), d=255.255.255.255 (FastEthernet0/0.200), len 328, sending broad/multicast
R0#
R0#

I now have a conclusion: the "ip helper address" must have been WRONGLY described in this book: Wendell Odom, Rus Healy, Naren Mehta."CCIE Routing and Switching Exam Certification Guide, 3rd Edition", Page 128 and also Page 134!
Do you like this post? You really should consider Subscribing by Email!


Related Posts with Thumbnails

No comments:

Post a Comment

Tip: you can also anonymously comment here.

Popular Posts