前文我們瞭解了IS-IS鄰居建立過程、LSDB同步、拓撲計算和路由的形成;回顧請參考https://www.cnblogs.com/qiuhom-1874/p/15265698.html;今天我們來聊一聊IS-IS路由滲透和介面開銷相關話題;

  IS-IS路由滲透

  所謂路由滲透,其實就是路由注入的一種操作;預設情況下在IS-IS多區域環境中,L1區域的所有路由會被L1-2路由器掛載至L2區域,即骨幹區域的路由器有整個網路的明細路由;但對於L1區域來說,骨幹區域的路由不會被L1區域路由器學習到;那麼問題來了,L1區域想要出去它是怎麼出去的呢?對於L1的路由器來說,它們想要和骨幹區域網路通訊,依靠的是L1-2傳送的一條ATT置為1的LSP,對應L1區域中的路由器收到該LSP以後,會自動產生一條預設路由,其下一跳指向L1-2路由器(對於和L1-2直連的路由器是這樣的,類似ospf裡的5類LSA;但對於不是和L1-2路由器直連的路由器,它們收到L1 -2傳送的ATT置為1的LSP會根據拓撲情況自動計算下一跳);即L1的路由器和骨幹區域網路通訊依靠預設路由進行;換句話說,L1想要和骨幹網路通訊,它的資料包會發送至L1區域最近的L1-2路由器上,然後由L1-2路由器根據目標地址進行轉發;IS-IS路由滲透是指將骨幹區域路由注入至非骨幹區域的操作;

  為什麼要路由滲透呢?

  IS-IS次優路由產生

  提示:如上圖所示,RTA想要訪問10.0.0.1/24,根據IS-IS路由的規則,在L1區域路由器想要和骨幹區域網路通訊,它會將資料包傳送給最近的L1-2路由器;對於上圖來說,RTA找到最近,路由最優到達L1-2的路由器是RTB;但對於RTB到達骨幹RTD來講,開銷也是最大的;整體來說RTA訪問10.0.0.1/24網路整體開銷要大於RTA走RTA-->RTC-->RTD;這樣一來次優路由就產生了;怎麼解決次優路由呢?很顯然我們要把RTA訪問10.0.0.1/24網路的鏈路開銷告訴給RTA,這樣RTA根據明細路由來選路就可以避免次優路由;即把10.0.0.1/24網路的路由從骨幹區域注入至L1區域,讓L1區域路由器學習到達10.0.0.1/24網路的路由;如下所示

  提示:當RTA學習到達10.0.0.1/24網路的路由以後,對應整個鏈路的開銷就很明瞭,所以RTA和10.0.0.1/24網路通訊就會根據鏈路開銷進行選路,而不會再走預設路由,從而避免了次優路徑;

  實驗:如下拓撲,配置IS-IS

  R1的配置

sys
sys R1
int g0/0/0
ip add 12.0.0.1 24 isis 1
net 2000.0000.0000.0001.00
is-le level-1
int g0/0/0
isis en 1

  R2的配置

sys
sys R2
int g0/0/0
ip add 12.0.0.2 24
int g0/0/1
ip add 23.0.0.2 24 isis 1
net 2000.0000.0000.0002.00
is-le level-1
int g0/0/0
isis en 1
int g0/0/1
isis en 1

  R3的配置

sys
sys R3
int g0/0/0
ip add 23.0.0.3 24
int g0/0/1
ip add 34.0.0.3 24 isis 1
net 2000.0000.0000.0003.00
is-le level-1-2
int g0/0/0
isis en 1
int g0/0/1
isis en 1

  R4的配置

