一、設置路由器
要允許traceroute探測,需要在路由器上開啟ICMP(Internet Control Message Protocol)(一種TCP/IP協議)以及UDP(User Datagram Protocol)的埠。這兩種協議都是traceroute命令必須依賴的。在路由器上開啟埠後,就能夠成功進行traceroute。
// 以下是Cisco路由器上允許ICMP和UDP埠的代碼示例 Router(config)# access-list 101 permit icmp any any echo-reply Router(config)# access-list 101 permit udp any any eq 33434 Router(config)# access-list 101 permit udp any any eq 33435 Router(config)# access-list 101 permit udp any any eq 33436 Router(config)# access-list 101 permit udp any any eq 33437 Router(config)# interface any Router(config-if)# ip access-group 101 in
二、斷開路由設備的防火牆或者降低其防火牆級別
如果路由器的防火牆級別過高,則可能會阻止traceroute對數據包的響應。可以斷開路由器上的防火牆或者降低其防火牆級別,以保證能夠正常進行traceroute。以下是Windows防火牆的代碼示例。
// Windows防火牆設置 netsh advfirewall firewall add rule name="ICMP Allow incoming V4 echo request" protocol=icmpv4:8,any dir=in action=allow
三、關閉路由器上的「不可達ICMP」設置
「不可達ICMP」是指當嘗試訪問一個無法到達的地址時,路由器會發送的一種ICMP信息。關閉路由器上的「不可達ICMP」設置可以防止路由器發出一些ICMP錯誤消息,這些錯誤消息通常會影響traceroute的結果。
// 以下是Juniper路由器上關閉「不可達ICMP」設置的代碼示例 set security zones security-zone untrust interfaces ge-0/0/0.100 host-inbound-traffic system-services all set security zones security-zone untrust interfaces ge-0/0/0.100 host-inbound-traffic protocols ospf set security zones security-zone untrust interfaces ge-0/0/0.100 host-inbound-traffic protocols pim set security zones security-zone untrust interfaces ge-0/0/0.100 host-inbound-traffic protocols ldp set security zones security-zone untrust interfaces ge-0/0/0.100 host-inbound-traffic protocols igmp set security zones security-zone untrust interfaces ge-0/0/0.100 host-inbound-traffic protocols tcp
四、使用mtr代替traceroute
mtr是My traceroute的縮寫,是一種列印出整個網路故障節點序列的工具。與traceroute類似,mtr也使用ICMP和UDP數據包探尋數據包從源節點到目標節點的路徑。但與traceroute不同的是,mtr會持續顯示故障節點列表,這些節點與traceroute相比更為詳細,同時也更易於排錯。以下是使用mtr的代碼示例。
//使用yum命令下載mtr yum install mtr // mtr的使用方法示例 mtr www.baidu.com
五、總結
通過設置路由器、降低防火牆級別、關閉「不可達ICMP」設置以及使用mtr等方法,實現traceroute探測是比較簡單的。但需要注意的是,在網路環境較為複雜的情況下,可能需要進一步優化配置,才能達到理想的結果。
原創文章,作者:KLIMA,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/372113.html