Cisco IOS Cookbook 中文精簡版 8-23 OSPF

 8.1.  配置OSPF
提問 NT-FAMILY: 宋體">在網絡中啓用OSPF
回答
Router5#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router5(config)#router ospf 87
Router5(config-router)#network 0.0.0.0 255.255.255.255 area 0
Router5(config-router)#exit
Router5(config)#end
Router5#
註釋 這裏OSPF的進程號是本地使用,不需要像EIGRP一樣整個網絡保持一致。在12.3(11)T以後有一個專門的命令來指定端口加入OSPF 區域,而不需要用network的命令
Router9#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router9(config)#router ospf 87
Router9(config-router)#exit
Router9(config)#interface FastEthernet0/0
Router9(config-if)#ip address 172.18.5.9 255.255.255.0
Router9(config-if)#ip ospf 87 area 10
Router9(config-if)#exit
Router9(config)#end
Router9#
8.2.  路由過濾
提問 進行路由過濾,只允許OSPF宣告特定路由進入路由表
回答
入方向
Router5#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router5(config)#access-list 1 deny 172.20.10.0
Router5(config)#access-list 1 permit any
Router5(config)#router ospf 87
Router5(config-router)#distribute-list 1 in Ethernet0/0
Router5(config-router)#exit
Router5(config)#end
Router5#
註釋 根據OSPF的機制,所有區域內的路由器LSA數據庫內容必須保持一致,所以正常情況下不能對出方向進行過濾,入方向過濾也是防止其進入路由表,在本地的LSA數據庫還是有此路由。當然如果確實需要對出方向進行過濾就必須對出方向所有的LSA進行過濾,這樣會導致下游路由器的LSA數據庫不完整,一般不推薦使用。
點對多點鏈路出方向過濾
Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#router ospf 87
Router1(config-router)#neighbor 192.168.1.3 database-filter all out
Router1(config-router)#exit
Router1(config)#end
Router1#
廣播,點到點鏈路出方向過濾
Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#interface Serial0/0
Router1(config-if)#encapsulation frame-relay
Router1(config-if)#exit
Router1(config)#interface Serial0/0.10 multipoint
Router1(config-subif)#ip address 192.168.1.1 255.255.255.0
Router1(config-subif)#ip ospf network broadcast
Router1(config-subif)#ip ospf database-filter all out
Router1(config-subif)#frame-relay map ip 192.168.1.3 101 broadcast
Router1(config-subif)#frame-relay map ip 192.168.1.5 109 broadcast
Router1(config-subif)#exit
Router1(config)#router ospf 1
Router1(config-router)#network 0.0.0.0 255.255.255.255 area 10
Router1(config-router)#exit
Router1(config)#end
Router1#
8.3.  調整OSPF代價值
提問 調整OSPF鏈路的代價值
回答
全局調整
Router5#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router5(config)#router ospf 87
Router5(config-router)#auto-cost reference-bandwidth 1000
Router5(config-router)#exit
Router5(config)#end
Router5#
接口調整
Router5#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router5(config)#interface Ethernet0
Router5(config-if)#ip ospf cost 31
Router5(config-if)# exit
Router5(config)#end
Router5#
註釋
8.4.  宣告缺省路由到OSPF
提問 宣告缺省路由到OSPF網絡
回答
Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#ip route 0.0.0.0 0.0.0.0 172.25.1.1
Router1(config)#router ospf 55
Router1(config-router)#default-information originate metric 30 metric-type 1
Router1(config-router)#exit
Router1(config)#end
Router1#
註釋 在這裏不能使用再發布靜態路由得命令來發布缺省路由
8.5.  再發布靜態路由到OSPF
提問 宣告一條或者多條靜態路由到OSPF
回答
Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#ip route 192.168.10.0 255.255.255.0 172.22.1.4
Router1(config)#ip route 172.24.1.0 255.255.255.0 172.22.1.4
Router1(config)#ip route 10.100.1.0 255.255.255.0 172.22.1.4
Router1(config)#router ospf 55
Router1(config-router)#redistribute static     
% Only classful networks will be redistributed
Router1(config-router)#exit
Router1(config)#end
Router1#
註釋 根據上面得命令提示可以看到缺省情況下OSPF只再發佈有類得路由,所以按照例子上雖然三條靜態路由但是隻有192.168.10.0/24是有類路由,能夠發佈出去,其它兩個就不行。這時候就需要配置redistribute static subnets命令來發布子網,當然也可以添加metric等選項

