什么是IS-IS中間系統(tǒng)到中間系統(tǒng)?網(wǎng)工、運(yùn)維必看!

簡介
IS-IS,中文全稱:中間系統(tǒng)到中間系統(tǒng),是一種開放的標(biāo)準(zhǔn)路由協(xié)議,ISO 發(fā)布了該標(biāo)準(zhǔn),將數(shù)據(jù)報作為其 OSI 堆棧的一部分進(jìn)行路由,IETF 后來重新發(fā)布了該標(biāo)準(zhǔn),并添加了 IP 路由支持。
IS-IS 和 OSPF 之間有很多相似之處:
兩者都是鏈路狀態(tài)路由協(xié)議,這意味著它們都構(gòu)建了網(wǎng)絡(luò)的“地圖”。
它們都通過網(wǎng)絡(luò)泛洪鏈路狀態(tài)數(shù)據(jù),并構(gòu)建鏈路狀態(tài)數(shù)據(jù)庫(LSDB)。
此外,他們都在 LSDB 上運(yùn)行 Diikjastra 算法來計(jì)算最短路徑。
那么,如果它像 OSPF,為什么要使用它呢?為什么不改用 OSPF?
IS-IS 有兩個巨大的優(yōu)勢:
首先是它的可擴(kuò)展性,使用 IS-IS 構(gòu)建大型網(wǎng)絡(luò)比使用 OSPF 容易得多,這使其成為服務(wù)提供商為其基礎(chǔ)設(shè)施提供的常見選擇。
第二個優(yōu)勢是它對其攜帶的數(shù)據(jù)采取不可知論的方法,IS-IS 攜帶可達(dá)性數(shù)據(jù)的有效載荷,但在大多數(shù)情況下,它并不關(guān)心有效載荷中的內(nèi)容,這就是它對 FabricPath 等協(xié)議有用的原因,相比之下,OSPF 只承載 IP 路由。當(dāng) IPv6 出現(xiàn)時,它需要一個全新版本的 OSPF (OSPFv3) 來承載 IPv6 路由,IS-IS 中沒有這樣的問題。
術(shù)語
由于 IS-IS 的歷史是在 OSI 堆棧中,因此某些組件與我們在 TCP/IP 世界中習(xí)慣的有些不同,我們來看一下IS-IS相關(guān)的術(shù)語:
IS 是一個 中間系統(tǒng),這是路由器的 ISO 名稱,以及 IS-IS 的名稱,它是中間系統(tǒng)或路由器之間的通信。
ES 是一個 端系統(tǒng),這是網(wǎng)絡(luò)上的設(shè)備,例如服務(wù)器或工作站,在原始規(guī)范中,ES 將參與 IS-IS,它不需要 DHCP 或 FHRP,因?yàn)樗呀?jīng)有一個本地路由表。
CLNS ?(無連接網(wǎng)絡(luò)服務(wù))是 OSI 堆棧中的網(wǎng)絡(luò)服務(wù), CLNP ?(無連接網(wǎng)絡(luò)協(xié)議)是實(shí)現(xiàn) CLNS 的協(xié)議,如果您更熟悉 TCP/IP,這會感覺不尋常,TCP/IP 并沒有以這種方式將服務(wù)和協(xié)議分開,隨著時間的推移,這將更有意義。
NSAP 是一個 網(wǎng)絡(luò)服務(wù)接入點(diǎn),這是第 3 層地址,用于 CLNS 數(shù)據(jù)包,這就像 TCP/IP 堆棧中的 IP 地址,IS-IS 使用 NSAP 地址進(jìn)行通信,而不是 IP 地址。

TLV
TLV 中文全稱: 類型長度值,是 IS-IS 中的有效載荷字段,TLV 字段攜帶路由信息,IS-IS 不關(guān)心這些字段中的內(nèi)容,這使得它與協(xié)議無關(guān),這有點(diǎn)像集裝箱;這艘船不在乎集裝箱里有什么。

