關於OSPF NSSA區域metric計算細節

2021-09-21 11:11:44 字數 1560 閱讀 7792

technorati 標籤: 

路由,ospf,

nssa,

metric,

route

1, 問題拓撲:

2, 環境描述:

r1,r2,r3作為ospf的nssa區域,建立ospf鄰居.

r2作為nssa區域的abr, 將外部路由4.4.4.0 重分發到ospf nssa area 1裡面去。讓內部r1和r3都可以學習到到外部4.4.4.0的路由通過ospf.

路由器2的配置為:

router ospf 1

log-adjacency-changes

area 1 nssa no-summary

redistribute connected metric-type 1 subnets

network 192.168.1.0 0.0.0.255 area 1

network 192.168.100.0 0.0.0.255 area 1

3, 問題描述:

r3路由器,在r3上面show ip route 會發現,到達4.4.4.0網段有兩個下一跳:192.168.1.1和192.168.2.2,竟然變成負載均衡了. 而客戶不想要負載均衡的方式.

下面是在r3上面show 的到4.4.4.0的路由。

而客戶也不能理解為什麼r3上面到4.4.4.0為什麼會變成負載均衡, 客戶理解應該是:

r3: 到4.4.4.0 , 只有一條路由,下一跳是192.168.1.1.

4,問題原因以及原理:

問題出在r2配置上面. 首先,在r2這個abr上面。

具體原理如下:

對於r3來說,nssa區域計算metric的特性如下:

5, 要實現非負載均衡的解決方案是將abr r2上面的loopback介面network進ospf區域.

即可解決這個問題.最後實現的效果就是r3到4.4.4.0這個外部路由的路由條目只有一條,並且是最優秀路由,原理如下:

r2上面配置修改:

router ospf 1

log-adjacency-changes

area 1 nssa no-summary

redistribute connected metric-type 1 subnets

network 2.2.2.2 0.0.0.0 area 1

network 192.168.1.0 0.0.0.255 area 1

network 192.168.100.0 0.0.0.255 area 1

!最後在r3上面,show ip route 4.4.4.0可以發現,只有一條路由到4.4.4.0,並且是最優路由,

另外一條因為metric大,根本就不會裝到路由表中去:

圖中可以看到,r3上面show ip route 4.4.4.0的metric是22.

實際上就是下面圖中20+2的結果:

那麼看看另外一條路徑的metric到底是多少?

這裡可以看到是23.

20+(r3到r1的metric=1)+(r1到r2的metric=1)+(r2 loopback本身還有一跳1)=23.

最終達到了不進行負載均衡的目的.

關於靜態儲存區域,堆,棧

有關動態物件建立 一般來說,編譯器將記憶體分為三部分 靜態儲存區域 棧 堆。靜態儲存區主要儲存 全域性變數和靜態變數,棧儲存呼叫函式相關的變數 位址等,堆儲存動態生成的變數,在c中是指由malloc,free運算產生釋放的儲存空間,在c 中 就是指new和delete運算子作用的儲存區域。1 靜態儲...

關於變數儲存區域問題

在變數的生存作用域時,不妨這裡以c語言為所用語言吧 乙個函式內的區域性變數在函式執行完畢後會被銷毀。比如 不太會在csdn上排版 見諒 1 int func int main 如果main函式中沒有使用到func函式的返回值,那麼func中的a變數應該在func右 時就被銷毀,而main中使用到了,...

關於靜態儲存區域 棧 堆

有關動態物件建立 一般來說,編譯器將記憶體分為三部分 靜態儲存區域 棧 堆。靜態儲存區主要儲存全域性變數和靜態變數,棧儲存呼叫函式相關的變數 位址等,堆儲存動態生成的變數,在c中是指由malloc,free運算產生釋放的儲存空間,在c 中就是指new和delete運算子作用的儲存區域。昨天才看ppt...