配置思科路由器以允許ping並禁止來自非指定用戶的trace

說明:

使用本文介紹的方法,可在思科路由器上,放通用戶的ping包,而不允許trace(不管是icmpudp還是tcp類型的),並且放通特定用戶的trace

 

知識準備:

1、首先需要知道普通的trace是如何工作的。這部分內容就不再介紹了,有興趣可以看附件。附件中的內容是從思科官網上截取的。

2、根據個人經驗總結:

ping功能一般是通過ICMPecho request包來實現的。

Windows平臺的tracert也是ICMPecho request包,它與普通ping包的不同點只在於它的TTL值。

思科和華爲的網絡設備、Linux系統的trace功能一般是通過UDP包來實現的,它與普通UDP包的不同點只在於它的TTL值。

藉助於一些工具,如tcpingping功能可以通過TCP包來實現;而藉助tracetcp之類的工具,trace功能也可以通過TCP包來實現。

不管源設備發送的是ICMP包,還是UDP包或TCP包,目標設備或trace路徑上的設備返回的都是ICMP包。

 

 

案例:

我通過下面的案例來介紹如何在思科路由器上放通ping並只允許特定用戶trace

-----------------------------------------------------------------------------------------

案例拓撲:

wKiom1S8xhfRfpmPAACuyb4rSjs126.jpg

 

目標:

R2上進行配置,以實現:放通來自R1的所有網段的ping,放通10.0.0.0/24網段的trace,禁止其它網段的trace(不管是icmpudp還是tcp類型的)。

 

原理:

利用trace報文到達R2ttl值變爲1的特性,過濾掉相應的ttl值爲1的數據包,此時設備將返回Destination unreachableICMP包,然後再將相應接口發送ICMP unreachable包的功能關閉即可。

 

配置命令:

R2(config)#ip access-list extended abc                          //定義一個擴展acl,命名爲abc

R2(config-ext-nacl)#permit ip 10.0.0.0 0.0.0.255 any               //放通10.0.0.0/24網段

R2(config-ext-nacl)#deny ip any any ttl eq 1                      //過濾掉其它網段ttl值爲1的數據包

R2(config-ext-nacl)#permit ip any any                           //放通其它數據包

!

R2(config)#interface g1/0

R2(config-if)#ip access-group abc in                             //acl應用在接口的入方向

R2(config-if)#no ip unreachables                               //此功能將關閉接口發送ICMP unreachable包的功能

 

效果:

R1上直接ping 10.0.1.1(默認R1將使用接口IP作爲源地址)正常。如下:

wKioL1S8yBzhsM1ZAACPF9vsPek235.jpg

R1上直接traceroute 10.0.1.1時(默認R1將使用接口IP作爲源地址),將不顯示R2那一跳。如下:

wKioL1S8x9zjqgzmAAB1v74wUcU708.jpg

若在使用10.0.0.1作爲源地址traceroute 10.0.1.1時,將顯示完整的trace路徑。如下:

wKiom1S8xzfzrsE5AAERT3qi92I600.jpg

 

注意事項:

此方法與一些動態路由協議不兼容,如OSPFEIGRP等,因OSPF等動態路由協議的hello包的ttl值也爲1,因此它也會被過濾掉,導致網絡出問題。經驗證,可以在acl中添加放通ospf來避免這一問題,因時間關係,暫未驗證其它協議是否也可行。並且爲了避免案例複雜化,就未將這一操作加入上面的案例中。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章