IS-IS 使用 CLNS 進(jìn)行傳輸,每個路由器都有一個 NSAP 地址,用于發(fā)送和接收鏈路狀態(tài)信息,鏈路狀態(tài)信息可能包含幾個 TLV 字段。
通常將 IP 路由信息放入 TLV 中,但是任何類型的數(shù)據(jù)都可以在那里,由接收路由器決定如何處理這些信息。
度量值
與 OSPF 一樣,IS-IS 使用cost作為度量,規(guī)范說這可以是寬值或窄值,Cisco 路由器僅支持寬度量,窄度量不適用于 MPLS 流量工程,寬度量使用 24 位作為鏈路度量,使用 32 位作為路徑度量。
默認(rèn)情況下,所有鏈接的cost均為 10,這意味著在默認(rèn)實(shí)現(xiàn)中,跳數(shù)構(gòu)成度量,網(wǎng)絡(luò)設(shè)計(jì)者可以選擇更合適的成本方案。
area
與 OSPF 一樣,IS-IS 使用區(qū)域,區(qū)域可以是骨干區(qū)域,也可以是普通區(qū)域,為了支持這個概念,路由器可能是以下類型之一:
Level 1 ?– 正常區(qū)域中的路由器不連接到另一個區(qū)域
Level 1-2 ?– 連接不同區(qū)域的普通或骨干區(qū)域中的路由器
Level 2 ?– 不連接到其他區(qū)域的骨干路由器
下面的拓?fù)滹@示了具有多個區(qū)域的網(wǎng)絡(luò)示例。
在這個拓?fù)渲杏袔讉€有趣的點(diǎn),骨干區(qū)域并不像 OSPF 中那樣被限制為“區(qū)域 0”,在 IS-IS 中,任何區(qū)域號都可以作為骨干網(wǎng),另外可以對主干進(jìn)行分區(qū),在此拓?fù)渲校瑓^(qū)域 100 和區(qū)域 200 都是主干。
另一個有趣的點(diǎn)是區(qū)域邊界不在路由器本身上,而是區(qū)域邊界 在 路由器之間,這與 OSPF 不同,其中 ABR 或 ASBR 路由器是邊界。

