在配置了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请求数据报文
Router1(config)#no ip forward-protocol udp netbios-dgm
//禁止转发netbios-dgm请求数据报文
Router1(config)#no ip forward-protocol udp tacacs
//禁止转发tacacs请求数据报文
Router1(config)#end
Router1#


关于配置的相关讨论;
1 配置了DHCP中继的路由器,默认情况下也转发下列udp 广播报文.

2 尤其是在windows的网络环境中,在没有配置no ip forward-protocol udp 的情况下,DHCP 服务器会接受到来自各个不同网段的大量的NetBIOS 请求报文,这通常是引起网络拥挤,阻塞的一个很大的原因,所以作为一个基本的配置准则,我们推荐你使用no ip forward-protocol udp netbios-ns 和 no ip forward-protocol udp netbios-dgm 这两条配置命令来限制路由器向DHCP服务器转发NetBIOS请求报文。

3 上面的实例中禁止了所有不必要的协议的转发,在实际的应用中,很多大公司通常只禁止NetBIOS 请求报文的转发,这主要是因为NetBIOS 报文是引起网络问题的关键原因所在。

4 必须认识到,配置了udp中继(ip hlpe-address x.x.x.x.)的路由器并没有实现针对不同协议,转发到不同的(或者说指定的服务器上)的功能。她会傻傻的,一古脑儿的把所有的协议(上表中所列的协议),义无反顾的发往所有的服务器。
例如,有server1 为dhcp 服务器(1.1.1.1 ) server2 为dns服务器(2.2.2.2)

在路由器上 配置如下后
Router1#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
Router1(config)#interface Ethernet0
Router1(config-if)#ip helper-address 1.1.1.1
Router1(config-if)#ip helper-address 2.2.2.2
Router1(config-if)#end
Router1#


实际效果是,不管是server1还是server2都将接收到包括dhcp请求,dns请求,以及其他udp的请求报文。