ospf(open shortest path first)是開放式最短路徑優先協議,是IETF(互聯網任務工程小組)定義的一種基鏈路狀態的內部網關路由協議。在這裏重點理解兩個名詞,一個是鏈路狀態,另外一個是內部網關。php
所謂的鏈路狀態的是與rip相對的,rip是距離矢量協議,rip向外發佈傳輸的是路由表,而ospf向外傳輸並非路由表而是對某一條鏈路狀態的描述,因此稱爲鏈路狀態協議。數據庫
所謂的內部網關是基於BGP來說是的,BGP是外部網關協議,好比咱們於美國的路由器鏈接,電信的路由給聯通的路由鏈接可能會須要BGP,但若是是電信內部的話就頗有可能使用內部網關協議,最好用,最經常使用的內部網關協議就是ospf。ide
特性l OSPF是分區域的,核心區域是0,其他的區域是普通區域,所謂的普通區域必須接入到核心區域當中。3d
l 平時只發hello包,10秒一個hello報文,下面會抓包進行驗證。創建和維持鄰居關係,4倍的hello時間尚未給我發hello包,我就認爲你掛了,同時把從你身上學來的路由信息所有刪除rest
l 不只有hello包,還有其他的四種包,這四種包在鏈路創建之初會發送,發送完以後就不發送了,只依靠hello包來維持鏈接,那四個包在NP階段會詳細介紹。code
思路&配置&查看&刪除思路:blog
l 首先給ospf分配一個進程號,進程號隨意。接口
l 給ospf定義一個區域,一般單區域都是使用區域0進程
l 通知與使能網段或網址,使用反掩碼,注意與rip的不一樣,掩碼可自行定義,不會自動選擇。ip
l 指定認證的密碼(可選)
配置:
[R1]ospf 1把ospf運行起來,後面的是進程號,同一鏈路進程號能夠不一樣,通常都是用1. [R1-ospf-1]area 0 定義一個區域,在單區域的配置時通常都是使用0區域。 [R1-ospf-1-area-0.0.0.0]network 10.0.1.0 0.0.0.0 #接反掩碼,0是精確匹配 [R1-ospf-1-area-0.0.0.0]network 10.0.123.1 0.0.0.0 #子網掩碼是根據咱們定義的反掩碼決定的,並非與rip同樣自動根據主類識別,就像這裏同樣可直接宣告IP [R1-ospf-1-area-0.0.0.0] authentication-mode simple plain cba-123指定認證的模式是明文密碼是huawei
查看:
[R1]display current-configuration configuration ospf 查看內存當中關於ospf的配置 <R1>dis ospf peer brief #查看鄰居表
最下面的兩行的含義就是經過g0/0/0接口發現了兩個鄰居,10.0.2.2和10.0.3.3,這裏要注意,這是的鄰居是鄰居的ID而不是鄰居的接口的IP。
在第一行還能夠看到ospf的進程號是1,並且路由器的ID是10.1.123.1(標示做用)
<R1>dis ospf 1 lsdb #查看鏈路狀態數據庫
注意,這裏的鏈路狀態信息只是簡略信息,其實還有很是詳細的信息。ospf的數據庫纔是ospf的精髓所在。
<R1>dis ip routing-table #查看路由表
重置ospf進程和靜默接口重置ospf進程就至關於把ospf重啓,爲何要重啓呢?由於在咱們抓包的時候,若是想要抓到除hello包以外的包,就只能在ospf進程剛剛啓動的時候才能抓的到,因此咱們能夠經過重啓ospf來抓包。
<R1>rest ospf process #重啓ospf進程
ospf儘管比rip要高級不少,可是它仍然沒法區分本身鏈接的是路由器仍是PC,與RIP相同,運行了ospf的路由也會向不是路由的方向發送ospf報文,這不必,因此關閉就好,還節省帶寬。
slient-interface e0/0/0 #注意在是進行到ospf進程裏面再使用此命令