路由器級別
Level 1路由器將只與其他 Level 1路由器共享路由信息,這使它們成為 存根 路由器,在上面的拓?fù)渲?,區(qū)域 40 是一個 存根區(qū)域。區(qū)域內(nèi)的路由是 1 級路由。
Level 2路由器只會與其他 Level 1路由器共享路由信息,這些路由器跟蹤區(qū)域之間的路由信息,這是 Level 2路由。
Level 1-2 路由器很特殊,因?yàn)樗鼈兺瑫r參與Level 1 和Level 2 路由,它們將區(qū)域連接在一起,這使它們成為使用匯總的理想場所,這些路由器為 Level 1和 Level 1路由維護(hù)一個單獨(dú)的數(shù)據(jù)庫。
區(qū)域可以相互連接,也可以使用專用的骨干區(qū)域進(jìn)行傳輸,骨干網(wǎng)由執(zhí)行 Level 1路由的路由器組成,包括 Level 1-2路由器,他們不會連接主機(jī)或 Level 1路由器。
小型網(wǎng)絡(luò)根本不需要骨干網(wǎng),它可以從只有 Level 1路由器的單個區(qū)域開始,作為替代方案,它可以是所有Level 1-2路由器,以便以后添加骨干網(wǎng)更容易。
域是一個完整的IS-IS的系統(tǒng),這就像 BGP 中自治系統(tǒng)的概念。
區(qū)域間路由
要將數(shù)據(jù)包路由到區(qū)域外,Level 1路由器會將數(shù)據(jù)包發(fā)送到最近的具有 Level 2功能的路由器,無論目的地如何,始終使用最近的路由器,Level 1路由器沒有足夠的關(guān)于其他區(qū)域的信息來做出決定。
當(dāng)數(shù)據(jù)包到達(dá)第 Level 2路由器時,它會通過骨干網(wǎng)轉(zhuǎn)發(fā)到正確的區(qū)域,然后將其傳遞到該區(qū)域中的 Level 1路由器以進(jìn)行本地交付。
為了優(yōu)化路由,可以將路由從 Level 2數(shù)據(jù)庫泄漏到 Level 1數(shù)據(jù)庫中,此技術(shù)可防止區(qū)域外的次優(yōu)路由,當(dāng)泄漏路由時,他們添加了一個標(biāo)志,這可以防止將它們通告回別處的 Level 2數(shù)據(jù)庫。
在區(qū)域內(nèi)路由數(shù)據(jù)包時,路由器使用路由器的 System-ID 進(jìn)行傳送,在區(qū)域之間路由數(shù)據(jù)包時,Area-ID 是地址。這些地址是NET Value 的一部分 。
NET值
網(wǎng)絡(luò)實(shí)體名稱,簡稱“NET”,是一個地址標(biāo)識路由器,它由路由器的系統(tǒng) ID 和區(qū)域地址組成,NET 是一種 NSAP 地址。
每個路由器的 NET 都是唯一的,它們的長度可以是 8 到 20 個字節(jié),但通常只有 10 個字節(jié)。
NET 的一個示例是 49.0001.1720.1600.1001.00
,如下例所示,這表示區(qū)域 ID、系統(tǒng) ID 和 NSEL 值。
地址是一系列以點(diǎn)分隔的十六進(jìn)制值,Area-ID 的長度可變,但必須至少為 1 個字節(jié),它通常是一個三字節(jié)值,第一個字節(jié)( 在本例中為49)是 AFI或地址族標(biāo)識符,對于 IS-IS,這通常設(shè)置為 49,這是私有尋址的 OSI 值,本例中的0001指的是區(qū)域 1。
System-ID 需要在區(qū)域內(nèi)唯一,但在不同區(qū)域可能會重疊,將它與區(qū)域 ID 結(jié)合起來,可以使整個地址唯一,在 Cisco 的 IS-IS 實(shí)現(xiàn)中,System-ID 是 6 個字節(jié)。
該 NSEL 為N選擇器,這在 OSI 堆棧中具有特殊含義,但對于 IS-IS,這將始終設(shè)置為零。
鄰接
IS-IS 使用 協(xié)議數(shù)據(jù)單元或 PDU 進(jìn)行通信,這就像 OSPF 中的數(shù)據(jù)包。
一個 IS-IS Hello PDU中,或 IIH,就像是OSPF Hello報文,路由器交換 IIH 以形成鄰居關(guān)系,并共享區(qū)域地址。
IS-IS 使用多播 MAC 地址在第 2 層發(fā)送 IIH PDU,這就是為什么每個路由器只需要一個地址(NET 或 NSAP)的原因,每個接口不需要地址,這也說明接口上的IP地址與IS-IS無關(guān)。
Level 1路由器需要匹配區(qū)域 ID,此外,Level 2路由器將忽略來自 Level 1路由器的 IIH。身份驗(yàn)證和網(wǎng)絡(luò)類型也必須匹配才能形成鄰居。
Level 2 和Level 1-2 路由器不需要Level 2 IIH 具有相同的區(qū)域 ID
一個 鏈接狀態(tài)PDU,或 LSP,包含路由信息,并通告給鄰居。LSP 就像 OSPF 的 LSA。有兩種類型的 LSP;Level 1 LSP 和 Level 2 LSP,Level 1-2路由器發(fā)送和接收這兩種類型。
LSP 包含頭和 TLV 字段。TLV 字段包含正在通告的信息,例如 IP 路由。額外的 TLV 包含其他數(shù)據(jù),如鄰居信息和身份驗(yàn)證信息。
當(dāng)網(wǎng)絡(luò)發(fā)生變化時,路由器會將 LSP 泛洪出去,其他路由器接收這些 LSP,并使用它們來構(gòu)建它們的 鏈路狀態(tài)數(shù)據(jù)庫 (LSDB)。IS-IS 在這方面比 OSPF 更有效,它將多個網(wǎng)絡(luò)組合成一個 LSP,而不是發(fā)送許多小的 LSA,這增加了 IS-IS 的可擴(kuò)展性,因?yàn)榫W(wǎng)絡(luò)上可以存在更多路由器而不會過度泛洪。
當(dāng) IS-IS 在廣播媒體上時,一臺路由器是 指定中間系統(tǒng),或 DIS,DIS 會將 LSP 泛洪出去,而不是讓所有路由器泛洪該段。這就像 OSPF 中的指定路由器。
路由器舉行選舉來選擇 DIS,如果平局,則 MAC 最高的路由器獲勝,DIS 使用搶占,所以如果有更高優(yōu)先級的路由器出現(xiàn),它將成為新的 DIS。
沒有備份 DIS,這與具有 BDR 角色的 OSPF 不同。
配置
在本實(shí)驗(yàn)中,我們將配置 IS-IS 來承載 IP 路由。在 IS-IS實(shí)驗(yàn)文件 包括拓?fù)渥畛鹾妥詈蟮腃ONFIGS。
路由器 R2 會將環(huán)回接口的 IP 匯總到 /22 網(wǎng)絡(luò)中。
拓?fù)淙缦拢?/p>
第一步是啟用 IS-IS 進(jìn)程,每個 IS-IS 區(qū)域使用一個單獨(dú)的進(jìn)程,在下面的示例中,系統(tǒng) ID 在 NET 值中使用環(huán)回 0 的 IP 地址,這可以是任何值,但重新格式化環(huán)回 IP 會使故障排除更容易。
被動接口的使用與任何其他路由協(xié)議相同。
Cisco 路由器上的第一個 IS-IS 進(jìn)程設(shè)置為級別 1-2,默認(rèn)情況下,所有后續(xù)進(jìn)程都是級別 1,使用is-type
命令更改此設(shè)置 。
然后,在接口上啟用 IS-IS。
[rtbs?name="isis_intro-configure"]
Show clns neighbor
確認(rèn)鄰居關(guān)系已經(jīng)建立。Show isis database
?顯示LSDB。這是路由器可達(dá)性信息。Show clns interface
顯示接口的 IS-IS 設(shè)置。
[rtbs?name="isis_intro-adjacency"]
可以看到IS-IS已經(jīng)學(xué)習(xí)到路由,并安裝到路由表中。
[rtbs?name="isis_intro-routingtable"]
在 IS-IS 進(jìn)程下,可以配置匯總地址。
如果需要默認(rèn)路由,則可以使用default-information originate
進(jìn)行通告 。
配置匯總
R2(config)#router?isis?
R2(config-router)#summary-address?10.0.0.0?255.255.252.0?level-2
可以看到 R3 現(xiàn)在正在學(xué)習(xí)匯總地址,而不是每個單獨(dú)的網(wǎng)絡(luò)。
驗(yàn)證 R3 路由表
R3#show?ip?route?isis
Gateway?of?last?resort?is?not?set
??????10.0.0.0/22?is?subnetted,?1?subnets
i?L2?????10.0.0.0?[115/20]?via?192.168.20.1,?00:03:15,?GigabitEthernet0/1
??????172.16.0.0/32?is?subnetted,?3?subnets
i?L2?????172.16.0.1?[115/20]?via?192.168.20.1,?00:19:51,?GigabitEthernet0/1
i?L2?????172.16.10.1?[115/10]?via?192.168.20.1,?00:19:51,?GigabitEthernet0/1
??????192.168.10.0/30?is?subnetted,?1?subnets
i?L2?????192.168.10.0?[115/20]?via?192.168.20.1,?00:19:51,?GigabitEthernet0/1