sys
sys R4
int g0/0/0
ip add 34.0.0.4 24
int lo 1
ip add 4.4.4.4 32 isis 1
net 1000.0000.0000.0004.00
is-le level-2
int g0/0/0
isis en 1
int lo 1
isis en 1

  驗證:檢視R4的路由表,看看是否學習到12和23網路的路由呢?

  提示:可以看到R4能夠學習到12和23網段路由;

  驗證:在R1和R2上檢視路由表資訊,看看R1和R2是否能夠學習到R4的lo介面路由呢?

  提示:可以看到在R1和R2上並沒有學習到達R4 lo介面的路由,但通過isis它們的路由表裡產生了一條預設路由;

  驗證:檢視R3的LSDB,看看是否有自己產生的ATT置為1的LSP資料?

  提示:可以看到R3在L1區域LSDB中產生了一條ATT置為1的LSP;

  在L1-2路由器(R3上)將L2路由滲透至L1

  提示:上述命令表示把L2路由匯入至L1區域;這裡需要主要在isis中,只有L1-2路由器擁有L1和L2的lsdb,所以路由滲透也只能在L1-2路由器上做;

  驗證:在R1或R2上檢視路由表,看看對應R1或R2是否學習到L2的明細路由呢?

  提示:可以看到對應R1能夠學習到L2骨幹區域裡所有路由,並且都自動計算出對應路由的開銷;通常情況下,我們不會將骨幹區域路由全部注入至非骨幹區域,如果我們需要注入部分路由到非骨幹區域,則還需要做路由策略;

  IS-IS開銷

  IS-IS開銷型別有三種,分別是介面開銷、全域性開銷和自動計算開銷;其優先順序順序為介面開銷>全域性開銷>自動計算開銷;所謂介面開銷是指為單個介面設定開銷,生效範圍是單個介面;全域性開銷是為所有介面設定開銷,生效範圍是所有介面;自動計算開銷是是指根據介面頻寬自動計算開銷;對於IS-IS來講開銷取值型別主要分兩種,分別是narrow和wide;narrow取值範圍是1-63;wide取值為1-16777215;

  IS-IS開銷型別

  提示:上述圖片是描述開銷型別和接收、傳送開銷型別;如開銷型別為narrow,即接收和傳送的開銷取值範圍也都是narrow;如果開銷型別為wide,即接收和傳送的開銷取值型別也是wide;如果開銷型別為compatible(相容narrow和wide),則接收和傳送的開銷取值型別即可以是narrow也可以是wide;如果開銷型別為narrow-compatible(相容narrow),則接收可以相容wide和narrow,傳送的介面開銷型別只能是narrow;如果開銷型別為wide-compatible(相容wide),則接收可以相容wide和narrow,但傳送開銷型別只能是wide;

  IS-IS介面頻寬區間開銷取值

  提示:只有當開銷型別為wide或wide-compatible時,使用命令bangdwith-reference配置的頻寬參考值才有效,此時各介面的開銷值=(bandwith-reference/介面頻寬值)×10;如果開銷型別為narrow/narrow-compatible或compatible時,各個介面的開銷至根據上面對錶格確定;

  配置ISIS介面開銷

  提示:預設isis開銷為10,型別為narrow,所以取值範圍是1-63;

  驗證:檢視R1的g0/0/0介面開銷

  提示:可以看到對應R1的g0/0/0介面開銷變為了20;

  配置ISIS全域性開銷

  提示:全域性開銷需要在isis程序下配置,配置全域性開銷以後,對應所有介面都是全域性開銷配置的值,除非介面下配置了介面開銷;

  更改開銷型別

  提示:更改開銷型別,可能引起鄰居關係震盪;

  配置ISIS自動計算開銷

  提示:自動計算開銷通常配置頻寬參考值來計算,預設頻寬參考值為100M,自動開銷計算公式為介面開銷=(頻寬參考值/介面頻寬)×10;因為預設開銷型別為narrow,取值範圍是1-63,這個開銷取值範圍太小,不適合上述公式,所以上述公式只用於開銷型別為wide或wide-compatible型別上述公式才會生效;

  驗證:檢視介面頻寬

  提示:可以看到現在介面開銷就變為了100;因為我們把頻寬參考值修改為1000M,除以介面頻寬1000M再乘以10,得到的開銷就是100;上述修改開銷都是修改的介面傳送的開銷;其接收開銷計算和ospf一樣,接收方向介面開銷累加;