這裏以類型5 LSA的生成爲相同的LS標識算法,根據RFC2328中附錄E得出redis
RFC2328中附錄E中對生成LSID的算法說明(前提是如上圖多條相同網絡位都是在OSPF同一個ADV Router所生成的類型5 LSA)
當如上圖,R7(通告者爲R7:7.7.7.7它本身)生成外部路由其LS標識爲10.0.0.0(假設爲NA),該路由器會檢查本地的LSDB內是否有相同的NA的類型5 LSA的LS標識,若是沒有則終止該算法。若是在數據庫檢查新生成的類型5 LSA在數據庫裏有一樣LS標識,那麼就會檢查新生成的類型5 LSA與原來的類型5 LSA檢查誰的掩碼精度更長(NM1爲第一條生成類型5 LSA,NM2爲後生成)算法
相同LS標識狀況1:NM1要比NM2的掩碼長度要長(掩碼更精確),那麼路由器將NM1 LSA的LS標識修改成(原來LS標識+NM1的反掩碼),經過把NM1修改成新標識的LS標識(這裏說的是從新生成該LSA更改LS標識),NM2的LS長度仍是網絡地址,這樣就不重疊LS標識了,這裏有一個LSA的序列號會被增長
假設10.0.0.0/24爲NM1先生成 ,10.0.0.0/16爲NM2後生成,那麼將NM1的LS標識修改成10.0.0.255(原LSID+NM1的反掩碼),NM2的LS標識爲10.0.0.0不變,若是有後面還有相同的LS同樣,執行同樣的結果,進行更新計算,具備相同的LS標識誰的掩碼精度更準確就修改精確度更高的LSA的LS標識,數據庫
相同LS標識狀況2:NM2要比NM1的掩碼長度要長,那麼路由器將NM2的LS標識修改成(LS標識+NM2的反掩碼),也就是NM2的LS標識爲10.0.0.255的結果,注意該兩條LSA都會被泛洪出去。
這裏用一個實驗更直觀的理解,上面是比較邏輯和廢話多的解釋網絡
Lab說明
圖中R5和R6還有R7互相創建OSPF鄰居關係,R5與R6爲OSPF中的區域0鄰居關係,R6與R7爲OSPF中的區域1鄰居關係,如今假設R7有三條外部路由(Static or others into OSPF domain)進到OSPF域內,路由前綴按照順序分別是,10.0.0.0/24,10.0.0.0/16,10.0.0.0/8,這裏咱們就在R7上經過寫靜態方式引入OSPF域內dom
————————————————————————————————————————————————————
R7的關鍵配置ide
router ospf 1 router-id 7.7.7.7 redistribute static subnets tag 70 network 7.7.7.7 0.0.0.0 area 1 network 10.1.67.0 0.0.0.255 area 1
ip route 10.0.0.0 255.255.255.0 null 0
##外部路由就用靜態路由來模擬,這裏先按順序將第一條路由into OSPF域內,看看下面這張圖的效果是什麼吧,該條LSA的LSID爲10.0.0.0,掩碼爲255.255.255.0,接下來在按照上圖拓撲圖將次日沒有第一條更精細的路由充分佈到OSPF域內3d
ip route 10.0.0.0 255.255.0.0 null 0
##這裏是按照拓撲圖的順序將第二條靜態充分佈到OSPF域內,在來看看這兩條充分佈到OSPF域內的效果把,這裏能夠看到第一條的路由的LSID變成了10.0.0.255這裏上面有算法,來看下LSA的變化狀況吧,1.10.0.0.0/24的LSID爲10.0.0.255,掩碼爲255.255.255.0,序列號爲xx1,2.10.0.0.0/16的LSID爲10.0.0.0,掩碼爲255.255.0.0,序列號被增長了一位變成了80000002。每次增長新的LSA若是LSID與原來的數據庫中的重疊,就比較掩碼更精確的LSA修改其LSID號,並從新泛洪更新code
這裏能夠看到RFC2328中的附錄E中也是這個例子的執行結果router