8.6.  再發布外部路由到OSPF
提問 再發布其它路由協議得路由信息到OSPF
回答
Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#router ospf 55
Router1(config-router)#redistribute eigrp 11 subnets   
Router1(config-router)#exit
Router1(config)#end
Router1#
在12.3(2)T以後增加了下面得命令對再發布過來得條目做了限制
Router1(config-router)#redistribute maximum-prefix 1000 80

註釋 這裏還是要注意subnet得參數。對於最後一個條目限制得命令,第一個1000是路由條目數,第二個80是百分比
8.7.  DR選舉
提問 對DR選舉做人爲控制
回答
Router5#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router5(config)#interface Ethernet0
Router5(config-if)#ip ospf priority 10                  
Router5(config-if)#exit
Router5(config)#end
Router5#
註釋 DR選舉人工控制最重要得兩種情況是MOSPF和NBMA網絡。在MOSPF網絡中,MOSPF得DR和正常OSPF得DR是相同得,而如果DR不是一個MOSPF得路由器那麼所有組播得路由就不能轉發,思科路由器是不支持MOPSF得,所以在這種情況下必須使用ip ospf priority 0得命令來禁止其稱爲BDR或者DR。在NBMA得網絡中要不DR設置在Hub路由器上。還有一個重要得問題是DR是不能強佔得,如果網絡中已經有了DR,這時即使新加入得路由器有更高得優先級他也不能稱爲DR,必須等待現在得DR出了問題纔可以重新選舉爲DR。
8.8.  設置OSPF RID
提問 人工設定路由器得Router ID
回答
一種是Loopback地址方式
Router5#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router5(config)#interface Loopback0
Router5(config-if)#ip address 172.25.25.6 255.255.255.255
Router5(config-if)#exit
Router5(config)#end
Router5#
一種是Router ID命令方式
Router5#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router5(config)#router ospf 87
Router5(config-router)#router-id 172.25.1.7
Router5(config-if)#exit
Router5(config)#end
Router5#
註釋 缺省會用最大IP地址作爲Router ID。Router id命令後面得IP地址可以隨意,不需要必須是存在得地址。另外router id一旦定下來以後,即使重新修改了地址也不能變更,必須通過clear
ip ospf process得方式或者reload得方式來改變
8.9.  啓用OSPF鑑權
提問 對鄰居關係建立啓用鑑權從而保證網絡設備得安全性
回答
Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#interface Serial0/1
Router1(config-if)#ip ospf message-digest-key 1 md5 oreilly
Router1(config-if)#exit
Router1(config)#router ospf 55
Router1(config-router)#area 2 authentication message-digest
Router1(config-router)#exit
Router1(config)#end
Router1#
註釋 注意得是不同廠商得OPSF MD5加密認證互聯可能會有問題,因爲RFC沒有規範。對於新老密碼替換得問題,通過配置新舊兩個密碼得方式來解決
8.10.  選擇合適得區域類型
提問 不同得區域有不同得鏈路狀態數據庫,通過不同區域得選擇來節省路由器資源和更快收斂
回答
Stubby Area
Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#router ospf 55
Router1(config-router)#area 100 stub
Router1(config-router)#exit
Router1(config)#end
Router1#
Totally Stubby Area
Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#router ospf 55
Router1(config-router)#area 100 stub no-summary
Router1(config-router)#exit
Router1(config)#end
Router1#
Not So Stubby Areas (NSSA), 同時生成一條缺省路由
Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#router ospf 55
Router1(config-router)#area 100 nssa default-information-originate
Router1(config-router)#exit
Router1(config)#end
Router1#
Totally Stubby, Not So Stubby Area.
Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#router ospf 55
Router1(config-router)#area 100 nssa no-summary
Router1(config-router)#exit
Router1(config)#end
Router1#

