HCNP Routing&Switching之IS-IS報文結構和類型


  前文我們了解了IS-IS動態路由協議基礎相關話題,回顧請參考https://www.cnblogs.com/qiuhom-1874/p/15249328.html;今天我們來聊一聊IS-IS動態路由協議的報文結構和類型相關話題;

  IS-IS報文結構

  提示:IS-IS動態路由協議是封裝在數據鏈路層之上,主要由IS-IS頭部和IS-IS可變長字段CLVs組成;其中IS-IS頭部里面又分為通用頭部和專用頭部;

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

  R1的配置

sys
sys R1
int g0/0/0
ip add 172.16.10.1 24

isis 1
net 10.0000.0000.0001.00
is-le level-1
int g0/0/0
isis en 1
View Code

  提示:在R1上g0/0/0接口上啟用isis以后,對應isis進程就正常運行了;

  在R1上抓包,看看ISIS數據包結構

  提示:可以看到在R1上能夠正常抓到ISIS L1類型的hello包,其中hello包里有通用頭部和專用頭部,對應專用頭部里又有可變長字段;

  R2的配置

sys
sys R2
int g0/0/0
ip add 172.16.10.2 24
int g0/0/1
ip add 192.168.11.2 24

isis 1
net 10.0000.0000.0002.00
is-le level-1-2
int g0/0/0
isis en 1
int g0/0/1
isis en 1
View Code

  驗證:在R1或R2上查看ISIS鄰居信息

  R3的配置

sys
sys R3
int g0/0/0
ip add 192.168.11.3 24

isis 1
net 11.0000.0000.0003.00
is-le level-2
int g0/0/0
isis en 1
View Code

  在R2上抓包看看對應報文結構

  提示:可以看到在R2的g0/0/0口可以抓到L1的hello包和L2的hello包,他們的專用hello包里都是leve1 and 2;

  專用包頭字段解釋

  提示:通用頭部里每個字段都是1字節;Intra Domain Routing Protocol Discriminator字段用於描述動態路由協議的描述0x83表示ISIS協議,該字段的值固定不變;PDU Header Length字段用於描述PDU包頭的長度(包含通用頭部和專用頭部),單位是字節;version/protocol id extension字段用於描述對應isis的版本或協議標識擴展,設置為1(0x01),一般這個字段都是1,固定不變;ID Length用於描述NSAP地址或NET地址中的system ID長度,值為0表示system ID的長度為6字節,值為255時,表示system ID為空(長度為0);R(Reserved)是保留字段,設置為0;PDU type 用於描述對應專用包頭的類型;ISIS PDU共有9種類型;version 用於描述isis版本,設置為1,固定不變;Maximun area address字段用於描述支持的最大區域個數;設置為1-254的證書,表示該IS-IS進程實際所允許的最大區域地址數,設置為0,表示該IS-IS進程最大只支持3個區域地址數;

  更改R1的g0/0/0接口網絡類型為P2P,再次抓包看看對應數據包結構

  提示:可以看到更改R1的g0/0/0接口網絡類型為p2p以后,對應isis鄰居就被情況了;其原因是R1和R2的所發送的hello包類型不同;

  在R1上抓包,看看對應hello包類型是否和R2一樣?

  提示:現在R1的g0/0/0接口上抓包,可以看到對應R1發送的hello包類型為p2phello ;

  廣播網絡hello包和p2p網絡hello包對比

  提示:通用包頭基本沒有變化,變化的是在專用包頭里;對於廣播網絡中的hello包,里面主要比p2p網絡中的hello包多了priority 字段和DIS ID兩個字段;其主要原因是廣播網絡中,對應會選舉DIS,所以會有優先級和dis id的信息;而p2p網絡中不需要選舉DIS,所以priority字段和dis id字段沒有;其他字段兩者幾乎都有,沒有太大的區別;

  專有包頭字段解釋

  Reserved/circuit:該字段占用1字節,其中高位的6比特保留,其值為0;低位的2比特用來表示路由器的類型;01表示L1,10表示L2,11表示L1/2;

  Source ID:用於描述發出該hello報文的路由器system ID;

  Holding Time:用於描述hello包的保持時間;在此時間內如果沒有收到鄰居發來的Hello報文,則終止已建立的鄰居關系;

  PDU Length:用於描述PDU的總長度,單位是字節;PDU是ISO網絡模型里對應數據包的稱呼,我們可以理解為TCP/IP里的包,段,幀,比特等術語;

  Priority:用於描述選舉DIS的優先級,取值范圍為0-127;數值越大,優先級越高;

  LAN ID:用於描述包含DIS的system ID 和1字節的偽節點ID;

  Local Circuit ID:用於描述本地鏈路ID;

  IS-IS報文類型總結

  提示:ISIS報文總共就只有上述三種類型;其中IIH表示ISIS的hello PDU,主要作用是建立和維護鄰居關系;LSP主要用來傳輸鏈路狀態信息,類似OSPF里的LSU(LSA)包的作用;SNP主要用來描述數據庫中的LSP,類似ospf中的DD包;

  hello報文類型

  提示:isis里hello報文類型有三種;L1 LAN IIH、L2 LAN IIH和p2p IIH這三種;其中p2p里部分L1和L2,它只有一種;L1主要是廣播網絡中的L1路由器發送;L2主要是廣播網絡中的L2路由器發送;

  SNP報文類型

  提示:SNP報文中分CSNP(完全SNP)和PSNP(部分SNP),完全SNP包主要作用是通告LSDB中所有摘要信息,類似OSPF里的DD包;部分SNP主要作用是請求和確認鏈路狀態信息;類似ospf里的LSR和LSACK的作用;

  IS-IS報文中的可變長字段

  提示:IS-IS報文中的變長字段部分是多個TLV(Type-Length-Value)三元組;TLV也稱為CLV(Code-Length-Value);以上只是部分CLV代碼和對應字段、PDU類型;可變長字段的存在主要是對IS-IS的擴展,比如我們要讓IS-IS支持IPV6,我們只需要在TLV/CLV里加上對ipv6的相應字段即可,不需要像ospf專門開發一個版本支持ipv6;這也是IS-IS擴展性強的原因;

  PDU類型對照表

  提示:對於不同PDU類型,其類型值各有不同;比如類型代碼為15則表示是L1 hello包;類型代碼為17則表示對應PDU類型為P2P網絡的hello 包;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM