1.网络中的终端通过发送DHCP广播的方式来获取IP地址信息。由于VLAN隔离广播,当终端与DHCP服务器不在同一广播域时,就需要用到DHCP中继。

2.DHCP服务的原理概述:  

  DHCP服务器想要给终端设备分配IP信息,需要获取两个重要的信息,终端所在的网段(即掩码)、对应设备的MAC地址。

  DHCP依靠前者来判断应当给对应设备分配那个地址池中的地址,然后依靠后者来维护IP和MAC之间的映射好以此来保证不会出现IP地址冲突。

3.配置了ip helper-address命令的路由器工作过程:  

  1)DHCP客户端发送请求,由于没有ip地址,所以自己的源IP地址为0.0.0.0,而且也不知道目的DHCP服务器的地址,所以为广播255.255.255.255,即源IP为0.0.0.0;

  目的IP地址为255.255.255.255;源MAC地址为自己MAC地址;目的MAC地址为FF:FF:FF:FF:FF:FF;

  2)当路由器接收到该信息,则对其进行替换,用自己的接口地址(接收到数据报的接口,也就是终端所在网段网关)来取代源地址0.0.0.0,并且用ip help-address 命令中指定的地址来取代目的地址255.255.255.255,

  即源IP为(网关地址);目的IP地址为(ip helper-address指定地址);源MAC地址为终端MAC地址;目的MAC地址为(ip helper-address指定地址对应MAC地址);

  3)如此,当DHCP服务器接收到路由器转发来的信息后,同样可以获得相应的信息来确定网段和MAC地址与IP地址的映射,故而可以让终端获得相应的信息。

4.ip helper-address功能不仅仅可以用于DHCP转发,其实通过全局命令 ip forward-protocol它可以转发任意UDP广播!当开启了这个命令,默认开启了8个缺省UDP转发端口。

  它们分别是是:TFTP(69)、DNS(53)、时间(37)、NETBIOS服务 (137)、N ETBIOS数据报服务(138)、BOOTP服务器(67)、BOOTP客户机(68)和终端访问控制器访问控制系统TACACS(49)。

  最后,如果你只用来转发DHCP,那默认开启不必要的端口很可能造成路由器过载,所以,请先使用全局命令来关掉所有的UDP转发,然后再单独开启DHCP转发  

  Router(config)#no ip forward-protocol udp 
  Router(config)#ip forward-protocol udp  bootps 
  Router(config)#ip forward-protocol udp  bootpc

5.如果路由器上配置了多个ip helper-address 那么路由器会将终端的DHCP广播同时转发到指定的多个DHCP服务器。

  此时若两台DHCP服务器配置的是主主模式, 两个DHCP服务器都可以(并且应该)向客户端提供DCHP Offers。那么第一个响应的DHCP服务器会获胜。

 

posted on 2020-11-20 16:27  星痕1216  阅读(743)  评论(0编辑  收藏  举报