我們都學(xué)過(guò)把原本大網(wǎng)絡(luò)分成若干小網(wǎng)絡(luò)的劃分子網(wǎng)。但是大家可曾聽(tīng)說(shuō)過(guò)把原本數(shù)量眾多的小網(wǎng)絡(luò)匯聚成一個(gè)大網(wǎng)絡(luò)的超網(wǎng)嗎?
沒(méi)有錯(cuò)!我們今天的主角 —— 構(gòu)成超網(wǎng),就是通過(guò)對(duì) IP 地址的原有格式進(jìn)行升級(jí)重組,進(jìn)而產(chǎn)生的一種更為神奇的組網(wǎng)方式。
究竟有多“神奇”呢?讓我們接著往下看
01、超網(wǎng)到底是什么東西?
構(gòu)成超網(wǎng)也稱(chēng) CIDR(Classless Inter-Domain Routing,無(wú)類(lèi)別域間路由選擇)。
簡(jiǎn)單來(lái)說(shuō),它就是一種將多個(gè)同類(lèi) IP 地址聚合成一個(gè)”地址塊“的方法。超網(wǎng)的誕生使我們可以更加有效地分配 IPv4 地址空間。
超網(wǎng)的運(yùn)用可以使 IPv6 在大規(guī)模使用前容許互聯(lián)網(wǎng)的規(guī)模繼續(xù)增長(zhǎng)。
02、為什么要構(gòu)成超網(wǎng)?
在傳統(tǒng)的按照 IP 地址分類(lèi)的方法中,不管是哪一類(lèi)地址,網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)所占的長(zhǎng)度都是固定不變的,只要確定了這個(gè)地址的網(wǎng)絡(luò)號(hào),那就是固定長(zhǎng)度。
這種“頑固”的分類(lèi)方法不僅使用起來(lái)不太靈活,同時(shí)也直接導(dǎo)致了路由器在交換路由表時(shí)所產(chǎn)生信息的冗余。
因此采用路由聚合構(gòu)造超網(wǎng),有利于減少路由器之間的路由選擇信息的交換,從而提高了整個(gè)互聯(lián)網(wǎng)的性能,避免路由信息的冗余。構(gòu)成超網(wǎng)在進(jìn)行一番聚合操作后,原本包含成千上萬(wàn)條轉(zhuǎn)發(fā)信息的路由表?yè)u身一變,“瘦”成了可能只有幾條路由表項(xiàng)的路由表 Mini。
03、超網(wǎng)是如何進(jìn)行聚合的?
接下來(lái)讓我們看個(gè)小例子,如下圖所示,在沒(méi)有進(jìn)行構(gòu)造超網(wǎng)之前,路由器每進(jìn)行一次路由信息交換,R2 就會(huì)收到 R1 更新的 5 條路由信息。
(此處省略十進(jìn)制與二進(jìn)制的轉(zhuǎn)換關(guān)系,畢竟我們都是機(jī)智的通信人)
而構(gòu)成超網(wǎng)會(huì)把網(wǎng)絡(luò)前綴都相同的 IP 地址組成一個(gè)“CIDR 地址塊”,又稱(chēng)聚合地址塊。
將上圖的五條地址轉(zhuǎn)為二進(jìn)制后,我們發(fā)現(xiàn)它們的前 20 位都是相同的,于是乎,將這 20 位取出來(lái)作為地址塊中的共同前綴,而剩余的 12 位將默認(rèn)補(bǔ) 0 作為地址塊中的主機(jī)號(hào)。
這五條地址信息進(jìn)行聚合后,就形成了一個(gè) CIDR 地址塊:168.100.128.0/20。此時(shí),R2 在接收 R1 的路由轉(zhuǎn)發(fā)表時(shí),就只會(huì)收到一條 CIDR 地址信息了。
Tips
CIDR 還使用“斜線記法”,即在 IP 地址后面加上斜線“/”,然后寫(xiě)上網(wǎng)絡(luò)前綴所占的位數(shù)。
我們只要知道 CIDR 地址塊中的任何一個(gè)地址,再將地址中的主機(jī)號(hào)改成全 0 或全 1,就可以得到這個(gè)地址塊中的最小地址和最大地址,而最大地址和最小地址之間所包含的這一片連續(xù)的地址,都可以用這個(gè) CIDR 地址塊來(lái)表示。同時(shí),根據(jù)地址塊中主機(jī)號(hào)的位數(shù) n,我們也可以得到這個(gè)地址塊中可以指派的地址數(shù):2n-2。
Tips
“減 2”是因?yàn)橹鳈C(jī)號(hào)為全 0 和全 1 的兩個(gè)地址為特殊地址,一般不作為源地址或者目的地址使用。
聚合得出的 168.100.128.0/20,把它展開(kāi)成二進(jìn)制后,這個(gè)地址所在的地址塊中的最小地址和最大地址可以很方便地得出,如下表所示。
不難算出,這個(gè)地址塊中能夠包含 4096 個(gè)地址(4094 個(gè)可以指派的地址)。我們可以用地址塊中的最小地址和網(wǎng)絡(luò)前綴的位數(shù)指明這個(gè)地址塊。例如,上面的最小地址塊可記為 168.100.128.0/20。
我們驚奇地發(fā)現(xiàn),這個(gè)最小地址居然與前文提到的聚合地址時(shí)一模一樣的呀!
04、超網(wǎng)是如何進(jìn)行匹配的?
那既然提到了 CIDR 地址塊,就不能不提到與之相對(duì)應(yīng)的最長(zhǎng)前綴匹配機(jī)制。
這是因?yàn)槲覀冊(cè)诓檎衣酚杀眄?xiàng)進(jìn)行路由選擇時(shí)可能得到不止一個(gè)匹配結(jié)果。這樣就帶來(lái)一個(gè)問(wèn)題:我們應(yīng)當(dāng)從這些匹配的結(jié)果中選擇哪一條路由呢?
直接公布正確答案:應(yīng)當(dāng)從匹配結(jié)果中選擇具有最長(zhǎng)網(wǎng)絡(luò)前綴的路由。
當(dāng)路由器收到一個(gè) IP 數(shù)據(jù)包時(shí),它會(huì)將數(shù)據(jù)包的目的 IP 地址與自己本地路由表中的所有路由表項(xiàng)分別進(jìn)行逐位對(duì)比,對(duì)比完畢后,選擇與之匹配度最長(zhǎng)的路由表項(xiàng)。
舉個(gè)例子:
假如本座 5 樓現(xiàn)在收到了一封 X 部門(mén)發(fā)往 Y 部門(mén)的郵件,已知 Y 部門(mén)的 IP 地址為:192.31.71.128,途經(jīng) 5 樓的一個(gè)路由器現(xiàn)有的路由表項(xiàng)信息分別為:192.31.71.0/26、192.31.68.0/22,那么該路由器在收到這封郵件后應(yīng)該發(fā)往哪個(gè)下一跳地址呢?
路由表項(xiàng) | 對(duì)應(yīng)的子網(wǎng)掩碼 | 下一跳地址 |
192.31.71.0/26 | 11111111.11111111.11111111.11000000 | 192.31.31.19 |
192.31.68.0/22 | 11111111.11111111.11111100.00000000 | 192.31.31.89 |
目的地址 :192.31.71.128 所對(duì)應(yīng)的二進(jìn)制數(shù)為:11000000.00011111.01000111.10000000 |
Tips
這里需要解釋的是,雖然 CIDR 不使用子網(wǎng)了,但由于目前仍有一些網(wǎng)絡(luò)還在使用子網(wǎng)劃分和子網(wǎng)掩碼,為了更方便地進(jìn)行路由選擇,CIDR 所使用的 32 位地址掩碼也可繼續(xù)稱(chēng)為子網(wǎng)掩碼。
例如,/20 地址塊的地址掩碼是:11111111 11111111 11110000 00000000 (20 個(gè)連續(xù)的 1)。斜線記法中,斜線后面的數(shù)字就是地址掩碼中 1 的個(gè)數(shù)。
將每一個(gè)路由表項(xiàng)所對(duì)應(yīng)的子網(wǎng)掩碼與目的地址的二進(jìn)制展開(kāi)式兩兩進(jìn)行“邏輯與”運(yùn)算后再轉(zhuǎn)換為十進(jìn)制可得:192.31.71.0、192.31.68.0,運(yùn)算步驟如下圖所示:
我們發(fā)現(xiàn):經(jīng)過(guò)運(yùn)算后所得到的地址都與對(duì)應(yīng)路由表項(xiàng)相匹配,說(shuō)明表中兩條路由信息都可以作為下一跳地址進(jìn)行分配。
But!根據(jù)最長(zhǎng)前綴匹配機(jī)制,我們應(yīng)該選擇路由表項(xiàng) 1 所對(duì)應(yīng)的下一跳地址作為轉(zhuǎn)發(fā)地址,這是因?yàn)榫W(wǎng)絡(luò)前綴越長(zhǎng),地址塊越小,路由就越具體。
05、總結(jié)一下下~
CIDR 消除了傳統(tǒng)的 A,B,C 類(lèi)地址和劃分子網(wǎng)的概念,更有效地分配 IPv4 的地址空間,使 IP 地址從三級(jí)編址(網(wǎng)絡(luò)號(hào),子網(wǎng)號(hào),主機(jī)號(hào))又回到無(wú)分類(lèi)的兩級(jí)編址,如下圖所示。
CIDR 還使用“斜線記法”,即在 IP 地址后面加上“/”然后指明網(wǎng)絡(luò)前綴所占的位數(shù)。CIDR 把網(wǎng)絡(luò)前綴都相同的連續(xù) IP 地址組成一個(gè)“CIDR 地址塊”,即構(gòu)成超網(wǎng)。
在使用 CIDR 時(shí),在路由表中可能會(huì)有不止一個(gè)匹配結(jié)果,這時(shí)應(yīng)當(dāng)從所有匹配結(jié)果中選擇能夠匹配更長(zhǎng)網(wǎng)絡(luò)前綴的路由,因?yàn)榫W(wǎng)絡(luò)前綴越長(zhǎng),其地址塊就越小,所得路由就越具體。
本文來(lái)自微信公眾號(hào):中興文檔 (ID:ztedoc)
廣告聲明:文內(nèi)含有的對(duì)外跳轉(zhuǎn)鏈接(包括不限于超鏈接、二維碼、口令等形式),用于傳遞更多信息,節(jié)省甄選時(shí)間,結(jié)果僅供參考,IT之家所有文章均包含本聲明。