<OSPF(Open Shortest Path First)>
1 serial default cost 64 bandwidth 1.544m/kbps
2 ethernet default cost 10 bandwidth 10m
3 loopback default cost 1 bandwidth 8G
OSPF 中的被動接口也是不收不發
·OSPF屬於IGP,是Link-State協議,基於IP Pro 89。
·採用SPF算法(Dijkstra算法)計算最佳路徑。
·快速響應網絡變化。
·網絡變化是觸發更新。
·以較低頻率(每隔30分鐘)發送定期更新,被稱爲鏈路狀態刷新。
OSPF維護的3張表:
1)Neighbor Table:
確保直接鄰居之間能夠雙向通信。
2)Topology Table:
LSDB(Link-State DataBase),同一區域的所有路由器LSDB相同。
3)Routing Table:
對LSDB應用SPF算法,選擇到達目標地址的最佳路由放入路由表。
·Transit area (backbone or area 0)
主要功能:爲快速、高效地傳輸數據包。通常不接用戶。
·Regular areas (nonbackbone areas)
主要是連接用戶。而且所有數據都必須經過area 0中轉。
包括:Stub / Totally Stubby / NSSA
·爲減少LSA和LSDB,OSPF用Area來分隔路由器。
區域中的路由器保存該區域中所有鏈路和路由器的詳細信息,
但只保存其他區域路由器和鏈路的摘要信息。
·P2P鏈路可以到達FULL狀態。
·MA網絡,所有路由器只和DR/BDR(Backup Designated Router)到達FULL狀態。
·路由更新只在形成FULL狀態的路由器間傳遞。
·Hello Intervals:10S/30S
·Dead Interval:4*Hello =40S 不同於其它協議的三倍於Hello時間
·OSPF Cost = 108/BW (bps) 環回口的COST值是1,serial口的COST值是64,以太口是10
·OSPF的5種報文:
1)Hello:發現並建立鄰接關係。
2)DBD:包含路由的摘要信息。
DBD包中有三個字段:I、M、master/slaver
I M M/S
1 1 1
0 1 0
0 1 1
分別是0x7,0x2,0x3
3)LSR:向另一臺路由器請求特定路由的完整信息。
4)LSU:迴應LSR該條路由的完整信息。在OSPF中,只有LSU需要顯示確認
5)LSAck:對DBD/LSU做確認。
Route-ID:
爲唯一標識OSPF域中路由器。
設置Route-ID的優先順序:
1)手工指定Route-ID x.x.x.x(可任意,但不能重複)
2)最大的Loopback IP
3)最大的接口IP(保證接口是激活狀態)higher active physical interface ip
ID也可以寫成十進制格式,例如:0.0.1.0=256
OSPF建鄰居的必要條件:
1)Hello/Dead Intervals
2)Area ID
3)Authentication Password
4)Stub Area Flag
5)MTU
6)subnet mask(必須是同一個網段)
DR/BDR的選舉:
1)比較優先級,越大越優(默認爲1,如設爲0表示不參與選舉)
2)比較Route-ID,越大越優。
·DRother發送給DR/BDR用224.0.0.6
·DR發送給DRother用224.0.0.5
·非MA網絡(沒有DR/BDR),路由器都用224.0.0.5
OSPF中,DR的選舉有以下特點:1、不搶佔
2、when DR down,BDR成爲DR
3、DR是一個接口的概念
4、不同網段分別選DR/BDR
<OSPF>
R1(config)#router ospf 110
R1(config-router)#network 1.1.1.0 0.0.0.255 area 0(正/反掩碼皆可)
R1(config-router)#network 12.1.1.0 255.255.255.0 area 0
R1#show ip protocols
R1#show ip ospf interface
R1#show ip ospf interface brief
R1#show ip ospf neighbor
查看Router-id
network 1.1.1.0 0.0.0.255 area 0.0.0.0
不同進程號
不同Area
Hello/Dead Intervals
R4(config-if)#ip ospf hello-interval 9
(dead自動*4)
R4(config-if)#ip os dead-interval 80
<DR/BDR>
1)DR正常時,即使有新的Pri比DR高的路由器也不能搶佔成爲DR。
2)DR正常時,BDR只接收所有信息,但轉發LSA和同步LSDB的任務由DR完成,當DR故障時,BDR自動成爲DR,完成原DR的工作,並選舉新的BDR。
3)DR是個接口概念。每個網段都會選舉DR。
R1#show ip os database
<LSA(Link-State Advertisement)>
1、 傳播範圍 2、由誰產生 3、包含內容
·ADV Router指Router-id
1 2 3 4 5 7
Link ID RID DR IP Route ASBR RID Route Route
LSA1(Router Link States)
R1#show ip ospf database router 查看LSDB中的1類LSA的詳細信息
域內路由,僅在本區域傳遞,描述本區域鏈路、路由信息,不會穿越ABR。
每臺路由器都會產生。包含本路由器的直連的鄰居,我所連的網絡的路由信息
Link ID: router ID
ADV router: router ID
三種信息:Another network stub network transit network(Ma網絡的一些信息)
LSA2(Net Link States)
R1#show ip ospf database network
只有MA網絡纔會產生LSA2,由DR發出,僅在本區域傳遞。標識出本MA網中有哪些路由器以及本網的掩碼信息。
Link ID: DR的接口IP
ADV router: router ID
LSA3(Summary Net Link States)
R1#show ip ospf database summary
域間路由,能泛洪到整個AS,由ABR發出,穿越一個ABR,其ADV Router就會變成此ABR的Router-id.
包含本區哉中的所有路由信息
Link ID: 路由route(網絡號)
ADV router: ABR的router ID(經過一個ABR,就會改爲這個ABR的router ID)
LSA4(Summary ASB Link States)
R1#show ip os database asbr-summary
把ASBR的Router-id傳播到其他區域,用於其他區域的路由器得知ASBR的位置。由ABR產生併發出,穿越一個ABR,其ADV Router就會變成此ABR的Router-id.
在ASBR直連的區域內,不會產生4類的LSA,因爲ASBR會發出一類的LSA,其中會指明自已是ASBR
Link ID: ASBR的RID
ADV router: ABR的router ID(經過一個ABR,就會改爲這個ABR的router ID)
LSA5(Type-5 AS External Link States)
R1#show ip os database external
域外路由,不屬於某個區域,ASBR產生,泛洪到整個AS。不會改變ADV Router。
包含域外的路由
Link ID: 路由(網絡號)
ADV router: ASBR的router ID (unchange)
LSA7(Type-7 AS External Link States)
R2#show ip os database nssa-external
只存在於NSSA區域中。
R2(config-if)#bandwidth 5000
R2(config-if)#ip ospf cost 30
·重分佈進OSPF的路由默認爲E2,Cost=20,且傳遞過程中不改變COST。
如果改爲E1類型,則在傳輸過程中會累加每個入接口的cost值
R4(config-router)#redistribute rip subnets metric 8
新命令:
Router(config-router)#max-lsa maximum-number [threshold-percentage] [warning-only] [ignore-time] [ignore-count] [reset-time]
<修改Cost參考值>
R1(config)#router os 110
R1(config-if)#ip ospf cost 10
R1(config-router)#auto-cost reference-bandwidth 1000 (Mbps10的六次方)在COST公式中修改分子,本例修改分子爲10的九次方
<域間彙總>
R2(config)#router os 110
R2(config-router)#area 0 range 172.16.32.0 255.255.224.0
(彙總哪個區域的路由)
本地產生 O 172.16.32.0/19 is a summary, 00:00:06, Null0
建議在本區域的所有ABR上做。
<域外匯總>
R4(config)#router os 110
R4(config-router)#summary-address 44.0.0.0 255.0.0.0 (在ASBR上做)
本地產生 O 175.5.64.0/22 is a summary, 00:00:04, Null0
<向OSPF域注入默認路由>
第一種做法:
R4(config)#ip route 0.0.0.0 0.0.0.0 Serial 0
R4(config-router)#default-information originate
O*E2 0.0.0.0/0 [110/1]
第二種做法:
R4(config-router)#default-information originate always
R4(config-router)#default-information ori alw metric-type 1 metr 3
<Stub>
·將某區域設爲Stub可縮小區域的LSDB,降低內存消耗。阻止LSA4/5進入Stub區域。
R2(config-router)#area 2 stub
·由ABR發出一條LSA3默認路由給Stub的其他路由器。
默認的Seed Cost=1
R2(config-router)#area 2 default-cost 6 (在ABR上做,改Seed Cost=6)在同時有兩個ABR的情況下,通過修改這個COST值來實現選路
·必須將Stub區域的所有路由器都配成Stub。
Stub區域不能用作虛鏈路的中轉區域。
Stub中不能出現ASBR。
Area 0不能配成Stub。
<Totally Stubby > Cisco 私有
·更加縮小區域的LSDB,在Stub基礎上,阻止LSA3。(阻止LSA3/4/5)
R2(config-router)#area 2 stub no-summary (只需在ABR上做)
<NSSA(Not-So-Stubby Areas)>
·只有NSSA區域中才會現LSA7,可以存在ASBR。
阻止LSA4/5。
ABR將LSA7轉成LSA5,傳播到其他區域。
R2(config-router)#area 2 nssa (沒有產生默認路由)
R2(config-router)#area 2 nssa default-information-originate
(在ABR上做,由ABR產生一條LSA7默認路由傳播到NSSA其他路由器,默認Seed Cost=1,並且不會發生變化)
R2(config-router)#area 2 default-cost 6 (在ABR上做,改Seed Cost=6)
R2(config-router)#area 2 nssa default-information-originate metric 6 metric-type 1
Metric-type 1的作用是將N2類型的路由改爲N1類型的路由
R2(config-router)#area 2 nssa no-redistribution 在ABR上做
(對ABR上有外部路由進入NSSA區域時,將其阻止,因爲在ABR向nssa區域下發默認路由後,不需要它再將它直連的一些外部區域路由傳進NSSA區域)以上兩個命令可以打在一起。
R2(config-router)#area 2 nssa no-summary 把三類的LSA也幹掉,同時也下發一條默認路由,並且這條默認路由會取代default-information-originate所下發的默認路由
(Totally NSSA,阻止LSA3/4/5,由ABR產生LSA3默認路由傳播到NSSA其他路由器)
R2(config-router)#area 2 nssa no-redistribution default-information-originate no-summary
(LSDB中會出現LSA3/7默認路由,路由表中只會顯示LSA3默認路由)
<OSPF區域問題>
1)在ABR上起不同OSPF進程,進行OSPF之間的重分佈。
例如:R3的s1口在area 1中,進程號是10,s0口在area 3中,進程號是20
Router ospf 10 router ospf 20
Redistribute ospf 20 subnets redistribute ospf 10 subnets
2)tunnel 只要在區域的兩個過界上配置
Int tunnel 1 int tunnel 3
Tunnel source s1 tunnel source s1
Tunnel destination 13.1.1.3 tunnel destination 13.1.1.1
Ip add 111.1.1.1 255.255.255.0 Ip add 111.1.1.3 255.255.255.0
Router ospf 10 router ospf 10
Net 111.1.1.0 0.0.0.255 area 0 net 111.1.1.0 0.0.0.255 area 0
3)虛鏈路:
最簡單的方法,只需在區域的兩臺邊界路由器上配就可以了
R3(config-router)#area 2 virtual-link 2.2.2.2
(中轉區域) (對方Router-ID)
·遠離Area0 / 分隔的Area 0
R2#show ip ospf virtual-links
<負載均衡>
·OSPF只支持等價的負載均衡。(默認爲4條)
R1#show ip protocols
R1(config)#router ospf 110
R1(config-router)#maximum-paths 6(最多6條)
<被動接口>
R1(config)#router ospf 110
R1(config-router)#passive-interface loopback 0
接口將不收發Hello包,但此接口還是被宣告進OSPF。
其他路由器仍可收到這接口的路由。
<認證>
·分Link/Area/Virtual-Link 3種認證
每種認證都分爲 simple password (plain Text) & MD5
R1#debug ip ospf adj
Link:同一鏈路上的路由器之間,在接口下做
R1(config-router)#int s1
R1(config-if)#ip ospf authentication-key wolf (配明文密碼)
R1(config-if)#ip ospf authentication (啓動明文認證)
R1(config-if)#ip ospf message-digest-key 1 md5 wolf (配密文密碼)
R1(config-if)#ip ospf authentication message-digest (啓動密文認證)
Area:接口下配密碼,進程下調用
R1(config-router)#int s0
R2(config-if)#ip ospf message-digest-key 1 md5 wolf (配密文密碼)
R2(config-router)#area 0 authentication Message-digest (啓動密文認證)
區域內的所有路由器都要認證。
Virtual-Link:
R2(config-router)#area 2 virtual-link 2.2.2.2 message-digest-key 1 md5 wolf (配密文密碼)
R2(config-router)#area 2 virtual-link 2.2.2.2 authentication message-digest (啓動密文認證)
如果Area0啓動認證,在Virtual-Link上也要啓動相應的認證。
<OSPF Network Type>
1)LOOPBACK: Loopback 32位主機路由
2)POINT_TO_POINT: Serial / FR's P2P Subif / BRI (無DR,組播更新)
3)BROADCAST: Ethernet / Token Ring (選舉DR,通過組播建鄰居,更新)
4)NON_BROADCAST(NBMA): FR's Physical / FR's MP Subif (單播更新,選舉DR)
5)POINT_TO_MULTIPOINT: (無DR,出現/32主機路由)
6)POINT_TO_MULTIPOINT NON_BROADCAST: (無DR,單播,出現/32主機路由)
[2/3] Hello:10S [4/5/6] Hello:30S
·每種接口都被賦予了默認的OSPF Network Type,但可手工對其修改。
將Serial的Network Type改爲Boradcast,測試不同網段選舉DR。
·NON_BROADCAST NBMA
FR的物理接口和多點子接口默認是NBMA網絡類型
R1(config-if)#ip ospf network non-broadcast
R1(config)#router os 110
R1(config-router)#neighbor 12.1.1.2 由於是單播更新,必須指定鄰居(只需一方設置就OK,一般在Hub指Spoke)
·POINT_TO_MULTIPOINT (BORADCAST)
R1(config-if)#ip ospf network point-to-multipoint
O 12.1.1.1/32 [110/64] via 12.1.1.1, 00:01:12, Serial0 (對方直連接口主機路由是32位)
·POINT_TO_MULTIPOINT NON_BROADCAST
R2(config-if)#ip ospf network point-to-multipoint non-broadcast
R2(config)#router os 110
R2(config-router)#neighbor 12.1.1.1
用show ip ospf interface serial 0看不到non-broadcast,只能show run
<同一網段Hub & Spoke OSPF>
·FR環境:關閉反向ARP,手工映射。
HUB可訪問Spoke,Spoke之間不能互訪。
________________________________________________________________________________________
應用環境 不支持廣播的物理網絡 支持廣播的物理網絡
(FR map 不加Broadcast) (FR map 加Broadcast)
________________________________________________________________________________________
單播 組播
________________________________________________________________________________________
NON_BROADCAST BROADCAST
手工NEI 自動NEI
手工映射 手工MAP 手工MAP
手工DR 手工DR
________________________________________________________________________________________
P2MP NBMA P2MP
手工NEI 自動NEI
自動映射 自動MAP 自動MAP
無DR 無DR
________________________________________________________________________________________
·NON_BROADCAST
·3層是NBMA,2層是否讓通過廣播都無所謂。(FR map後加不加Broadcast皆可)
在HUB端(R1)單播
R1(config)#router os 110
R1(config-router)#neighbor 145.1.1.4
R1(config-router)#neighbor 145.1.1.5
確保HUB成爲DR,和Spoke交互路由信息。
R1(config)#int s0
R1(config-if)#ip ospf priority 2
R4/R5(config-if)#ip ospf priority 0
R4: O 5.5.5.0 [110/65] via 145.1.1.5, 00:00:07, Serial
手工MAP(Spoke 端的互訪)
R4(config-if)#frame-relay map ip 145.1.1.5 401
R5(config-if)#frame-relay map ip 145.1.1.4 501
·BROADCAST
·3層是BMA,2層也一定要讓廣播通過。(FR map後一定要加Broadcsat)
R1(config-if)#fram ma ip 145.1.1.4 104 broadcast
R1(config-if)#fram ma ip 145.1.1.5 105 broadcast
確保HUB成爲DR,和Spoke交互路由信息。
R1(config)#int s0
R1(config-if)#ip ospf priority 2
R4/R5(config-if)#ip ospf priority 0
R4: O 5.5.5.0 [110/65] via 145.1.1.5, 00:00:07, Serial
手工MAP
R4(config-if)#frame-relay map ip 145.1.1.5 401 broadcast
R5(config-if)#frame-relay map ip 145.1.1.4 501 broadcast
·POINT_TO_MULTIPOINT NON_BROADCAST cisco專有的
·3層是NBMA,2層是否讓通過廣播都無所謂。(FR map後加不加Broadcast皆可)
在HUB端(R1)單播
R1(config)#router os 110
R1(config-router)#neighbor 145.1.1.4
R1(config-router)#neighbor 145.1.1.5
R4: O 145.1.1.5/32 [110/128] via 145.1.1.1, 00:00:24, Serial1
產生/32主機路由,且下一跳指向HUB,所以不需手工MAP。這就是32位的好處。
·POINT_TO_MULTIPOINT 全自動,最好的
·3層是允許廣播,2層也一定要讓廣播通過。(FR map後一定要加Broadcsat)
·R1#show ip os neighbor detail
DR is 0.0.0.0 BDR is 0.0.0.0
P2P/P2MP/P2MP NBMA都不需要選舉DR/BDR,所以DR is 0.0.0.0 BDR is 0.0.0.0
·POINT_TO_POINT(做不同網段)
HUB端起2個P2P子接口:
interface Serial0
encapsulation frame-relay
no frame-relay inverse-arp
interface Serial0.14 point-to-point
ip address 14.1.1.1 255.255.255.0
frame-relay interface-dlci 104
interface Serial0.15 point-to-point
ip address 15.1.1.1 255.255.255.0
frame-relay interface-dlci 105