11-OSPFv3配置
本章節下載: 11-OSPFv3配置 (466.66 KB)
OSPFv3是OSPF(Open Shortest Path First,開放式最短路徑優先)版本3的簡稱,主要提供對IPv6的支持,遵循的標準為RFC 5340(OSPF for IPv6)。
OSPFv3和OSPFv2在很多方麵是相同的:
· Router ID,Area ID仍然是32位的。
· 相同類型的報文:Hello報文,DD(Database Description,數據庫描述)報文,LSR(Link State Request,鏈路狀態請求)報文,LSU(Link State Update,鏈路狀態更新)報文和LSAck(Link State Acknowledgment,鏈路狀態確認)報文。
· 相同的鄰居發現機製和鄰接形成機製。
· 相同的LSA擴散機製和老化機製。
OSPFv3和OSPFv2的不同主要有:
· OSPFv3是基於鏈路(Link)運行,OSPFv2是基於網段(Network)運行。
· OSPFv3在同一條鏈路上可以運行多個實例。
· OSPFv3是通過Router ID來標識鄰接的鄰居。OSPFv2則是通過IP地址來標識鄰接的鄰居。
和OSPFv2一樣,OSPFv3也有五種報文類型,分別是Hello報文、DD報文、LSR報文、LSU報文和LSAck報文。
這五種報文有相同的報文頭,但是它和OSPFv2的報文頭有一些區別,其長度隻有16字節,且沒有認證字段。另外就是多了一個Instance ID字段,用來支持在同一條鏈路上運行多個實例。
OSPFv3的報文頭如圖1-1所示。
圖1-1 OSPFv3報文頭示意圖
· Version #:OSPF的版本號。對於OSPFv3來說,其值為3。
· Type:OSPF報文的類型。數值從1到5,分別對應Hello報文、DD報文、LSR報文、LSU報文和LSAck報文。
· Packet Length:OSPF報文的總長度,包括報文頭在內,單位為字節。
· Instance ID:同一條鏈路上的實例標識。
· 0:保留位,必須為0。
LSA(Link State Advertisement,鏈路狀態通告)是OSPFv3協議計算和維護路由信息的主要來源。在RFC 5340中定義了七類LSA,描述如下:
· Router-LSA:由每個路由器生成,描述本路由器的鏈路狀態和開銷,隻在路由器所處區域內傳播。
· Network-LSA:由廣播網絡和NBMA(Non-Broadcast Multi-Access)網絡的DR(Designated Router,指定路由器)生成,描述本網段接口的鏈路狀態,隻在DR所處區域內傳播。
· Inter-Area-Prefix-LSA:該LSA由ABR(Area Border Router,區域邊界路由器)生成,在與該LSA相關的區域內傳播。每一條Inter-Area-Prefix-LSA描述了一條到達本自治係統內其他區域的IPv6地址前綴(IPv6 Address Prefix)的路由。
· Inter-Area-Router-LSA:該LSA由ABR生成,在與該LSA相關的區域內傳播。每一條Inter-Area-Router-LSA描述了一條到達本自治係統內的ASBR(Autonomous System Boundary Router,自治係統邊界路由器)的路由。
· AS-external-LSA:由ASBR生成,描述到達其它AS(Autonomous System,自治係統)的路由,傳播到整個AS(Stub區域除外)。缺省路由也可以用AS-external-LSA來描述。
· NSSA-external-LSA:由NSSA(Not-So-Stubby Area)區域中的ASBR生成,描述到達其它AS的路由,傳播到當前NSSA區域。AS外的缺省路由也可以用NSSA-external-LSA來描述。
· Link-LSA:路由器為每一條鏈路生成一個Link-LSA,在本地鏈路範圍內傳播。每一個Link-LSA描述了該鏈路上所連接的IPv6地址前綴及路由器的Link-local地址。
· Intra-Area-Prefix-LSA:每個Intra-Area-Prefix-LSA包含路由器上的IPv6前綴信息,Stub區域信息或穿越區域(Transit Area)的網段信息,該LSA在區域內傳播。由於Router-LSA和Network-LSA不再包含地址信息,導致了Intra-Area-Prefix-LSA的引入。
在RFC 5187中定義了Grace-LSA。Grace-LSA由Restarter在重啟時候生成的,在本地鏈路範圍內傳播。這個LSA描述了重啟設備的重啟原因和重啟時間間隔,目的是通知鄰居本設備將進入GR(Graceful Restart,平滑重啟)。
OSPFv3的定時器包括:
· OSPFv3的報文定時器
· LSA的延遲時間
· SPF定時器
· GR定時器
Hello報文周期性地被發送至鄰居路由器,用於發現與維持鄰居關係、選舉DR與BDR。需要注意的是,網絡鄰居間的Hello時間間隔必須一致,並且Hello時鍾的值與路由收斂速度、網絡負荷大小成反比。
在一定時間間隔內,如果路由器未收到對方的Hello報文,則認為對端路由器失效,這個時間間隔被稱為相鄰路由器間的失效時間。
當一台路由器向它的鄰接發送一條LSA後,需要等到對方的確認報文。若在設定的重傳間隔時間內沒有收到對方的確認報文,就會向鄰接重傳這條LSA。重傳間隔的值必須大於一個報文在兩台路由器之間傳送一個來回的時間。
由於LSA在本路由器的LSDB(Link State Database,鏈路狀態數據庫)中會隨時間老化(每秒加1),但在網絡的傳輸過程中卻不會隨時間老化,所以有必要在發送之前就將LSA的老化時間增加上傳送延遲時間。對於低速網絡,該項配置尤為重要。
當OSPFv3的LSDB發生改變時,需要重新計算最短路徑,如果每次改變都立即計算最短路徑,將占用大量資源,並會影響路由器的效率,通過調節SPF(Shortest Path First,最短路徑優先)的計算延遲時間和間隔時間,可以避免在網絡頻繁變化時過多的占用資源。
在進行GR時,可能出現重建鄰居失敗的情況,這將導致設備長期處於GR過程中。GR定時器即GR的最長時間,當它超時時則退出GR,從而避免設備長期處於GR過程中。
在目前的實現中,支持以下OSPFv3特性:
· RFC 5340規定的基本特性
· OSPFv3 Stub區域
· OSPFv3 NSSA區域
· OSPFv3多進程(Multi-Process)
· OSPFv3支持多實例
· OSPFv3 GR
· OSPFv3與BFD聯動
與OSPFv3相關的協議規範有:
· RFC 2328:OSPF Version 2
· RFC 5187:OSPFv3 Graceful Restart
· RFC 5340:OSPF for IPv6
表1-1 OSPFv3配置任務簡介
配置任務 |
說明 |
詳細配置 |
|
使能OSPFv3功能 |
必選 |
||
配置OSPFv3的區域屬性 |
配置OSPFv3的Stub區域 |
可選 |
|
配置OSPFv3的NSSA區域 |
可選 |
||
配置OSPFv3的虛連接 |
可選 |
||
配置OSPFv3網絡類型 |
配置OSPFv3接口的網絡類型 |
可選 |
|
配置NBMA或者P2MP網絡的鄰居 |
可選 |
||
配置OSPFv3的路由信息控製 |
配置OSPFv3的路由聚合 |
可選 |
|
配置OSPFv3對通過接收到的LSA計算出來的路由信息進行過濾 |
可選 |
||
配置OSPFv3接口的開銷值 |
可選 |
||
配置OSPFv3最大等價路由條數 |
可選 |
||
配置OSPFv3協議的優先級 |
可選 |
||
配置OSPFv3引入外部路由 |
可選 |
||
調整和優化OSPFv3網絡 |
配置OSPFv3定時器 |
可選 |
|
配置接口的DR優先級 |
可選 |
||
忽略DD報文中的MTU檢查 |
可選 |
||
禁止接口收發OSPFv3報文 |
可選 |
||
配置鄰接狀態變化輸出開關 |
可選 |
||
配置OSPFv3 GR |
配置GR Restarter |
可選 |
|
使能GR Helper |
可選 |
||
配置OSPFv3 IPsec安全策略與BFD聯動 |
可選 |
||
配置OSPFv3 IPsec安全策略 |
可選 |
在使能OSPFv3功能之前,需完成以下任務:
· 各相鄰節點網絡層可達
· 使能IPv6報文轉發功能
要在路由器上使能OSPFv3功能,必須先創建OSPFv3進程、指定該進程的Router ID以及在接口上使能OSPFv3功能。
Router ID用來在一個自治係統中唯一的標識一台路由器。在OSPFv3中,用戶必須手工配置一個Router ID,而且必須保證自治係統中任意兩台路由器的Router ID都不相同。因此,為了保證OSPFv3運行的穩定性,在進行網絡規劃時,應確定路由器ID的劃分並手工配置。需要注意的是,如果在同一台路由器上運行了多個OSPFv3進程,必須為不同的進程指定不同的Router ID。
在一台路由器上可以創建多個OSPFv3進程,OSPFv3進程號是本地概念,不影響與其它路由器之間的報文交換。因此,不同的路由器之間,即使進程號不同也可以進行報文交換。
表1-2 使能OSPFv3功能
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
創建OSPFv3進程,進入OSPFv3視圖 |
ospfv3 [ process-id ] [ vpn-instance vpn-instance-name ] |
必選 缺省情況下,係統不運行OSPFv3進程 |
配置路由器的ID |
router-id router-id |
必選 |
進入接口視圖 |
interface interface-type interface-number |
- |
在接口上使能OSPFv3 |
ospfv3 process-id area area-id [ instance instance-id ] |
必選 缺省情況下,接口上沒有使能OSPFv3 |
有關多實例的介紹請參見“MPLS配置指導”中的“IPv6 MPLS L3VPN”。
OSPFv3支持Stub區域、NSSA區域和虛連接的配置,其原理及應用環境與OSPFv2相同。
OSPFv3劃分區域後,可以減少網絡中LSA的數量,OSPFv3的擴展性也得以增強。對於位於AS邊緣的一些非骨幹區域,為了更多的縮減其路由表規模和降低LSA的數量,可以將它們配置為Stub區域。
在劃分區域之後,非骨幹區域之間的OSPFv3路由更新是通過骨幹區域來交換完成的。對此,OSPFv3要求所有非骨幹區域必須與骨幹區域保持連通,並且骨幹區域自身也要保持連通。但在實際應用中,可能會因為各方麵條件的限製,無法滿足這個要求。這時可以通過配置OSPFv3虛連接予以解決。
在配置OSPFv3的區域屬性之前,需完成以下任務:
· 使能IPv6報文轉發功能
· 配置OSPFv3基本功能
表1-3 配置OSPFv3的Stub區域
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPFv3視圖 |
ospfv3 [ process-id ] |
- |
進入OSPFv3區域視圖 |
area area-id |
- |
配置一個區域為Stub區域 |
stub [ no-summary ] |
必選 缺省情況下,沒有區域被配置為Stub區域 |
配置發送到Stub區域的缺省路由的開銷值 |
default-cost value |
可選 缺省情況下,發送到Stub區域的缺省路由的開銷值為1 |
· OSPFv3的區域不能直接刪除,隻有區域視圖下的所有配置都刪除後,且該區域中相關接口的狀態都為down,此區域才會自動刪除。
· 對於位於Stub區域中的所有路由器都必須配置stub命令,參數no-summary隻能在ABR上配置。
· 如果ABR使用了stub命令中的參數no-summary,則此ABR隻向區域內發布一條描述缺省路由的Inter-Area-Prefix-LSA。這種既沒有AS-external-LSA,也沒有其它Inter-Area-Prefix-LSA、Inter-Area-Router-LSA的Stub區域,又稱為Totally Stub區域。
表1-4 配置OSPFv3的NSSA區域
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPFv3視圖 |
ospfv3 [ process-id ] |
- |
進入OSPFv3區域視圖 |
area area-id |
- |
配置一個區域為NSSA區域 |
nssa [ default-route-advertise [ cost cost | type type ] * | no-import-route | no-summary | suppress-fa | { translate-always | translate-never } | translator-stability-interval value ] * |
必選 缺省情況下,沒有區域被配置為NSSA區域 |
配置發送到NSSA區域的缺省路由的開銷值 |
default-cost value |
可選 缺省情況下,發送到NSSA區域的缺省路由的開銷值為1 |
對於沒有和骨幹區域直接相連的非骨幹區域,或者不連續的骨幹區域,可以使用該配置建立邏輯上的連通性。
表1-5 配置OSPFv3的虛連接
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPFv3視圖 |
ospfv3 [ process-id ] |
- |
進入OSPFv3區域視圖 |
area area-id |
- |
創建並配置虛連接 |
vlink-peer router-id [ hello seconds | retransmit seconds | trans-delay seconds | dead seconds | instance instance-id ] * |
必選 |
· 虛連接的兩端必須是ABR,而且必須在兩端同時配置才可生效。
· 虛連接不能在使能了GR能力的進程下的區域進行配置。
OSPFv3根據鏈路層協議類型將網絡分為四種不同的類型。
缺省情況下,當接口封裝的鏈路層協議不同時,OSPFv3接口網絡類型的缺省值也不同,例如:
· 當接口封裝的鏈路層協議是PPP時,OSPFv3接口網絡類型的缺省值為點對點。
· 當接口封裝的鏈路層協議是Ethernet時,OSPFv3接口網絡類型的缺省值為廣播類型。
用戶可以根據需要配置OSPFv3接口的網絡類型,例如:
· 由於NBMA網絡必須是全連通的,即網絡中任意兩台路由器之間都必須有一條虛電路直接可達。但在很多情況下,這個要求無法滿足,這時就需要通過命令強製改變網絡的類型。
· 對於NBMA網絡,如果部分路由器之間沒有直接可達的鏈路時,應將接口的網絡類型配置為P2MP。如果路由器在NBMA網絡中隻有一個對端,也可將接口類型配置為P2P。
在配置OSPFv3的網絡類型之前,需完成以下任務:
· 使能IPv6報文轉發功能
· 配置OSPFv3基本功能
表1-6 配置OSPFv3接口的網絡類型
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置OSPFv3接口的網絡類型 |
ospfv3 network-type { broadcast | nbma | p2mp [ non-broadcast ] | p2p } [ instance instance-id ] |
可選 缺省情況下,接口的網絡類型根據物理接口而定 |
當路由器的接口類型為如下網絡類型時,需要為其指定相鄰路由器IP地址:
· NBMA網絡
· P2MP網絡(僅當接口選擇單播形式發送報文時,需要此配置)
由於無法通過廣播Hello報文的形式發現相鄰路由器,必須手工指定相鄰路由器的本地鏈路地址。對於NBMA網絡,可以指定該相鄰路由器是否有選舉權等。
表1-7 配置NBMA或者P2MP(單播)網絡的鄰居
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置NBMA或者P2MP(單播)網絡的鄰居 |
ospfv3 peer ipv6-address [ dr-priority dr-priority ] [ instance instance-id ] |
必選 |
通過這部分的配置,可以控製OSPFv3的路由信息的發布與接收,並引入外部路由。
在配置OSPFv3的路由信息控製之前,需完成以下任務:
· 使能IPv6報文轉發功能
· 配置OSPFv3基本功能
如果該區域中存在多個連續的網段,則可以在ABR上配置abr-summary命令將它們聚合成一個網段,ABR隻發送一條聚合後的LSA,所有落入本命令指定的聚合網段範圍的LSA將不再會被單獨發送出去,這樣可減小其它區域中LSDB的規模。
表1-8 配置OSPFv3的路由聚合
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPFv3視圖 |
ospfv3 [ process-id ] |
- |
進入OSPFv3區域視圖 |
area area-id |
- |
配置OSPFv3區域路由聚合 |
abr-summary ipv6-address prefix-length [ not-advertise ] |
必選 缺省情況下,ABR沒有對路由進行聚合 |
路由聚合隻有在ABR上配置才會有效。
OSPFv3接收到LSA後,可以根據一定的過濾條件來決定是否將計算後得到的路由信息加入到本地路由表中。
表1-9 配置OSPFv3對通過接收到的LSA計算出來的路由信息進行過濾
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPFv3視圖 |
ospfv3 [ process-id ] |
- |
配置對接收的路由信息進行過濾 |
filter-policy { acl6-number | ipv6-prefix ipv6-prefix-name } import |
必選 缺省情況下,沒有對接收的路由信息過濾 |
filter-policy import命令隻對OSPFv3計算出來的路由進行過濾,沒有通過過濾的路由將不被加入到本地路由表中,從而不能用於轉發報文。
OSPFv3有兩種方式來配置接口的開銷值:
· 第一種方法是在接口視圖下直接配置開銷值;
· 第二種方法是配置接口的帶寬參考值,OSPFv3根據帶寬參考值自動計算接口的開銷值,計算公式為:接口開銷=帶寬參考值(100Mbps)÷接口帶寬(Mbps),當計算出來的開銷值大於65535,開銷取最大值65535;當計算出來的開銷值小於1時,開銷取最小值1。
如果沒有在接口下配置接口開銷值,OSPFv3會根據該接口的帶寬自動計算其開銷值。
表1-10 配置OSPFv3接口的開銷值
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
設置OSPFv3接口的開銷值 |
ospfv3 cost value [ instance instance-id ] |
可選 缺省情況下,VLAN接口的缺省值為1;Loopback接口的缺省值為0;其他接口按照當前的帶寬自動計算接口運行OSPFv3協議所需的開銷 |
表1-11 配置帶寬參考值
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPFv3視圖 |
ospfv3 [ process-id ] |
- |
配置帶寬參考值 |
bandwidth-reference value |
可選 缺省情況下,帶寬參考值為100Mbits/s |
如果到一個目的地有幾條開銷相同的路徑,可以通過等價路由負載分擔來提高鏈路利用率。
表1-12 配置OSPFv3最大等價路由條數
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPFv3視圖 |
ospfv3 [ process-id ] |
- |
配置OSPFv3最大等價路由條數 |
maximum load-balancing maximum |
可選 缺省情況下,最大等價路由條數為16 |
由於路由器上可能同時運行多個動態路由協議,就存在各個路由協議之間路由信息共享和選擇的問題。係統為每一種路由協議設置一個優先級,在不同協議發現同一條路由時,優先級高的路由將被優選。
表1-13 配置OSPFv3協議的優先級
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPFv3視圖 |
ospfv3 [ process-id ] |
- |
配置OSPFv3協議的優先級 |
preference [ ase ] [ route-policy route-policy-name ] preference |
可選 缺省情況下,OSPFv3內部路由的優先級為10,OSPFv3 外部路由的優先級為150 |
表1-14 配置OSPFv3引入外部路由
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPFv3視圖 |
ospfv3 [ process-id ] |
- |
配置外部路由的缺省開銷值 |
default cost value |
可選 缺省情況下,缺省開銷值為1 |
引入外部路由信息 |
import-route protocol [ process-id | allow-ibgp ] [ cost value | route-policy route-policy-name | type type ] * |
必選 缺省情況下,沒有引入外部路由信息 |
配置OSPFv3引入缺省路由 |
default-route-advertise [ always | cost value | type type | route-policy route-policy-name ] * |
可選 缺省情況下,沒有引入缺省路由 |
對引入的外部路由信息進行過濾 |
filter-policy { acl6-number | ipv6-prefix ipv6-prefix-name } export [ isisv6 process-id | ospfv3 process-id | ripng process-id | bgp4+ | direct | static ] |
可選 缺省情況下,沒有對引入的路由信息過濾 |
· 在OSPFv3路由器上配置import-route或default-route-advertise命令後,這台OSPFv3路由器就成為ASBR。
· 隻能通過default-route-advertise命令引入並發布缺省路由。
· 由於OSPFv3是基於鏈路狀態的路由協議,不能直接對發布的LSA進行過濾,所以隻能在OSPFv3引入路由時進行過濾,隻有符合條件的路由才能轉換成LSA發布出去。
· filter-policy export命令隻對本設備使用import-route引入的路由起作用。如果沒有配置import-route命令來引入其它外部路由(包括不同進程的OSPFv3路由),則filter-policy export命令失效。
本節主要介紹配置OSPFv3定時器、配置接口的DR優先級、忽略DD報文中的MTU檢查和禁止接口收發OSPFv3報文。
OSPFv3包括如下定時器:
· OSPFv3的報文定時器,可以調整OSPFv3網絡的收斂速度以及協議報文帶來的網絡負荷。
· LSA的延遲時間:在一些低速鏈路上,需要考慮接口傳送LSA的延遲時間。
· SPF定時器:通過調整SPF計算的延遲時間和抑製間隔時間,可以抑製由於網絡頻繁變化帶來的資源消耗問題。
對於廣播網,通過配置接口的DR優先級來影響DR/BDR的選擇。
如果要使OSPFv3路由信息不被某一網絡中的路由器獲得,可禁止在與該網絡相連的接口上發送OSPFv3報文。
在調整和優化OSPFv3網絡之前,需完成以下任務:
· 使能IPv6報文轉發功能
· 配置OSPFv3基本功能
表1-15 配置OSPF定時器
命令 |
說明 |
|
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置接口發送hello報文的時間間隔 |
ospfv3 timer hello seconds [ instance instance-id ] |
可選 缺省情況下,P2P、Broadcast網絡類型接口發送Hello報文的時間間隔的值為10秒 |
配置Poll定時器 |
ospfv3 timer poll seconds [ instance instance-id ] |
可選 缺省情況下,發送輪詢Hello報文的時間間隔為120秒 |
配置相鄰路由器間失效時間 |
ospfv3 timer dead seconds [ instance instance-id ] |
可選 缺省情況下,P2P、Broadcast網絡類型接口的OSPFv3鄰居失效時間為40秒 |
配置相鄰路由器重傳LSA的時間間隔 |
ospfv3 timer retransmit interval [ instance instance-id ] |
可選 缺省情況下,LSA的重傳時間間隔為5秒 |
配置接口的LSA傳輸延遲時間 |
ospfv3 trans-delay seconds [ instance instance-id ] |
可選 缺省情況下,接口的LSA傳輸延遲時間為1秒 |
退回係統視圖 |
quit |
- |
進入OSPFv3視圖 |
ospfv3 [ process-id ] |
- |
設置SPF定時器 |
spf timers delay-interval hold-interval |
可選 缺省情況下,delay-interval值為5秒,hold-interval值為10秒 當延遲時間和間隔時間都配置為0秒時,表示立即觸發SPF計算,可以加快收斂速度 |
· 相鄰路由器間失效時間的值不要設置得太小,否則鄰居很容易失效。
· 相鄰路由器重傳LSA時間間隔的值不要設置得太小,否則將會引起不必要的重傳。
表1-16 配置接口的DR優先級
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置接口的DR優先級 |
ospfv3 dr-priority priority [ instance instance-id ] |
可選 缺省情況下,接口的DR優先級為1 |
路由器接口的DR優先級將影響接口在選舉DR時所具有的資格,優先級為0的路由器不會被選舉為DR或BDR。
在LSA數量不多的情況下,沒有必要去檢查MTU大小,可以設置忽略DD報文中的MTU檢查,從而提高性能。
表1-17 忽略DD報文中的MTU檢查
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
忽略DD報文中的MTU檢查 |
ospfv3 mtu-ignore [ instance instance-id ] |
必選 缺省情況下,不忽略MTU檢查 |
表1-18 禁止接口收發OSPFv3報文
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPFv3視圖 |
ospfv3 [ process-id ] |
- |
禁止接口收發OSPFv3報文 |
silent-interface { interface-type interface-number | all } |
必選 缺省情況下,允許接口收發OSPFv3報文 |
· 不同的進程可以對同一接口禁止收發OSPFv3報文,但silent-interface命令隻對本進程已經使能的OSPFv3接口起作用,不對其它進程的接口起作用。
· 當運行OSPFv3協議的接口被配置為Silent狀態後,該接口的直連路由仍可以由同一路由器的其他接口通過Intra-Area-Prefix-LSA發布,但OSPFv3報文將被阻塞,接口上不會建立OSPFv3鄰居關係。這一特性可以增強OSPFv3的組網適應能力。
表1-19 配置鄰接狀態變化輸出開關
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPFv3視圖 |
ospfv3 [ process-id ] |
- |
配置鄰接狀態變化輸出開關 |
log-peer-change |
必選 缺省情況下,鄰接狀態變化輸出開關處於打開狀態 |
OSPFv3 GR特性和OSPFv3虛連接特性不同時支持,在配置了虛連接後將不能再配置GR特性。
GR(Graceful Restart,平滑重啟)是一種在協議重啟或主備倒換時保證轉發業務不中斷的機製。GR有兩個角色:
· GR Restarter:發生協議重啟或主備倒換事件且具有GR能力的設備。
· GR Helper:和GR Restarter具有鄰居關係,協助完成GR流程的設備。
支持OSPFv3的GR Restarter能力的設備主備倒換後,為了實現設備轉發業務的不中斷,它必須完成下列兩項任務:
· 重啟過程GR Restarter轉發表項保持穩定;
· 重啟流程結束後重建所有鄰居關係,重新獲取完整的網絡拓撲信息。
設備(GR Restarter)主備倒換後,首先向鄰居發送Grace LSA通告鄰居本設備進入GR;鄰居收到Grace-LSA後,如果支持GR Helper能力則進入Helper模式(此時該鄰居稱為GR Helper)。GR Restarter重新建立鄰居,GR Helper幫助GR Restarter進行LSDB的同步。同步完成之後,GR流程結束,進入正常的OSPFv3流程。這樣就能實現設備在主備倒換時轉發業務正常進行。
可以在GR Restarter設備上配置GR Restarter能力。
表1-20 配置GR Restarter
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPFv3視圖 |
ospfv3 [ process-id ] |
- |
使能GR能力 |
graceful-restart enable |
必選 缺省情況下,OSPFv3協議的GR Restarter能力處於關閉狀態 |
配置GR重啟時間間隔 |
graceful-restart interval interval-value |
可選 缺省情況下,OSPFv3協議的GR重啟間隔時間為120秒 |
可以在GR Helper設備上配置GR Helper能力。
表1-21 配置GR Helper
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPFv3視圖 |
ospfv3 [ process-id ] |
- |
使能helper能力 |
graceful-restart helper enable |
可選 缺省情況下,OSPFv3的GR Helper能力處於打開狀態 |
使能LSA嚴格檢查能力 |
graceful-restart helper strict-lsa-checking |
可選 缺省情況下,OSPFv3協議的GR Helper嚴格LSA檢查能力處於關閉狀態 |
BFD(Bidirectional Forwarding Detection,雙向轉發檢測)能夠為OSPFv3鄰居之間的鏈路提供快速檢測功能。當鄰居之間的鏈路出現故障時,加快OSPFv3協議的收斂速度。
OSPFv3使用BFD來進行快速故障檢測時,可以通過Hello報文動態發現鄰居,將鄰居地址通知BFD就開始建立會話。BFD會話建立前處於down狀態,此時BFD控製報文以不小於1秒的時間間隔周期發送以減少控製報文流量,直到會話建立以後才會以協商的時間間隔發送以實現快速檢測。
進行配置BFD之前,需要配置OSPFv3功能。
表1-22 配置OSPFv3與BFD聯動
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPFv3視圖 |
ospfv3 [ process-id ] |
- |
配置路由器的ID |
router-id router-id |
必選 |
退出OSPFv3視圖 |
quit |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
在接口上使能OSPFv3 |
ospfv3 process-id area area-id [ instance instance-id ] |
必選 缺省情況下,接口上沒有使能OSPFv3 |
在指定接口上使能OSPFv3 BFD |
ospfv3 bfd enable [ instance instance-id ] |
必選 缺省情況下,運行OSPFv3的接口未使能BFD功能 |
關於BFD的介紹和基本功能配置,請參見“可靠性配置指導”中的“BFD”。
從安全性角度來考慮,為了避免路由信息外泄或者對路由器進行惡意攻擊,OSPFv3提供基於IPsec的報文驗證功能。
路由器在發送的報文中會攜帶配置好的IPsec安全策略的SPI(Security Parameter Index,安全參數索引)值,接收報文時通過SPI值進行IPsec安全策略匹配:隻有策略匹配的報文才能接收;否則將不會接收報文,從而不能正常建立鄰居和學習路由。
OSPFv3支持在區域、接口和虛連接下配置IPsec安全策略。
· 當需要保護區域內的所有報文時,可以在區域下配置IPsec安全策略,此時區域內所有路由器都需要配置相同的IPsec安全策略。
· 當需要保護區域下某些接口的報文時,可以在接口下配置IPsec安全策略,此時直連鄰居接口需要配置相同的IPsec安全策略。
· 當需要保護虛連接的報文時,可以配置虛連接應用IPsec安全策略,此時虛連接上的兩個鄰居需要配置相同的IPsec安全策略。
當接口和接口所在區域均配置了IPsec安全策略時,接口下的策略生效;當虛連接和區域0均配置了IPsec安全策略時,虛連接的策略有效。
配置OSPFv3 IPsec安全策略之前,需要滿足下麵配置:
· 安全提議已經創建。
· IPsec安全策略已經創建。
關於安全提議和IPsec安全策略的詳細配置過程,請參見“安全配置指導”中的“IPsec”。
表1-23 配置OSPFv3 IPsec安全策略(區域)
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPFv3視圖 |
ospfv3 [ process-id ] |
- |
進入OSPF區域視圖 |
area area-id |
- |
配置OSPFv3區域應用IPsec安全策略 |
enable ipsec-policy policy-name |
必選 缺省情況下,OSPFv3區域沒有應用IPsec安全策略 |
表1-24 配置IPsec安全策略(接口)
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入接口視圖 |
interface interface-type interface-number |
- |
配置使能了OSPFv3的接口上應用IPsec安全策略 |
ospfv3 ipsec-policy policy-name [ instance instance-id ] |
必選 缺省情況下,使能了OSPFv3的接口上沒有應用IPsec安全策略 |
表1-25 配置IPsec安全策略(虛連接)
操作 |
命令 |
說明 |
進入係統視圖 |
system-view |
- |
進入OSPFv3視圖 |
ospfv3 [ process-id ] |
- |
進入OSPF區域視圖 |
area area-id |
- |
配置虛連接應用IPsec安全策略 |
vlink-peer router-id [ hello seconds | retransmit seconds | trans-delay seconds | dead seconds | instance instance-id | ipsec-policy policy-name ] * |
必選 缺省情況下,虛連接沒有應用IPsec安全策略 |
OSPFv3 IPsec安全策略隻支持手工配置方式,具體情況請參見“安全配置指導”中的“IPsec”。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後OSPFv3的運行情況,通過查看顯示信息驗證配置的效果。
表1-26 OSPFv3顯示和維護
操作 |
命令 |
顯示OSPFv3進程的概要信息 |
display ospfv3 [ process-id ] [ | { begin | exclude | include } regular-expression ] |
顯示OSPFv3接口信息 |
display ospfv3 interface [ interface-type interface-number | statistic ] [ | { begin | exclude | include } regular-expression ] |
顯示OSPFv3的LSDB信息 |
display ospfv3 [ process-id ] lsdb [ { external | grace | inter-prefix | inter-router | intra-prefix | link | network | nssa | router } [ link-state-id ] [ originate-router router-id ] | total ] [ | { begin | exclude | include } regular-expression ] |
顯示OSPFv3 LSDB中LSA的統計信息 |
display ospfv3 lsdb statistic [ | { begin | exclude | include } regular-expression ] |
顯示OSPFv3鄰居信息 |
display ospfv3 [ process-id ] [ area area-id ] peer [ [ interface-type interface-number ] [ verbose ] | peer-router-id ] [ | { begin | exclude | include } regular-expression ] |
顯示OSPFv3鄰居的統計信息 |
display ospfv3 peer statistic [ | { begin | exclude | include } regular-expression ] |
顯示OSPFv3路由表信息 |
display ospfv3 [ process-id ] routing [ ipv6-address prefix-length | ipv6-address/prefix-length | abr-routes | asbr-routes | all | statistics ] [ | { begin | exclude | include } regular-expression ] |
顯示OSPFv3區域拓撲信息 |
display ospfv3 [ process-id ] topology [ area area-id ] [ | { begin | exclude | include } regular-expression ] |
顯示OSPFv3虛連接信息 |
display ospfv3 [ process-id ] vlink [ | { begin | exclude | include } regular-expression ] |
顯示OSPFv3下一跳信息 |
display ospfv3 [ process-id ] next-hop [ | { begin | exclude | include } regular-expression ] |
顯示OSPFv3鏈路狀態請求列表信息 |
display ospfv3 [ process-id ] request-list [ { external | grace | inter-prefix | inter-router | intra-prefix | link | network | nssa | router } [ link-state-id ] [ originate-router ip-address ] | statistics ] [ | { begin | exclude | include } regular-expression ] |
顯示OSPFv3鏈路狀態重傳列表信息 |
display ospfv3 [ process-id ] retrans-list [ { external | grace | inter-prefix | inter-router | intra-prefix | link | network | nssa | router } [ link-state-id ] [ originate-router ip-address ] | statistics ] [ | { begin | exclude | include } regular-expression ] |
顯示接口收發OSPFv3報文的統計信息 |
display ospfv3 statistics [ | { begin | exclude | include } regular-expression ] |
顯示OSPFv3進程的GR狀態信息 |
display ospfv3 [ process-id ] graceful-restart status [ | { begin | exclude | include } regular-expression ] |
缺省情況下,以太網接口、VLAN接口及聚合接口處於DOWN狀態。如果要對這些接口進行配置,請先使用undo shutdown命令使這些接口處於UP。
· 所有的交換機都運行OSPFv3,整個自治係統劃分為3個區域。其中Switch B和Switch C作為ABR來轉發區域之間的路由。
· 要求將Area1配置為NSSA區域。
· 要求將Area2配置為Stub區域,減少通告到此區域內的LSA數量,但不影響路由的可達性。
圖1-2 配置OSPFv3區域組網圖
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3基本功能
# 配置Switch A。
<SwitchA> system-view
[SwitchA] ipv6
[SwitchA] ospfv3
[SwitchA-ospfv3-1] router-id 1.1.1.1
[SwitchA-ospfv3-1] area 1
[SwitchA-ospfv3-1-area-0.0.0.1] nssa
[SwitchA-ospfv3-1] quit
[SwitchA] interface vlan-interface 300
[SwitchA-Vlan-interface300] ospfv3 1 area 1
[SwitchA-Vlan-interface300] quit
[SwitchA] interface vlan-interface 200
[SwitchA-Vlan-interface200] ospfv3 1 area 1
[SwitchA-Vlan-interface200] quit
# 配置Switch B。
<SwitchB> system-view
[SwitchB] ipv6
[SwitchB] ospfv3
[SwitchB-ospfv3-1] router-id 2.2.2.2
[SwitchB-ospfv3-1] area 1
[SwitchB-ospfv3-1-area-0.0.0.1] nssa
[SwitchB-ospfv3-1] quit
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ospfv3 1 area 0
[SwitchB-Vlan-interface100] quit
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface200] ospfv3 1 area 1
[SwitchB-Vlan-interface200] quit
# 配置Switch C。
<SwitchC> system-view
[SwitchC] ipv6
[SwitchC] ospfv3
[SwitchC-ospfv3-1] router-id 3.3.3.3
[SwitchC-ospfv3-1] quit
[SwitchC] interface vlan-interface 100
[SwitchC-Vlan-interface100] ospfv3 1 area 0
[SwitchC-Vlan-interface100] quit
[SwitchC] interface vlan-interface 400
[SwitchC-Vlan-interface400] ospfv3 1 area 2
[SwitchC-Vlan-interface400] quit
# 配置Switch D。
<SwitchD> system-view
[SwitchD] ipv6
[SwitchD] ospfv3
[SwitchD-ospfv3-1] router-id 4.4.4.4
[SwitchD-ospfv3-1] quit
[SwitchD] interface vlan-interface 400
[SwitchD-Vlan-interface400] ospfv3 1 area 2
[SwitchD-Vlan-interface400] quit
# 查看Switch B的OSPFv3鄰居狀態。
[SwitchB] display ospfv3 peer
I - Intra area route, E1 - Type 1 external route, N1 – Type 1 NSSA route
IA - Inter area route, E2 – Type 2 external route, N2 – Type 2 NSSA route
* - Selected route
OSPFv3 Area ID 0.0.0.1 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
1.1.1.1 1 Full/Backup 00:00:38 Vlan200 0
# 查看Switch C的OSPFv3鄰居狀態。
[SwitchC] display ospfv3 peer
OSPFv3 Area ID 0.0.0.0 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
2.2.2.2 1 Full/Backup 00:00:39 Vlan100 0
OSPFv3 Area ID 0.0.0.2 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
4.4.4.4 1 Full/DR 00:00:38 Vlan400 0
# 查看Switch D的OSPFv3路由表信息。
[SwitchD] display ospfv3 routing
I - Intra area route, E1 - Type 1 external route, N1 – Type 1 NSSA route
IA - Inter area route, E2 – Type 2 external route, N2 – Type 2 NSSA route
* - Selected route
OSPFv3 Router with ID (4.4.4.4) (Process 1)
------------------------------------------------------------------------
*Destination: 2001::/64
Type : IA Cost : 2
NextHop : FE80::F40D:0:93D0:1 Interface: Vlan400
*Destination: 2001:1::/64
Type : IA Cost : 3
NextHop : FE80::F40D:0:93D0:1 Interface: Vlan400
*Destination: 2001:2::/64
Type : I Cost : 1
NextHop : directly-connected Interface: Vlan400
*Destination: 2001:3::/64
Type : IA Cost : 4
NextHop : FE80::F40D:0:93D0:1 Interface: Vlan400
(3) 配置Stub區域
# 配置Switch D的Stub區域。
[SwitchD] ospfv3
[SwitchD-ospfv3-1] area 2
[SwitchD-ospfv3-1-area-0.0.0.2] stub
# 配置Switch C的Stub區域,設置發送到Stub區域的缺省路由的開銷為10。
[SwitchC] ospfv3
[SwitchC-ospfv3-1] area 2
[SwitchC-ospfv3-1-area-0.0.0.2] stub
[SwitchC-ospfv3-1-area-0.0.0.2] default-cost 10
# 查看Switch D的OSPFv3路由表信息,可以看到路由表中多了一條缺省路由,它的開銷值為直連路由的開銷和所配置的開銷值之和。
[SwitchD] display ospfv3 routing
I - Intra area route, E1 - Type 1 external route, N1 – Type 1 NSSA route
IA - Inter area route, E2 – Type 2 external route, N2 – Type 2 NSSA route
* - Selected route
OSPFv3 Router with ID (4.4.4.4) (Process 1)
------------------------------------------------------------------------
*Destination: ::/0
Type : IA Cost : 11
NextHop : FE80::F40D:0:93D0:1 Interface: Vlan400
*Destination: 2001::/64
Type : IA Cost : 2
NextHop : FE80::F40D:0:93D0:1 Interface: Vlan400
*Destination: 2001:1::/64
Type : IA Cost : 3
NextHop : FE80::F40D:0:93D0:1 Interface: Vlan400
*Destination: 2001:2::/64
Type : I Cost : 1
NextHop : directly-connected Interface: Vlan400
*Destination: 2001:3::/64
Type : IA Cost : 4
NextHop : FE80::F40D:0:93D0:1 Interface: Vlan400
(4) 配置Totally Stub區域
# 配置Switch C,設置Area2為Totally Stub區域。
[SwitchC-ospfv3-1-area-0.0.0.2] stub no-summary
# 查看Switch D的OSPFv3路由表,可以發現路由表項數目減少了,其他非直連路由都被抑製,隻有缺省路由被保留。
[SwitchD] display ospfv3 routing
E1 - Type 1 external route, IA - Inter area route, I - Intra area route
E2 - Type 2 external route, * - Seleted route
OSPFv3 Router with ID (4.4.4.4) (Process 1)
------------------------------------------------------------------------
*Destination: ::/0
Type : IA Cost : 11
NextHop : FE80::F40D:0:93D0:1 Interface: Vlan400
*Destination: 2001:2::/64
Type : I Cost : 1
NextHop : directly-connected Interface: Vlan400
· Switch A的優先級為100,它是網絡上的最高優先級,所以Switch A被選為DR;
· Switch C的優先級為2,它是優先級次高的,被選為BDR;
· Switch B的優先級為0,這意味著它將無法成為DR;
· Switch D沒有配置優先級,取缺省值1。
圖1-3 配置OSPFv3的DR選擇組網圖
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3基本功能
# 配置Switch A,啟動OSPFv3,並設置其Router ID為1.1.1.1。
<SwitchA> system-view
[SwitchA] ipv6
[SwitchA] ospfv3
[SwitchA-ospfv3-1] router-id 1.1.1.1
[SwitchA-ospfv3-1] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ospfv3 1 area 0
[SwitchA-Vlan-interface100] quit
# 配置Switch B,啟動OSPFv3,並設置其Router ID為2.2.2.2。
<SwitchB> system-view
[SwitchB] ipv6
[SwitchB] ospfv3
[SwitchB-ospfv3-1] router-id 2.2.2.2
[SwitchB-ospfv3-1] quit
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ospfv3 1 area 0
[SwitchB-Vlan-interface100] quit
# 配置Switch C,啟動OSPFv3,並設置其Router ID為3.3.3.3。
<SwitchC> system-view
[SwitchC] ipv6
[SwitchC] ospfv3
[SwitchC-ospfv3-1] router-id 3.3.3.3
[SwitchC-ospfv3-1] quit
[SwitchC] interface vlan-interface 100
[SwitchC-Vlan-interface100] ospfv3 1 area 0
[SwitchC-Vlan-interface100] quit
# 配置Switch D,啟動OSPFv3,並設置其Router ID為4.4.4.4。
<SwitchD> system-view
[SwitchD] ipv6
[SwitchD] ospfv3
[SwitchD-ospfv3-1] router-id 4.4.4.4
[SwitchD-ospfv3-1] quit
[SwitchD] interface vlan-interface 100
[SwitchD-Vlan-interface100] ospfv3 1 area 0
[SwitchD-Vlan-interface100] quit
# 查看Switch A的鄰居信息,可以看到DR優先級(缺省為1)以及鄰居狀態,此時優先級相等,Router ID大者被選為DR,可以看到Switch D為DR,Switch C為BDR。
[SwitchA] display ospfv3 peer
OSPFv3 Area ID 0.0.0.0 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
2.2.2.2 1 2-Way/DROther 00:00:36 Vlan100 0
3.3.3.3 1 Full/Backup 00:00:35 Vlan100 0
4.4.4.4 1 Full/DR 00:00:33 Vlan100 0
# 查看Switch D的鄰居信息,可以看到Switch D和其他鄰居之間的鄰居狀態都為Full。
[SwitchD] display ospfv3 peer
OSPFv3 Area ID 0.0.0.0 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
1.1.1.1 1 Full/DROther 00:00:30 Vlan100 0
2.2.2.2 1 Full/DROther 00:00:37 Vlan100 0
3.3.3.3 1 Full/Backup 00:00:31 Vlan100 0
(3) 配置接口的DR優先級
# 配置Switch A的接口Vlan-interface100的DR優先級為100。
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ospfv3 dr-priority 100
[SwitchA-Vlan-interface100] quit
# 配置Switch B的接口Vlan-interface100的DR優先級為0。
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ospfv3 dr-priority 0
[SwitchB-Vlan-interface100] quit
# 配置Switch C的接口Vlan-interface100的DR優先級為2。
[SwitchC] interface vlan-interface 100
[SwitchC-Vlan-interface100] ospfv3 dr-priority 2
[SwitchC-Vlan-interface100] quit
# 顯示Switch A的鄰居信息,可以看到DR優先級已經更新,但DR/BDR並未改變。
[SwitchA] display ospfv3 peer
OSPFv3 Area ID 0.0.0.0 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
2.2.2.2 0 2-Way/DROther 00:00:38 Vlan100 0
3.3.3.3 2 Full/Backup 00:00:32 Vlan100 0
4.4.4.4 1 Full/DR 00:00:36 Vlan100 0
# 顯示Switch D的鄰居信息,可以看到Switch D仍然為DR。
[SwitchD] display ospfv3 peer
OSPFv3 Area ID 0.0.0.0 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
1.1.1.1 100 Full/DROther 00:00:33 Vlan100 0
2.2.2.2 0 Full/DROther 00:00:36 Vlan100 0
3.3.3.3 2 Full/Backup 00:00:40 Vlan100 0
(4) 重新進行DR/BDR選擇
# 將所有接口一次shutdown和undo shutdown,使OSPFv3進行DR/BDR的重新選舉。
# 查看Switch A的鄰居信息,可以看到Switch C為BDR。
[SwitchA] display ospfv3 peer
OSPFv3 Area ID 0.0.0.0 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
2.2.2.2 0 Full/DROther 00:00:31 Vlan100 0
3.3.3.3 2 Full/Backup 00:00:39 Vlan100 0
4.4.4.4 1 Full/DROther 00:00:37 Vlan100 0
# 查看Switch D的鄰居信息,可以看到Switch A為DR。
[SwitchD] display ospfv3 peer
OSPFv3 Area ID 0.0.0.0 (Process 1)
----------------------------------------------------------------------
Neighbor ID Pri State Dead Time Interface Instance ID
1.1.1.1 100 Full/DR 00:00:34 Vlan100 0
2.2.2.2 0 2-Way/DROther 00:00:34 Vlan100 0
3.3.3.3 2 Full/Backup 00:00:32 Vlan100 0
· Switch A、Switch B和Switch C位於Area 2內;
· Switch B上運行兩個OSPFv3進程:OSPFv3 1和OSPFv3 2。Switch B通過OSPFv3 1和Switch A交換路由信息,通過OSPFv3 2和Switch C交換路由信息;
· 在Switch B上配置OSPFv3進程2引入外部路由,引入直連路由和OSPFv3進程1的路由,並將引入的外部路由的缺省度量值設置為3,使得Switch C能夠學習到達1::0/64和2::0/64的路由,但Switch A不能學習到達3::0/64和4::0/64的路由。
圖1-4 配置OSPFv3引入外部路由組網圖
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3
# 在Switch A上啟動OSPFv3進程1。
<SwitchA> system-view
[SwitchA] ipv6
[SwitchA] ospfv3 1
[SwitchA-ospfv3-1] router-id 1.1.1.1
[SwitchA-ospfv3-1] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ospfv3 1 area 2
[SwitchA-Vlan-interface100] quit
[SwitchA] interface vlan-interface 200
[SwitchA-Vlan-interface200] ospfv3 1 area 2
[SwitchA-Vlan-interface200] quit
# 在Switch B上啟動兩個OSPFv3進程,進程號分別為1和2。
<SwitchB> system-view
[SwitchB] ipv6
[SwitchB] ospfv3 1
[SwitchB-ospfv3-1] router-id 2.2.2.2
[SwitchB-ospfv3-1] quit
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ospfv3 1 area 2
[SwitchB-Vlan-interface100] quit
[SwitchB] ospfv3 2
[SwitchB-ospfv3-2] router-id 3.3.3.3
[SwitchB-ospfv3-2] quit
[SwitchB] interface vlan-interface 300
[SwitchB-Vlan-interface300] ospfv3 2 area 2
[SwitchB-Vlan-interface300] quit
# 在Switch C上啟動OSPFv3進程2。
<SwitchC> system-view
[SwitchC] ipv6
[SwitchC] ospfv3 2
[SwitchC-ospfv3-2] router-id 4.4.4.4
[SwitchC-ospfv3-2] quit
[SwitchC] interface vlan-interface 300
[SwitchC-Vlan-interface300] ospfv3 2 area 2
[SwitchC-Vlan-interface300] quit
[SwitchC] interface vlan-interface 400
[SwitchC-Vlan-interface400] ospfv3 2 area 2
[SwitchC-Vlan-interface400] quit
# 查看Switch C的路由表信息。
[SwitchC] display ipv6 routing-table
Routing Table :
Destinations : 6 Routes : 6
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 3::/64 Protocol : Direct
NextHop : 3::2 Preference: 0
Interface : Vlan300 Cost : 0
Destination: 3::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 4::/64 Protocol : Direct
NextHop : 4::1 Preference: 0
Interface : Vlan400 Cost : 0
Destination: 4::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
(3) 配置OSPFv3引入外部路由
# 在Switch B上配置OSPFv3引入外部路由,,引入直連路由和OSPFv3進程1的路由。
[SwitchB] ospfv3 2
[SwitchB-ospfv3-2] default cost 3
[SwitchB-ospfv3-2] import-route ospfv3 1
[SwitchB-ospfv3-2] import-route direct
[SwitchB-ospfv3-2] quit
# 查看路由引入後Switch C的路由表信息。
[SwitchC] display ipv6 routing-table
Routing Table :
Destinations : 8 Routes : 8
Destination: ::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 1::/64 Protocol : OSPFv3
NextHop : FE80::200:CFF:FE01:1C03 Preference: 150
Interface : Vlan300 Cost : 3
Destination: 2::/64 Protocol : OSPFv3
NextHop : FE80::200:CFF:FE01:1C03 Preference: 150
Interface : Vlan300 Cost : 3
Destination: 3::/64 Protocol : Direct
NextHop : 3::2 Preference: 0
Interface : Vlan300 Cost : 0
Destination: 3::2/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: 4::/64 Protocol : Direct
NextHop : 4::1 Preference: 0
Interface : Vlan400 Cost : 0
Destination: 4::1/128 Protocol : Direct
NextHop : ::1 Preference: 0
Interface : InLoop0 Cost : 0
Destination: FE80::/10 Protocol : Direct
NextHop : :: Preference: 0
Interface : NULL0 Cost : 0
· Switch A、Switch B和Switch C既屬於同一自治係統,也屬於同一OSPFv3區域,通過OSPFv3協議實現網絡互連,並提供GR機製。
· Switch A作為GR Restarter,Switch B和Switch C作為GR Helper並且通過GR機製與Switch A保持帶外同步。
圖1-5 配置OSPFv3的GR組網圖
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3基本功能
# 配置Switch A,啟動OSPFv3,並設置其Router ID為1.1.1.1。
<SwitchA> system-view
[SwitchA] ipv6
[SwitchA] ospfv3 1
[SwitchA-ospfv3-1] router-id 1.1.1.1
[SwitchA-ospfv3-1] graceful-restart enable
[SwitchA-ospfv3-1] quit
[SwitchA] interface vlan-interface 100
[SwitchA-Vlan-interface100] ospfv3 1 area 1
[SwitchA-Vlan-interface100] quit
# 配置Switch B,啟動OSPFv3,並設置其Router ID為2.2.2.2。缺省情況下,Switch B的GR helper能力處於開啟狀態。
<SwitchB> system-view
[SwitchB] ipv6
[SwitchB] ospfv3 1
[SwitchB-ospfv3-1] router-id 2.2.2.2
[SwitchB-ospfv3-1] quit
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ospfv3 1 area 1
[SwitchB-Vlan-interface100] quit
# 配置Switch C,啟動OSPFv3,並設置其Router ID為3.3.3.3。缺省情況下,Switch C的GR helper能力處於開啟狀態。
<SwitchC> system-view
[SwitchC] ipv6
[SwitchC] ospfv3 1
[SwitchC-ospfv3-1] router-id 3.3.3.3
[SwitchC-ospfv3-1] quit
[SwitchC] interface vlan-interface 100
[SwitchC-Vlan-interface100] ospfv3 1 area 1
[SwitchC-Vlan-interface100] quit
(3) 檢驗配置效果
# 運行穩定後,在Switch A上主備倒換進入OSPFv3協議的GR進程。
· Switch A、Switch B和Switch C上運行OSPFv3,網絡層相互可達。
· 當Switch A和Switch B通過L2 Switch通信的鏈路出現故障時BFD能夠快速感知通告OSPFv3協議,並且切換到Switch C進行通信。
圖1-6 配置OSPFv3與BFD聯動組網圖
設備 |
接口 |
IPv6地址 |
設備 |
接口 |
IPv6地址 |
Switch A |
Vlan-int10 |
2001::1/64 |
Switch B |
Vlan-int10 |
2001::2/64 |
|
Vlan-int11 |
2001:2::1/64 |
|
Vlan-int13 |
2001:3::2/64 |
Switch C |
Vlan-int11 |
2001:2::2/64 |
|
|
|
|
Vlan-int13 |
2001:3::1/64 |
|
|
|
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3基本功能
# 配置Switch A,啟動OSPFv3,並設置其Router ID為1.1.1.1。
<SwitchA> system-view
[SwitchA] ipv6
[SwitchA] ospfv3
[SwitchA-ospfv3-1] router-id 1.1.1.1
[SwitchA-ospfv3-1] quit
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] ospfv3 1 area 0
[SwitchA-Vlan-interface10] quit
[SwitchA] interface vlan-interface 11
[SwitchA-Vlan-interface11] ospfv3 1 area 0
[SwitchA-Vlan-interface11] quit
# 配置Switch B,啟動OSPFv3,並設置其Router ID為2.2.2.2。
<SwitchB> system-view
[SwitchB] ipv6
[SwitchB] ospfv3
[SwitchB-ospf-1] router-id 2.2.2.2
[SwitchB-ospf-1] quit
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] ospfv3 1 area 0
[SwitchB-Vlan-interface10] quit
[SwitchB] interface vlan-interface 13
[SwitchB-Vlan-interface13] ospfv3 1 area 0
[SwitchB-Vlan-interface13] quit
# 配置Switch C,啟動OSPFv3,並設置其Router ID為3.3.3.3。
<SwitchC> system-view
[SwitchC] ipv6
[SwitchC] ospfv3
[SwitchC-ospfv3-1] router-id 3.3.3.3
[SwitchC-ospfv3-1] quit
[SwitchC] interface vlan-interface 11
[SwitchC-Vlan-interface11] ospfv3 1 area 0
[SwitchC-Vlan-interface11] quit
[SwitchC] interface vlan-interface 13
[SwitchC-Vlan-interface13] ospfv3 1 area 0
[SwitchC-Vlan-interface13] quit
(3) 配置BFD功能
# 在Switch A上使能BFD檢測功能,並配置BFD參數。
[SwitchA] bfd session init-mode active
[SwitchA] interface vlan-interface 10
[SwitchA-Vlan-interface10] ospfv3 bfd enable
[SwitchA-Vlan-interface10] bfd min-transmit-interval 500
[SwitchA-Vlan-interface10] bfd min-receive-interval 500
[SwitchA-Vlan-interface10] bfd detect-multiplier 7
[SwitchA-Vlan-interface10] return
# 在Switch B上使能BFD檢測功能,並配置BFD參數。
[SwitchB] bfd session init-mode active
[SwitchB] interface vlan-interface 10
[SwitchB-Vlan-interface10] ospfv3 bfd enable
[SwitchB-Vlan-interface10] bfd min-transmit-interval 500
[SwitchB-Vlan-interface10] bfd min-receive-interval 500
[SwitchB-Vlan-interface10] bfd detect-multiplier 6
(4) 檢查配置結果
下麵以Switch A為例,Switch B和Switch A類似,不再贅述。
# 顯示Switch A的BFD信息。
<SwitchA> display bfd session
Total Session Num: 1 Init Mode: Active
IPv6 Session Working Under Ctrl Mode:
Local Discr: 1441 Remote Discr: 1450
Source IP: FE80::20F:FF:FE00:1202(Switch A接口Vlan-interface10的鏈路本地地址)
Destination IP: FE80::20F:FF:FE00:1200(Switch B接口Vlan-interface10的鏈路本地地址)
Session State: Up Interface: Vlan10
Hold Time: /
# 在Switch A上查看2001:4::0/64的路由信息,可以看出Switch A和Switch B是通過L2 Swtich進行通信的。
<SwitchA> display ipv6 routing-table 2001:4::0 64 verbose
Routing Table :
Summary Count : 2
Destination : 2001:4:: PrefixLength : 64
NextHop : 2001::2 Preference : 10
IpPrecedence : QosLcId :
RelayNextHop : :: Tag : 0H
Neighbor : :: ProcessID : 0
Interface : Vlan-interface10 Protocol : OSPFv3
State : Active Adv Cost : 1
Tunnel ID : 0x0 Label : NULL
Age : 4538sec
Destination : 2001:4:: PrefixLength : 64
NextHop : 2001:2::2 Preference : 10
IpPrecedence : QosLcId :
RelayNextHop : :: Tag : 0H
Neighbor : :: ProcessID : 0
Interface : Vlan-interface11 Protocol : OSPFv3
State : Invalid Adv Cost : 2
Tunnel ID : 0x0 Label : NULL
Age : 4515sec
# 打開Switch A的調試開關。
<SwitchA> debugging bfd scm
<SwitchA> debugging bfd event
<SwitchA> debugging ospfv3 event bfd
<SwitchA> terminal debugging
# Switch B和二層交換機之間的鏈路發生故障後。可以看到Switch A能夠快速檢測Switch B的變化。
%Nov 5 11:37:43:062 2009 SwitchA BFD/5/BFD_CHANGE_FSM: Sess[FE80::20F:FF:FE00:1202/ FE80::20F:FF:FE00:1200,15/15,Vlan10,Ctrl], Sta: UP->DOWN, Diag: 1
%Nov 5 11:37:43:062 2009 SwitchA OSPFV3/5/OSPFv3_NBR_CHG: OSPFv3 1 Neighbor 2.2.2.2(Vlan-interface10) from Full to Down.
*Nov 5 11:37:43:062 2009 SwitchA RM/6/RMDEBUG: OSPFv3 OSPFv3-BFD: Message Type rcv BFD down, Connect Type direct-connect, Src IP Address FE80::20F:FF:FE00:1202, Dst IP Address FE80::20F:FF:FE00:1200.
*Nov 5 11:37:43:062 2009 SwitchA RM/6/RMDEBUG: OSPFv3 OSPFv3-BFD: Message Type delete session, Connect Type direct-connect, Src IP Address FE80::20F:FF:FE00:1202, Dst IP Address FE80::20F:FF:FE00:1200.
# 顯示Switch A的BFD信息。
查看Switch A的BFD信息,Switch A已取消與Switch B的鄰居關係,沒有任何輸出信息。
<SwitchA> display bfd session
# 在Switch A上查看2001:4/64的路由信息,可以看出Switch A和Switch B已經切換到Switch C進行通信。
<SwitchA> display ipv6 routing-table 2001:4::0 64 verbose
Routing Table :
Summary Count : 1
Destination : 2001:4:: PrefixLength : 64
NextHop : 2001:2::2 Preference : 10
IpPrecedence : QosLcId :
RelayNextHop : :: Tag : 0H
Neighbor : :: ProcessID : 0
Interface : Vlan-interface11 Protocol : OSPFv3
State : Active Adv Cost : 2
Tunnel ID : 0x0 Label : NULL
Age : 4610sec
· 所有的交換機都運行OSPFv3,整個自治係統劃分為2個區域。
· 要求配置IPsec安全策略對Switch A、Switch B和Switch C之間的OSPFv3報文進行有效性檢查和驗證。
圖1-7 配置OSPFv3 IPsec策略組網圖
(1) 配置各接口的IPv6地址(略)
(2) 配置OSPFv3基本功能
# 配置Switch A,啟動OSPFv3,並設置其Router ID為1.1.1.1。
<SwitchA> system-view
[SwitchA] ipv6
[SwitchA] ospfv3 1
[SwitchA-ospfv3-1] router-id 1.1.1.1
[SwitchA-ospfv3-1] quit
[SwitchA] interface vlan-interface 200
[SwitchA-Vlan-interface200] ospfv3 1 area 1
[SwitchA-Vlan-interface200] quit
# 配置Switch B,啟動OSPFv3,並設置其Router ID為2.2.2.2。
<SwitchB> system-view
[SwitchB] ipv6
[SwitchB] ospfv3 1
[SwitchB-ospfv3-1] router-id 2.2.2.2
[SwitchB-ospfv3-1] quit
[SwitchB] interface vlan-interface 100
[SwitchB-Vlan-interface100] ospfv3 1 area 0
[SwitchB-Vlan-interface100] quit
[SwitchB] interface vlan-interface 200
[SwitchB-Vlan-interface200] ospfv3 1 area 1
[SwitchB-Vlan-interface200] quit
# 在Switch C,啟動OSPFv3,並設置其Router ID為3.3.3.3。
<SwitchC> system-view
[SwitchC] ipv6
[SwitchC] ospfv3 1
[SwitchC-ospfv3-1] router-id 3.3.3.3
[SwitchC-ospfv3-1] quit
[SwitchC] interface vlan-interface 100
[SwitchC-Vlan-interface100] ospfv3 1 area 0
[SwitchC-Vlan-interface100] quit
(3) 配置OSPFv3 IPsec安全策略
# 配置Switch A。創建名為tran1的安全提議,報文封裝形式采用傳輸模式,安全協議采用ESP協議。創建一條安全策略policy001,協商方式為manual,配置SPI和密鑰。
[SwitchA] ipsec proposal tran1
[SwitchA-ipsec-proposal-tran1] encapsulation-mode transport
[SwitchA-ipsec-proposal-tran1] transform esp
[SwitchA-ipsec-proposal-tran1] esp encryption-algorithm des
[SwitchA-ipsec-proposal-tran1] esp authentication-algorithm sha1
[SwitchA-ipsec-proposal-tran1] quit
[SwitchA] ipsec policy policy001 10 manual
[SwitchA-ipsec-policy-manual-policy001-10] proposal tran1
[SwitchA-ipsec-policy-manual-policy001-10] sa spi outbound esp 12345
[SwitchA-ipsec-policy-manual-policy001-10] sa spi inbound esp 12345
[SwitchA-ipsec-policy-manual-policy001-10] sa string-key outbound esp abcdefg
[SwitchA-ipsec-policy-manual-policy001-10] sa string-key inbound esp abcdefg
[SwitchA-ipsec-policy-manual-policy001-10] quit
# 配置Switch B。創建名為tran1的安全提議,報文封裝形式采用傳輸模式,安全協議采用ESP協議;創建一條安全策略policy001,協商方式為manual,配置SPI和密鑰。創建名為tran2的安全提議,報文封裝形式采用傳輸模式,安全協議采用ESP協議;創建一條安全策略policy002,協商方式為manual,配置SPI和密鑰。
[SwitchB] ipsec proposal tran1
[SwitchB-ipsec-proposal-tran1] encapsulation-mode transport
[SwitchB-ipsec-proposal-tran1] transform esp
[SwitchB-ipsec-proposal-tran1] esp encryption-algorithm des
[SwitchB-ipsec-proposal-tran1] esp authentication-algorithm sha1
[SwitchB-ipsec-proposal-tran1] quit
[SwitchB] ipsec policy policy001 10 manual
[SwitchB-ipsec-policy-manual-policy001-10] proposal tran1
[SwitchB-ipsec-policy-manual-policy001-10] sa spi outbound esp 12345
[SwitchB-ipsec-policy-manual-policy001-10] sa spi inbound esp 12345
[SwitchB-ipsec-policy-manual-policy001-10] sa string-key outbound esp abcdefg
[SwitchB-ipsec-policy-manual-policy001-10] sa string-key inbound esp abcdefg
[SwitchB-ipsec-policy-manual-policy001-10] quit
[SwitchB] ipsec proposal tran2
[SwitchB-ipsec-proposal-tran2] encapsulation-mode transport
[SwitchB-ipsec-proposal-tran2] transform esp
[SwitchB-ipsec-proposal-tran2] esp encryption-algorithm des
[SwitchB-ipsec-proposal-tran2] esp authentication-algorithm sha1
[SwitchB-ipsec-proposal-tran2] quit
[SwitchB] ipsec policy policy002 10 manual
[SwitchB-ipsec-policy-manual-policy002-10] proposal tran2
[SwitchB-ipsec-policy-manual-policy002-10] sa spi outbound esp 54321
[SwitchB-ipsec-policy-manual-policy002-10] sa spi inbound esp 54321
[SwitchB-ipsec-policy-manual-policy002-10] sa string-key outbound esp gfedcba
[SwitchB-ipsec-policy-manual-policy002-10] sa string-key inbound esp gfedcba
[SwitchB-ipsec-policy-manual-policy002-10] quit
# 配置Switch C。創建名為tran2的安全提議,報文封裝形式采用傳輸模式,安全協議采用ESP協議。創建一條安全策略policy002,協商方式為manual,配置SPI和密鑰。
[SwitchC] ipsec proposal tran2
[SwitchC-ipsec-proposal-tran2] encapsulation-mode transport
[SwitchC-ipsec-proposal-tran2] transform esp
[SwitchC-ipsec-proposal-tran2] esp encryption-algorithm des
[SwitchC-ipsec-proposal-tran2] esp authentication-algorithm sha1
[SwitchC-ipsec-proposal-tran2] quit
[SwitchC] ipsec policy policy002 10 manual
[SwitchC-ipsec-policy-manual-policy002-10] proposal tran2
[SwitchC-ipsec-policy-manual-policy002-10] sa spi outbound esp 54321
[SwitchC-ipsec-policy-manual-policy002-10] sa spi inbound esp 54321
[SwitchC-ipsec-policy-manual-policy002-10] sa string-key outbound esp gfedcba
[SwitchC-ipsec-policy-manual-policy002-10] sa string-key inbound esp gfedcba
[SwitchC-ipsec-policy-manual-policy002-10] quit
(4) OSPFv3區域上應用IPsec安全策略
# 配置Switch A。
[SwitchA] ospfv3 1
[SwitchA-ospfv3-1] area 1
[SwitchA-ospfv3-1-area-0.0.0.1] enable ipsec-policy policy001
[SwitchA-ospfv3-1-area-0.0.0.1] quit
[SwitchA-ospfv3-1] quit
# 配置Switch B。
[SwitchB] ospfv3 1
[SwitchB-ospfv3-1] area 0
[SwitchB-ospfv3-1-area-0.0.0.0] enable ipsec-policy policy002
[SwitchB-ospfv3-1-area-0.0.0.0] quit
[SwitchB-ospfv3-1] area 1
[SwitchB-ospfv3-1-area-0.0.0.1] enable ipsec-policy policy001
[SwitchB-ospfv3-1-area-0.0.0.1] quit
[SwitchB-ospfv3-1] quit
# 配置Switch C。
[SwitchC] ospfv3 1
[SwitchC-ospfv3-1] area 0
[SwitchC-ospfv3-1-area-0.0.0.0] enable ipsec-policy policy002
[SwitchC-ospfv3-1-area-0.0.0.0] quit
[SwitchC-ospfv3-1] quit
(5) 檢驗配置結果
以上配置完成後,Switch A、Switch B和Switch C之間的數據流將被加密傳輸。
OSPFv3鄰居無法建立
如果物理連接和下層協議正常,則檢查接口上配置的OSPFv3參數,必須保證與相鄰路由器的參數一致,區域號相同。
相鄰的兩台路由器接口的網絡類型必須一致。若網絡類型為廣播網,則至少有一個接口的DR優先級應大於零。
(1) 使用display ospfv3 peer命令查看OSPFv3鄰居狀態。
(2) 使用display ospfv3 interface命令查看OSPFv3接口的信息。
(3) 檢查物理連接及下層協議是否正常運行,可通過Ping命令測試。若從本地路由器Ping對端路由器不通,則表明物理連接和下層協議有問題。
(4) 檢查OSPFv3定時器,在同一接口上失效時間應至少為Hello間隔時間的4倍。
(5) 如果網絡類型為廣播網,則至少有一個接口的DR優先級大於零。
OSPFv3不能發現其他區域的路由
應保證骨幹區域與所有的區域相連接。若一台路由器配置了兩個以上的區域,則至少有一個區域應與骨幹區域相連。骨幹區域不能配置成Stub區域。
在Stub區域內的路由器不能接收外部AS的路由。如果一個區域配置成Stub區域,則與這個區域相連的所有路由器都應將此區域配置成Stub區域。
(1) 使用display ospfv3 peer命令查看OSPFv3鄰居狀態。
(2) 使用display ospfv3 interface命令查看OSPFv3接口的信息。
(3) 使用display ospfv3 lsdb查看LSDB的信息是否完整。
(4) 使用display current-configuration configuration命令查看區域是否配置正確。若配置了兩個以上的區域,則至少有一個區域與骨幹區域相連。
(5) 如果某區域是Stub區域,則該區域中的所有路由器都要配置stub命令。
(6) 如果配置了虛連接,使用display ospf vlink命令查看鄰居狀態是否正常。
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!