問題的提出:
正如前面章節說描述的那樣,路由器上配置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的請求報文。
[reference]: https://blog.51cto.com/xingshobo1989/796029