《分享》OSPF (Open Shortest Path First) |  |
*OSPF is available on platforms with an Advanced Edge or Core license.
OSPF為Link State Protocol,Link是指router向外連結的介面,而State是指此router介面的特性及和其相鄰router間之關係,
其中最重要的,就是兩個 router 間的距離。
在OSPF中,router間可以互相傳送資訊給對方,
每個router在收集了足夠資訊之後,就可以建立起自己的「網路地圖」(Routing Table),進而知道要往哪個方向走才到得了目的地。
兩router間的距離我們可用Metric (或Cost)來量度,而Metric的定義如下,

也就是說,頻寬越大的線路其Metric越小,可視為距離越近。
去到目的網段時,若有多條路由可選,也會因Metric的不同,而在routing上有著先後順序的不同。
相較於RIP純粹以hop conut來計算,且每條路徑不能超過15顆router的限制,
OSPF有著較複雜的計算、具有較大彈性,可適用於大型網路。
而這一整個大型網路可以把它看成一個domain,也就是OSPF概念中的自治系統(Autonomous System)。
但在較大型的自治系統中,其計算的速度會因要交換的訊息過多,導致收斂太慢。
為解決此問題,OSPF採用hierarchical(層級式)的網路架構,
先依照網路本身的區域性,將之劃分為幾個較小的Area,在Area內部router會交換彼此間完整訊息,
而多個Area之間再採用summarization(摘要)的方式來交換資訊。
Area內部的router叫做IR(Internal Router),
而位在區域網路邊界,負責與其它區域網路交換摘要訊息的router叫做ABR(Area Border Router)。
在OSPF的定義中,Area又分為以下幾種不同類型。
- Backbone Area骨幹區域
在OSPF網路中,只要有大於一個的Area,就必需有一個Backbone Area,每一個Area的ABR於此區域交換其它區域的摘要。
在XOS的規範上,Backbone Area預設就存在,且無法被刪除或修改;Backbone Area被定義為Area 0.0.0.0。
- Stub Area末稍區域
Stub Area是一種最末端的區域,只和一個Area連接(Backbone Area)。
外部的路由訊息無法傳入此Stub Area,用以減少router的資源消耗。
建立Stub Area的指令如下。
create ospf area <area-identifier>
configure ospf area <area-identifier> stub [summary | nosummary] stub-default-cost <cost>
- Not-So-Stubby-Areas次末稍區域
次末稍區域跟末稍區域很類似,增加了以下能力,
包括外部路由訊息可以傳入此區域,得到的外部路由訊息可再傳遞給其它區域(包含Backbone Area)。
建立NSSA的指令如下。
create ospf area <area-identifier>
configure ospf area <area-identifier> nssa [summary | nosummary] stub-default-cost <cost> {translate}
- Normal Area一般區域
非Backbone Area、Stub Area及NSSA的區域。
建立Normal Area的指令如下。(其實就是不再加上stub/nssa等參數)
create ospf area <area-identifier>
在架構OSPF時,可依以下9個步驟來進行。
- Attach the physical connections.
- Create the VLANS.
- Configure the VLAN IP address
- Add ports, tagged or untagged.
- Enable IP Forwarding.
- Configure the RouterID for each router. (Recommended)
configure ospf routerid [automatic | <router-identifier>] 若採用automatic,則switch上最大的IP address會被拿來做為router-identifier使用。
- Create OSPF Areas as required.
(Area 0.0.0.0 is already pre-configured on the switch.)
create ospf area <area-identifier>
configure ospf area <area-identifier> {Parameter}
- Configure the VLANs for OSPF and associate them with the correct area.
configure ospf add vlan [all | <VLAN-Name>] area <area-identifier> {link-type [Auto | Broadcast | Point-to-point | Passive]}
- Enable OSPF globally on the switch.
enable ospf
我們回過頭來看看Area與VLAN間的link-type。configure ospf add vlan [all | <VLAN-Name>] area <area-identifier> {link-type [Auto | Broadcast | Point-to-point | Passive]}

為什麼要特別來看link-type?
那是因為Advanced Edge license下的router只支援4個active OSPF VLAN interface (neighbor);
但若是passive interface,則沒有限制。
所以Advanced Edge license的router可透過 Passive 的方式來設定哪些VLAN要加入OSPF,而哪些又不要;
這樣可以滅少佔用OSPF neighbor的數量。
若要修改OSPF交換訊息的各種時間參數,可用以下指令。(非標準的設定會影響OSPF的可靠性,請勿隨意修改!)
configure ospf area <area-identifier> timer <retransmit-interval> <transit-delay> <hello-interval> <dead-interval> {<wait-timer-interval>}
configure ospf virtual-link <router-identifier> <area-identifier> timer <retransmit-interval> <transitdelay> <hello-interval> <dead-interval>
configure ospf vlan [<vlan-name> | all] timer <retransmit-interval> <transit-delay> <hello-interval> <dead-interval> {<wait-timer-interval>}
retransmit-interval預設值是5秒
transit-delay預設值是1秒
hello-interval預設值是10秒
dead-interval預設值是40秒
wait-timer-interval沒有預設值。若要設定,需大於hello-interval。
跟RIP一樣,OSPF也可以將其它種類的路由導入OSPF,其指令如下。
enable ospf export [bgp | direct | e-bgp | i-bgp | rip | static | isis | isis-level-1 | isis-level-1-external | isis-level-2 | isis-level-2-external] [cost <cost> type [ase-type-1 | ase-type-2] {tag <number>} | <policy-map>]
停止將其它種類的路由導入OSPF,其指令如下。
disable ospf export [bgp | direct | e-bgp | i-bgp | rip | static | isis | isis-level-1| isis-level-1-external | isis-level-2 | isis-level-2-external]
查看OSPF Area配置,其指令如下。
show ospf area {detail | <area-identifier>}
查看OSPF Interface配置,其指令如下。
show ospf interfaces {vlan <vlan-name> | area <area-identifier> | enabled}
查看link-state database,其指令如下。
show ospf lsdb {detail | stats} {area [<area-identifier> | all]} {{lstype} [<lstype> | all]} {lsid <lsidaddress>{<lsid-mask>}} {routerid <routerid-address> {<routerid-mask>}} {interface[[<ipaddress>{<ip-mask>} | <ipNetmask>] | vlan <vlan-name>]}
參考資料
路由協定及網路架構研析
How to Configure OSPF Extreme Network Switch

♥順子老婆的網拍,請多關照~
If you don't like something, change it.
If you can't change it, change your attitude.
Don't complain!
|