註釋 這些都是在ABR上的配置,對於區域裏面其它的路由器就是隻有NSSA和stub的配置沒有必要配置是否爲totally stubby。
8.11.  在撥號接口上配置OSPF
提問 在撥號接口上啓用OSPF,但又不想讓OSPF的協議數據一直保持撥號鏈路處於激活狀態
回答
下面例子是R4只能撥號到R1
Router4#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router4(config)#username Router1 password 0 cisco
Router4(config)#interface BRI0
Router4(config-if)#ip address 192.168.15.4 255.255.255.0
Router4(config-if)#encapsulation ppp
Router4(config-if)#ip ospf demand-circuit
Router4(config-if)#dialer map ip 192.168.15.1 broadcast 4165550000
Router4(config-if)#dialer-group 1
Router4(config-if)#isdn switch-type basic-ni
Router4(config-if)#isdn spid1 416555001000 4165550010
Router4(config-if)#isdn spid2 416555001100 4165550011
Router4(config-if)#ppp authentication chap
Router4(config-if)#ppp multilink
Router4(config-if)#exit
Router4(config)#dialer-list 1 protocol ip permit
Router4(config)#router ospf 87
Router4(config-router)#network 192.168.15.0 0.0.0.255 area 10
Router4(config-router)#exit
Router4(config)#end
Router4#
Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#username Router4 password 0 cisco
Router1(config)#interface BRI0/0
Router1(config-if)#ip address 192.168.15.1 255.255.255.0
Router1(config-if)#encapsulation ppp
Router1(config-if)#dialer-group 1
Router1(config-if)#isdn switch-type basic-ni
Router1(config-if)#isdn spid1 416555000000 4165550000
Router1(config-if)#isdn spid2 416555000100 4165550001
Router1(config-if)#ppp authentication chap
Router1(config-if)#ppp multilink
Router1(config-if)#exit
Router1(config)#dialer-list 1 protocol ip permit
Router1(config)#router ospf 87
Router1(config-router)#network 192.168.15.0 0.0.0.255 area 10
Router1(config-router)#exit
Router1(config)#end
Router1#

註釋 使用ip ospf demand-circuit 的命令可以保持鄰居關係一直是FULL狀態,而不管鏈路是否激活
8.12.  路由彙總
提問 減少路由表大小
回答
Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#router ospf 55
Router1(config-router)#area 100 range 172.20.0.0 255.255.0.0
Router1(config-router)#area 0 range 172.25.0.0 255.255.0.0
Router1(config-router)#area 2 range 10.0.0.0 255.0.0.0
Router1(config-router)#exit
Router1(config)#end
Router1#
註釋 OSPF的路由彙總只能配置在ABR上。生成的彙總路由代價值缺省情況下和子網路由中最小的一致,也就是說彙總路由的穩定狀態和代價值最小的那個路由條目相關,這也是RFC1583上的定義,在新的RFC中定義了彙總路由代價值和最大的那個路由條目相關,所以一定要確定所有路由器採用相同的計算方法,思科缺省使用RFC1583的方法,禁用可以使用no compatible rfc1583。在ABR上啓用匯總以後會自動生成一條彙總路由的丟棄路由(12.1(6))來避免路由迴環
8.13.  在特定端口禁用OSPF
提問 禁止某個端口參與OSPF
回答
Router3#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router3(config)#router ospf 44
Router3(config-router)#network 0.0.0.0 255.255.255.255 area 100
Router3(config-router)#passive-interface Ethernet0
Router3(config-router)#exit
Router3(config)#end
Router3#
註釋 OSPF也是通過配置被動接口的方式來不生成鄰居關係從而避免參與OSPF。當然也可以通過不在network命令中包含此端口來禁止,下面就是另外一種很好的配置方法,network了所有接口,但是缺省所有端口是被動接口,對於需要的接口再使用no的命令才參與OSPF:
Router3(config)#router ospf 44
Router3(config-router)#network 0.0.0.0 255.255.255.255 area 100
Router3(config-router)#passive-interface default
Router3(config-router)#no passive-interface Ethernet0
Router3(config-router)#exit
Router3(config)#end
Router3#
8.14.  修改接口的網絡類型
提問 修改某個端口缺省的網絡類型
回答
Router9#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router9(config)#interface FastEthernet0/0
Router9(config-if)#ip ospf network ?
  broadcast            Specify OSPF broadcast multi-access network
  non-broadcast        Specify OSPF NBMA network
  point-to-multipoint  Specify OSPF point-to-multipoint network
  point-to-point       Specify OSPF point-to-point network

