Cisco IOS Cookbook 中文精簡版 5-23 IP路由

 5.1.  查找路由條目
提問 在路由表中查找特定的路由條目
回答
Router>show ip route 172.25.100.15
Routing entry for 172.25.100.0/24
  Known via "ospf 55", distance 110, metric 11, type inter area
  Redistributing via ospf 55
  Last update from 172.25.1.1 on Ethernet0, 2d12h ago
  Routing Descriptor Blocks:
  * 172.25.1.1, from 172.25.1.1, 2d12h ago, via Ethernet0
      Route metric is 11, traffic share count is 1
註釋 路由器在路由表中查找路由條目的原則是最長匹配,所以例子中雖然查找的是172.25.200.15但是由於沒有這條特定的路由,顯示的結果是最長匹配的172.15.100.0/24。如果沒有任何一條匹配只能使用缺省路由,會出現下面信息
Router> show ip route 172.15.101.5
% Network not in table
注意的是這裏都是無類路由,如果有類的就不一樣了
5.2.  查找特定類型的路由條目
提問 在路由表中查找相同類型的路由條目
回答
Router>show ip route static
     192.168.1.0/32 is subnetted, 1 subnets
S       192.168.1.1 [1/0] via 172.25.1.4
還有一個更有用的命令
Router>show ip route summary
IP routing table name is Default-IP-Routing-Table(0)
Route Source    Networks    Subnets     Overhead    Memory (bytes)
connected       0           3           328         432
static          1           0           64          144
ospf 55         1           3           256         576
  Intra-area: 1 Inter-area: 2 External-1: 1 External-2: 0
  NSSA External-1: 0 NSSA External-2: 0
internal        2                                   2328
Total           4           6           648         3480

註釋 通過顯示路由表的統計情況來了解當前路由器的路由條目,也可以用來以後的比對
5.3.  各種掩碼的轉換
註釋 腳本略去,建議使用Boson提供的免費轉換工具
5.4.  使用靜態路由
提問 配置靜態路由
回答
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#ip route 10.35.15.5 255.255.255.255 Ethernet0 (permanent選項可以使此條目一直存在於路由表中,而不管下一跳的可達性)
Router(config)#ip route 172.16.0.0 255.255.0.0 10.35.6.1 2  permanent
Router(config)#end
Router#
也可以給路由條目打上標籤
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#ip route 172.16.0.0 255.255.0.0 10.35.6.1 2 tag 36291
Router(config)#end
Router#

註釋 在類似以太網這種多路訪問的網絡中建議使用下一跳爲地址而不是接口。正常情況下路由器對靜態路由的下一跳有效性的檢查是一分鐘,在12.3(10)以後增加了下面的命令可以對此時間進行調整Router(config)#ip route static adjust-time 30對靜態路由打tag用於路由再發布時的區分
5.5.  浮動靜態路由
提問 當動態路由出問題的時候使用靜態路由作爲備份
回答
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#ip route 10.0.0.0 255.0.0.0 172.16.1.1 190  (下一跳也可以觸發一個撥號接口)
Router(config)#end
Router#

註釋 通過調整管理距離的方式來進行路由備份,不過要注意的是管理距離只適合在相同路由的情況下,路由條目的最長匹配是第一位的。另外在不同廠商設備互聯的時候,調整管理距離一定要設置合理。
5.6.  基於源地址的策略路由
提問 根據源地址的不同選擇不同的路徑
回答
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#access-list 1 permit 10.15.35.0 0.0.0.255
Router(config)#access-list 2 permit 10.15.36.0 0.0.0.255
Router(config)#interface Ethernet0
Router(config-if)#ip address 10.15.22.7 255.255.255.0
Router(config-if)#ip policy route-map Engineers
Router(config-if)#ip route-cache policy
Router(config-if)#exit
Router(config)#route-map Engineers permit 10
Router(config-route-map)#match ip address 1
Router(config-route-map)#set ip next-hop 10.15.27.1
Router(config-route-map)#exit
Router(config)#route-map Engineers permit 20
Router(config-route-map)#match ip address 2
Router(config-route-map)#set interface Ethernet1
Router(config-route-map)#end
Router#
註釋 缺省情況下route map的最後一句都是deny all,這樣不符合route map規則的數據包都會按照正常的路由表進行轉發。set ip next-hop verify-availability命令提供了對下一跳的驗證,不過是基於CDP的,所以如果使用此命令需要打開CDP,最好同時調整時長,畢竟缺省是180秒。在使用策略路由時會在排錯時增加難度,因爲缺省對於本路由器發出的數據包可以繞過route map這樣會造成錯覺。
5.7.  基於應用的策略路由
提問 根據不同的應用來選擇不同的路徑
回答
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#access-list 101 deny tcp 10.15.25.0 0.0.0.255 any eq www
Router(config)#access-list 101 permit tcp any any eq www
Router(config)#interface Ethernet0
Router(config-if)#ip address 10.15.22.7 255.255.255.0
Router(config-if)#ip policy route-map Websurfers
Router(config-if)#ip route-cache policy
Router(config-if)#exit
Router(config)#route-map Websurfers permit 10
Router(config-route-map)#match ip address 101
Router(config-route-map)#set ip next-hop 10.15.27.1
Router(config-route-map)#exit
Router(config)#route-map Websurfers permit 20
Router(config-route-map)#set ip default next-hop 10.15.26.1
Router(config-route-map)#end
Router#
對於本設備的發出的數據包也使用策略路由
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#ip local policy route-map dlswtraffic
Router(config)#access-list 103 permit tcp any any eq 2065
Router(config)#access-list 103 permit tcp any eq 2065 any
Router(config)#route-map dlswtraffic permit 10
Router(config-route-map)#match ip address 103
Router(config-route-map)#set ip next-hop 10.15.27.3
Router(config-route-map)#end
Router#

