CISCO路由器DHCP技术( 二 )


3 配置了ip helper-address命令之后的路由器在中继DHCP请求时的工作过程如下
a,DHCP客户端发送请求,由于没有ip地址,所以自己的源IP地址为0.0.0.0,而且也不知道目的DHCP服务器的地址,所以为广播255.255.255.255 。该数据报中当然还包含其他信息,比如二层的信息,源mac地址,和目的mac地址FFFFFFFFFFFF 。
b,当路由器接收到该数据报的时候,他就用自己的接口地址(接收到数据报的接口)来取代源地址0.0.0.0,并且用ip help-address 命令中指定的地址(上例中为172.25.1.1以及172.25.10.7)来取代目的地址255.255.255.255
The router must replace the source address with its own IP address, for the interface that received the request. And it replaces the destination address with the address specified in the ip helper-address command. The client device"s MAC address is included in the payload of the original DHCP request packet, so the router doesn"t need to do anything to ensure that the server receives this information.
c 当DHCP服务器接收到路有器转发过来的DHCP请求包时,他有了足够的信息,(由源IP地址中的地址,确定客户机所在的子网掩马,由此分配相应地址池中的空闲地址,并且知道了客户记得MAC地址,把它写入自己的数据库,建立IP地址和MAC的映射关系)然后DHCP服务器做出响应,并且由路有器把数据报转发会客户端 。(整个过程应该在客户机和服务器之间还有一次会话,由于这不是路由器DHCP配置的讨论重点,这里不谈)
4 例子中配置了两个DHCP服务器,我们必须分别用ip helper-address 命令指明,路有器会转发DHCP请求包到所有的DHCP服务器上 。很多企业的做法都是至少有两台DHCP服务器,有提高冗余和可靠性的作用 。此时,假如客户端受到几个来自不同DHCP服务器的应答,则只选择最先接收到的应答数据报 。
5 必须要注重的是;ip helper-address 命令不仅仅是只转发DHCP请求包,事实上,在默认情况下,他还转发其他的UDP报(比如DNS请求)到ip helper-address命令所指定的服务器上,所以这种额外的数据流量可能会增加DHCP服务器链路的负担以及服务器CPU负担,可能会引起问题,关于解决办法,将在后面讨论 。
最后 用show ip interface 显示相关的ip help-address配置信息:
Router1#show ip interface Ethernet0
Ethernet0 is up, line protocol is up
Internet address is 192.168.30.1/24
Broadcast address is 255.255.255.255
Address determined by setup command
MTU is 1500 bytes
Helper addresses are 172.25.1.3
172.25.1.1
Directed broadcast forwarding is disabled
Router1#

在配置了dhcp中继的路由器上,禁止无意义udp广播报的转发
问题的提出:
正如前面章节说描述的那样,路由器上配置IP helper addresses命令后,默认情况下路由器不仅转发dhcp请求,同时也转发其他的udp报,这样很可能会增加DHCP 服务器所在链路的负担,同时也增加了DHCP 服务器的CPU利用率,这可能会引起很严重的网络通信问题 。
所以cisco 的ios 提供了限制ip helpe-address 命令所带来的负面影响的方法 。
解决实例;
CISCO路由器答应用no ip forward-protocol udp 命令来禁止对所无意义的UDP`数据报的转发
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#no ip forward-protocol udp tFTP
//禁止转发tftp请求数据报文
Router1(config)#no ip forward-protocol udp nameserver
//禁止转发nameserver请求数据报文
Router1(config)#no ip forward-protocol udp domain
//禁止转发domain请求数据报文
Router1(config)#no ip forward-protocol udp time
//禁止转发time请求数据报文
Router1(config)#no ip forward-protocol udp netbios-ns
//禁止转发netbios-ns请求数据报文

推荐阅读