Router9(config-if)#
註釋 上述四個關鍵詞主要定義媒介是否支持廣播或者組播數據包,是否需要選舉DR。對於Broadcast網絡,支持組播,DR可以自動選擇,不需要配置。對於nonbroadcast網絡,不支持組播,必須人工使用neighbor命令配置鄰居關係。對於point-to-multipoint網絡,不需要DR選舉,也不需要neighbor命令,這時候需要注意的是framerelay配置中要允許broadcast:
Router9(config)#interface Serial0/0
Router9(config-if)#ip address 192.168.10.9 255.255.255.0
Router9(config-if)#encapsulation frame-relay
Router9(config-if)#frame-relay map ip 192.168.10.2 123 broadcast
Router9(config-if)#ip ospf network point-to-multipoint
Router9(config-if)#exit
Router9(config)#router ospf 1
Router9(config-router)#network 192.168.10.0 0.0.0.255 area 0
Router9(config-router)#exit
否則必須配置neighbor
Router9(config)#interface Serial0/0
Router9(config-if)#ip address 192.168.10.9 255.255.255.0
Router9(config-if)#encapsulation frame-relay
Router9(config-if)#frame-relay map ip 192.168.10.2 123
Router9(config-if)#ip ospf network point-to-multipoint non-broadcast
Router9(config-if)#exit
Router9(config)#router ospf 1
Router9(config-router)#network 192.168.10.0 0.0.0.255 area 0
Router9(config-router)#neighbor 192.168.10.2
Router9(config-router)#exit
最後一種point-to-point網絡不需要DR,但必須支持組播來建立鄰居,否則需要配置neighbor命令。
還有一個特殊的迴環地址,缺省情況OSPF會宣告迴環地址爲/32的網絡,但是你可以在迴環接口上配置其爲ip ospf network point-to-point,來強制他宣告正確的網絡掩碼
8.15.  路由標籤
提問 對特定的路由打標籤避免互相再發布出現路由迴環
回答
Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#router ospf 55
Router1(config-router)#redistribute eigrp 11 metric-type 1 subnets tag 67
Router1(config-router)#exit
Router1(config)#end
Router1#
註釋
8.16.  記錄OSPF鄰居狀態變化
提問 記錄OSPF鄰居狀態變化信息
回答
Router2#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router2(config)#router ospf 12
Router2(config-router)#log-adjacency-changes
Router2(config-router)#exit
Router2(config)#end
Router2#
註釋 12.1後對上面命令增加了detail參數可以看到更多鄰居狀態變化的信息
8.17.  OSPF定時器
提問 調整定時器,加快收斂
回答
Router1#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router1(config)#interface Serial0/1
Router1(config-if)#ip ospf hello-interval 5
Router1(config-if)#ip ospf dead-interval 20
Router1(config-if)#exit
Router1(config)#end
Router1#
註釋 要保證和此端口相連的設備採用相同的定時器值,否則鄰居關係不能建立
8.18.  減少OSPF協議流量
提問 在穩定的網絡要不需要LSA的過多數據包傳遞
回答
Router9#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router9(config)#interface Serial0/0
Router9(config-if)#ip address 192.168.10.9 255.255.255.0
Router9(config-if)#ip ospf flood-reduction
Router9(config-if)#exit
Router9(config)#end
Router9#
註釋 正常情況下OSPF會每隔一小時進行所有的LSA泛洪,在穩定網絡裏面一般不需要,所以通過這種方式設定LSA的DoNotAge位,避免過多流量
8.19.  OSPF虛擬鏈路
提問 把兩個分開的路由器通過虛擬鏈路的方式相連
回答
Router9#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router9(config)#router ospf 1
Router9(config-router)#area 10 virtual-link 10.54.0.1
Router9(config-router)#exit
Router9(config)#end
Router9#
註釋 通過show ip ospf virtual-links來驗證。需要注意的是這個需要兩個路由器都進行配置,IP地址是對方的Router ID,要確保這個地址是通的,area後面跟的是穿越的Area
8.20.  使用域名查看OSPF狀態
提問 在OSPF的show命令中現實設備域名而不是地址
回答
Router3#configure terminal
Enter configuration commands, one per line.  End with CNTL/Z.
Router3(config)#ip ospf name-lookup
Router3(config)#end
Router3#
註釋 無
8.21.  OSPF排錯
提問 對OSPF進行排錯
回答
Router3#debug ip ospf adj
OSPF adjacency events debugging is on
Router3#註釋 OSPF排錯命令很多,這裏只提供了對鄰居關係的排錯命令,因爲鄰居是OSPF的基礎
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章