【理論準備】
OSPF預設路由釋出的方式取決于引入預設路由的區域類型,主要分普通區域、STUB區域和完全STUB區域、NSSA區域和完全NSSA區域。
OSPF預設路由釋出的方法:
l 配置特定的區域自動生成,STUB/Totally STUB/Totally NSSA
l 配置生成預設路由的指令:普通區域
default-route-advertise [ always ] NSSA區域 nssa default-route-advertise OSPF預設路由通常應用于下面兩種情況:區域邊界路由器(ABR)釋出和自治系統邊界路由器(ASBR)釋出。 産生條件 區域類型 | 自動産生 | 配置 | ABR | ASBR | 和骨幹區有FULL鄰居 | 已有預設路由 | 産生LSA類型 | 泛洪範圍 |
普通區域 | default-route-advertise | √ | 類型5 | 整個OSPF域 | ||||
always | ||||||||
Stub區域 | 類型3 | STUB | ||||||
完全STUB區域 | ||||||||
NSSA區域 | nssadefault-route-advertise | 類型7 | NSSA | |||||
完全NSSA區域 |
一條關鍵指令
default-route-advertise [ [ always | cost cost | route-policy route-policy-name | type type ] * | summary cost cost ]
undo default-route-advertise
視圖
OSPF視圖
參數
always:如果目前路由器的路由表中沒有預設路由,使用此參數可産生一個描述預設路由的Type-5 LSA釋出出去。如果沒有指定該關鍵字,僅當本地路由器的路由表中存在預設路
由時,才可以産生一個描述預設路由的Type-5 LSA釋出出去。
cost cost:該預設路由的路徑成本,取值範圍為0~16777214,如果沒有指定,預設路由的路徑成本将取default cost指令配置的值。
route-policy route-policy-name:路由政策名,為1~19個字元的字元串。隻有目前路由器的路由表中存在預設路由,并且有路由比對route-policy-name指定的路由政策,才可
以産生一個描述預設路由的Type-5 LSA釋出出去,指定的路由政策會影響Type-5 LSA中的值。如果同時指定always參數,不論目前路由器的路由表中是否有預設路由,隻要有路由
比對指定的路由政策,就将産生一個描述預設路由的Type-5 LSA釋出出去,指定的路由政策會影響Type-5 LSA中的值。
type type:該Type-5 LSA的類型,取值範圍為1~2,如果沒有指定,Type-5 LSA的預設類型将取default type指令配置的值。
summary:釋出指定預設路由的Type-3 summary LSA。
描述
default-route-advertise指令用來将預設路由引入到OSPF路由區域。undo default-route-advertise指令用來取消引入預設路由。
預設情況下,沒有引入預設路由。
使用import-route指令不能引入預設路由,如果要引入預設路由,必須使用該指令。當本地路由器的路由表中沒有預設路由時,要産生一個描述預設路由的Type-5 LSA應使用
always關鍵字。
default-route-advertise summary cost指令僅在×××中應用,以Type-3 LSA引入預設路由,PE路由器會将引入的預設路由釋出給CE路由器。
相關配置可參考指令import-route和default。
舉例
# 不管本地路由器的路由表中是否存在預設路由,将産生的預設路由引入到OSPF路由區域(本地路由器沒有預設路由)。如果不加always 則要配置一條預設路由後才能将預設路由
引入到區域中。
<Sysname> system-view
[Sysname] ospf 100
[Sysname-ospf-100] default-route-advertise always
【拓撲及實驗用的軟體】
本文實驗采用的交換機是H3C模拟器,下載下傳位址如下:http://forum.h3c.com/forum.php?mod=viewthread&tid=109740&highlight=H3C%E6%A8%A1%E6%8B%9F%E5%99%A8
有興趣的朋友可以在論壇上去下載下傳。
拓撲如下:
OSPF的配置】
後面會有所有詳細的配置
【BGP的配置】
<R1>
<R1>dis bgp peer
BGP local router ID : 10.1.1.2
Local AS number : 100
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ PrefRcv Up/Down State
3.3.3.2 4 200 27 33 0 6 00:19:18 Established
<R1>dis ip ro
Routing Tables: Public
Destinations : 14 Routes : 14
Destination/Mask Proto Pre Cost NextHop Interface
1.1.1.1/32 OSPF 10 1562 2.2.2.2 S0/6/3
2.2.2.0/30 Direct 0 0 2.2.2.1 S0/6/3
2.2.2.1/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.2/32 Direct 0 0 2.2.2.2 S0/6/3
3.3.3.0/30 Direct 0 0 3.3.3.1 S0/6/0
3.3.3.1/32 Direct 0 0 127.0.0.1 InLoop0
3.3.3.2/32 Direct 0 0 3.3.3.2 S0/6/0
4.4.4.0/30 BGP 255 0 3.3.3.2 S0/6/0
4.4.4.2/32 BGP 255 0 3.3.3.2 S0/6/0
5.5.5.1/32 BGP 255 1562 3.3.3.2 S0/6/0
10.1.1.2/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.3/32 BGP 255 0 3.3.3.2 S0/6/0
127.0.0.0/8 Direct 0 0 127.0.0.1 InLoop0
127.0.0.1/32 Direct 0 0 127.0.0.1 InLoop0
<R2>dis ip ro
1.1.1.1/32 BGP 255 1562 3.3.3.1 S0/6/0
2.2.2.0/30 BGP 255 0 3.3.3.1 S0/6/0
2.2.2.2/32 BGP 255 0 3.3.3.1 S0/6/0
3.3.3.0/30 Direct 0 0 3.3.3.2 S0/6/0
3.3.3.1/32 Direct 0 0 3.3.3.1 S0/6/0
3.3.3.2/32 Direct 0 0 127.0.0.1 InLoop0
4.4.4.0/30 Direct 0 0 4.4.4.1 S0/6/1
4.4.4.1/32 Direct 0 0 127.0.0.1 InLoop0
4.4.4.2/32 Direct 0 0 4.4.4.2 S0/6/1
5.5.5.1/32 OSPF 10 1562 4.4.4.2 S0/6/1
10.1.1.2/32 BGP 255 0 3.3.3.1 S0/6/0
10.1.1.3/32 Direct 0 0 127.0.0.1 InLoop0
<R5>dis ip ro
Destinations : 7 Routes : 7
1.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
2.2.2.0/30 Direct 0 0 2.2.2.2 S0/6/3
2.2.2.1/32 Direct 0 0 2.2.2.1 S0/6/3
2.2.2.2/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.1/32 Direct 0 0 127.0.0.1 InLoop0
<R4>dis ip ro
4.4.4.0/30 Direct 0 0 4.4.4.2 S0/6/1
4.4.4.1/32 Direct 0 0 4.4.4.1 S0/6/1
4.4.4.2/32 Direct 0 0 127.0.0.1 InLoop0
5.5.5.1/32 Direct 0 0 127.0.0.1 InLoop0
10.1.1.4/32 Direct 0 0 127.0.0.1 InLoop0
但檢視 R5 和 R4 的路由表發現,他們并沒有學習到全網路由,而隻學習到了
AS 内部的路由,分析發現,我們剛才把 OSPF 和直連路由引入到了 BGP,也就是說我們
已經将 AS 内部路由通過 BGP 協定在AS 100和 AS 200之間互相傳遞了,是以 R1
和 R2 學習到了全網的路由,而 OSPF 作為 IGP 路由并沒有從 BGP 那裡學習到任何
路由,要解決這個問題有兩個方法:
方法一:将 BGP 的路由引入到 OSPF 之中;因為 BGP 這個時候是知道全網路由的,如果
把 BGP 路由引入到 OSPF,這時候 OSPF 也就知道全網路由了。
方法二:使用預設路由;做為 ASBR的 Router B 和 Router C是知道全網路由的,如果他
們能想 AS 内部釋出一條預設路由的話,問題也就結果了。
我們在 R1上使用
[R1]ospf
[R1-ospf-1]import-route bgp
[R1-ospf-1]import-route direct
我們在 R2上使用
[R2]ip route-static 0.0.0.0 0.0.0.0 3.3.3.1
[R2]ospf
[R2-ospf-1]default-route-advertise
R1上配置後,R1和R5的路由和LSDB情況如下:
<R1>dis ospf ro
OSPF Process 1 with Router ID 10.1.1.2
Routing Tables
Routing for Network
Destination Cost Type NextHop AdvRouter Area
2.2.2.0/30 1562 Stub 2.2.2.1 10.1.1.2 0.0.0.0
1.1.1.1/32 1562 Stub 2.2.2.2 10.1.1.1 0.0.0.0
Total Nets: 2
Intra Area: 2 Inter Area: 0 ASE: 0 NSSA: 0
<R1>dis ospf lsdb
Link State Database
Area: 0.0.0.0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 10.1.1.2 10.1.1.2 1307 48 80000004 0
Router 10.1.1.1 10.1.1.1 444 60 80000004 0
AS External Database
External 5.5.5.1 10.1.1.2 1307 36 80000001 1
External 4.4.4.0 10.1.1.2 1307 36 80000001 1
External 4.4.4.2 10.1.1.2 1307 36 80000001 1
External 3.3.3.0 10.1.1.2 1304 36 80000001 1
External 3.3.3.2 10.1.1.2 1304 36 80000001 1
External 2.2.2.0 10.1.1.2 1304 36 80000001 1
External 2.2.2.2 10.1.1.2 1304 36 80000001 1
External 10.1.1.3 10.1.1.2 1307 36 80000001 1
External 10.1.1.2 10.1.1.2 1304 36 80000001 1
3.3.3.0/30 O_ASE 150 1 2.2.2.1 S0/6/3
3.3.3.2/32 O_ASE 150 1 2.2.2.1 S0/6/3
4.4.4.0/30 O_ASE 150 1 2.2.2.1 S0/6/3
4.4.4.2/32 O_ASE 150 1 2.2.2.1 S0/6/3
5.5.5.1/32 O_ASE 150 1 2.2.2.1 S0/6/3
10.1.1.2/32 O_ASE 150 1 2.2.2.1 S0/6/3
10.1.1.3/32 O_ASE 150 1 2.2.2.1 S0/6/3
<R5>dis ospf ro
OSPF Process 1 with Router ID 10.1.1.1
2.2.2.0/30 1562 Stub 2.2.2.2 10.1.1.1 0.0.0.0
1.1.1.1/32 0 Stub 1.1.1.1 10.1.1.1 0.0.0.0
Routing for ASEs
Destination Cost Type Tag NextHop AdvRouter
5.5.5.1/32 1 Type2 1 2.2.2.1 10.1.1.2
4.4.4.0/30 1 Type2 1 2.2.2.1 10.1.1.2
4.4.4.2/32 1 Type2 1 2.2.2.1 10.1.1.2
3.3.3.0/30 1 Type2 1 2.2.2.1 10.1.1.2
3.3.3.2/32 1 Type2 1 2.2.2.1 10.1.1.2
10.1.1.2/32 1 Type2 1 2.2.2.1 10.1.1.2
10.1.1.3/32 1 Type2 1 2.2.2.1 10.1.1.2
2.2.2.2/32 1 Type2 1 2.2.2.1 10.1.1.2
Total Nets: 10
Intra Area: 2 Inter Area: 0 ASE: 8 NSSA: 0
<R5>dis ospf lsdb
Router 10.1.1.2 10.1.1.2 1400 48 80000004 0
Router 10.1.1.1 10.1.1.1 535 60 80000004 0
External 5.5.5.1 10.1.1.2 1400 36 80000001 1
External 4.4.4.0 10.1.1.2 1400 36 80000001 1
External 4.4.4.2 10.1.1.2 1400 36 80000001 1
External 3.3.3.0 10.1.1.2 1396 36 80000001 1
External 3.3.3.2 10.1.1.2 1396 36 80000001 1
External 2.2.2.0 10.1.1.2 1396 36 80000001 1
External 2.2.2.2 10.1.1.2 1396 36 80000001 1
External 10.1.1.3 10.1.1.2 1400 36 80000001 1
External 10.1.1.2 10.1.1.2 1396 36 80000001 1
<R5>