註釋 正常情況下如果所有定義的下一跳都不存在的情況下會使用路由表來查詢,如果路由表沒有此定義會使用缺省路由,這時候你可以使用set ip default next-hop來定義一個不同的缺省路由
5.8.  策略路由檢查
提問 檢查所應用的策略路由
回答
Router>show ip policy
Interface      Route map
local          dlswtraffic
Ethernet0      Websurfers
Serial0        High-priority
Router>show route-map
route-map High-priority, permit, sequence 10
  Match clauses:
    ip address (access-lists): 101
  Set clauses:
    ip next-hop 10.15.27.1
  Policy routing matches: 0 packets, 0 bytes
route-map Websurfers, permit, sequence 10
  Match clauses:
    ip address (access-lists): 102
  Set clauses:
    ip next-hop 10.15.27.1
  Policy routing matches: 0 packets, 0 bytes
route-map Websurfers, permit, sequence 20
  Match clauses:
  Set clauses:
    ip default next-hop 10.15.26.1
  Policy routing matches: 4 packets, 531 bytes
route-map dlswtraffic, permit, sequence 10
  Match clauses:
    ip address (access-lists): 103
  Set clauses:
    ip next-hop 10.15.27.3
  Policy routing matches: 5 packets, 500 bytes

註釋 也可以通過show access-list 103命令看到更多的匹配信息

5.9.  改變管理距離
提問 調整學到的外部網絡的缺省管理距離
回答
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#router rip
Router(config-route)#network 192.168.15.0
Router(config-route)#distance 15 192.168.15.1 0.0.0.0
Router(config-route)#distance 200 192.168.15.0 0.0.0.255
Router(config-route)#distance 255
Router(config-route)#end
Router#
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#router eigrp 111
Router(config-route)#network 192.168.16.0
Router(config-route)#distance eigrp 55 200
Router(config-route)#end
Router#
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#router ospf 66
Router(config-route)#distance ospf inter-area 115
Router(config-route)#distance ospf intra-area 105
Router(config-route)#distance ospf external 125
Router(config-route)#end
Router#
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#router bgp 65520
Router(config-route)#distance bgp 115 220 50
Router(config-route)#end
Router#

註釋 管理距離只是針對自己的,通過調整這些外部路由的管理距離來調整自己路由表的結構
5.10.  相同代價值的多路徑路由
提問 限制路由器到達同一目的地的路徑數目
回答
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#router ospf 65510
Router(config-router)#maximum-paths 2
Router(config-router)#end
Router#
IOS 12.2T以後對BGP增加了下面的命令
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#router bgp 65511
Router(config-router)#maximum-paths 2
Router(config-router)#maximum-paths ibgp 3
Router(config-router)#end
Router#

註釋 缺省情況下靜態路由可以有6條冗餘,BGP只有一條最佳路徑,其他路由協議爲4條。使用上述命令在12.3(2)T之前可以調整最大爲6條,12.3(2)T之後可以最大爲16條
5.11.  配置靜態路由的追蹤
提問 在某個端口當掉等情況下才啓用特定的靜態路由
回答
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#track 10 interface Serial0/0 line-protocol
Router(config-track)#delay down 5 up 30
Router(config-track)#exit
Router(config)#ip route 192.168.10.0 255.255.255.0 10.3.12.26 track 10
Router(config)#end
Router#
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#track 11 ip route 10.2.95.0 255.255.255.0 reachability
Router(config-track)#delay down 5 up 5
Router(config-track)#exit
Router(config)#ip route 0.0.0.0 0.0.0.0 10.3.12.26 track 11
Router(config)#end
Router#
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#track 12 list boolean and
Router(config-track)#object 10 not
Router(config-track)#object 11
Router(config-track)#exit
Router(config)#ip route 192.168.13.0 255.255.255.0 10.3.12.26 track 12
Router(config)#end
Router#

註釋 從12.3T和12.4以後開始IOS提供了一種track的特性,可以定義跟蹤不同的狀態。可以使用show track命令來查看跟蹤的狀態。跟蹤狀態也可以進行組合,使用and or邏輯運算或者百分比,權重等增加靈活度,很好玩,不過別把自己繞進去了
5.12.       路由表變動統計
提問 通過路由表變動的統計來衡量路由表的穩定性
回答
Router#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router(config)#ip route profile
Router(config)#end
Router#
Router#show ip route profile
IP routing table change statistics:
Frequency of changes in a 5 second sampling interval
-------------------------------------------------------------
Change/   Fwd-path  Prefix   Nexthop  Pathcount  Prefix
interval  change    add      change   change     refresh
-------------------------------------------------------------
0         327       327      335      335        331
1         4         4        0        0          1
2         2         2        0        0          1
3         0         0        0        0          0
4         1         1        0        0          1
…….
Router#

註釋 12.0就有的一個老命令,但估計很少有人使用,這個統計也是夠難懂的,簡單的說最理想的情況就是第一行數目很大,其他行都是0。統計方法是每3秒一個間隔,在這個間隔內如果有1次路由表變化就累計一次,多次變化就累計多次。但這個命令還是有一些缺點,一就是不能清掉老的數據,必須通過no ip route profile,然後ip route profile 來清除,還有就是這裏只是統計結果,沒有辦法確定是哪條路由出的問題
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章