2022-11-18 12:55 LJY2345   评论关闭   0 

我們都學過把原本大網絡分成若干小網絡的劃分子網。但是大家可曾聽說過把原本數量眾多的小網絡匯聚成一個大網絡的超網嗎?

沒有錯!我們今天的主角 —— 構成超網,就是通過對 IP 地址的原有格式進行升級重組,進而產生的一種更為神奇的組網方式。

究竟有多「神奇」呢?讓我們接着往下看

01、超網到底是什麼東西?

構成超網也稱 CIDR(Classless Inter-Domain Routing,無類別域間路由選擇)。

簡單來說,它就是一種將多個同類 IP 地址聚合成一個」地址塊「的方法。超網的誕生使我們可以更加有效地分配 IPv4 地址空間。

超網的運用可以使 IPv6 在大規模使用前容許互聯網的規模繼續增長。

02、為什麼要構成超網?

在傳統的按照 IP 地址分類的方法中,不管是哪一類地址,網絡號和主機號所佔的長度都是固定不變的,只要確定了這個地址的網絡號,那就是固定長度。

這種「頑固」的分類方法不僅使用起來不太靈活,同時也直接導致了路由器在交換路由表時所產生信息的冗餘。

因此採用路由聚合構造超網,有利於減少路由器之間的路由選擇信息的交換,從而提高了整個互聯網的性能,避免路由信息的冗餘。構成超網在進行一番聚合操作后,原本包含成千上萬條轉發信息的路由表搖身一變,「瘦」成了可能只有幾條路由表項的路由表 Mini。

03、超網是如何進行聚合的?

接下來讓我們看個小例子,如下圖所示,在沒有進行構造超網之前,路由器每進行一次路由信息交換,R2 就會收到 R1 更新的 5 條路由信息。

IPv4:超網,你是我的「神」

(此處省略十進制與二進制的轉換關係,畢竟我們都是機智的通信人)

而構成超網會把網絡前綴都相同的 IP 地址組成一個「CIDR 地址塊」,又稱聚合地址塊。

將上圖的五條地址轉為二進制后,我們發現它們的前 20 位都是相同的,於是乎,將這 20 位取出來作為地址塊中的共同前綴,而剩餘的 12 位將默認補 0 作為地址塊中的主機號。

這五條地址信息進行聚合后,就形成了一個 CIDR 地址塊:168.100.128.0/20。此時,R2 在接收 R1 的路由轉發表時,就只會收到一條 CIDR 地址信息了。

Tips

CIDR 還使用「斜線記法」,即在 IP 地址後面加上斜線「/」,然後寫上網絡前綴所佔的位數。

IPv4:超網,你是我的「神」

我們只要知道 CIDR 地址塊中的任何一個地址,再將地址中的主機號改成全 0 或全 1,就可以得到這個地址塊中的最小地址和最大地址,而最大地址和最小地址之間所包含的這一片連續的地址,都可以用這個 CIDR 地址塊來表示。同時,根據地址塊中主機號的位數 n,我們也可以得到這個地址塊中可以指派的地址數:2n-2。

Tips

「減 2」是因為主機號為全 0 和全 1 的兩個地址為特殊地址,一般不作為源地址或者目的地址使用。

聚合得出的 168.100.128.0/20,把它展開成二進制后,這個地址所在的地址塊中的最小地址和最大地址可以很方便地得出,如下表所示。

IPv4:超網,你是我的「神」

不難算出,這個地址塊中能夠包含 4096 個地址(4094 個可以指派的地址)。我們可以用地址塊中的最小地址和網絡前綴的位數指明這個地址塊。例如,上面的最小地址塊可記為 168.100.128.0/20。

我們驚奇地發現,這個最小地址居然與前文提到的聚合地址時一模一樣的呀!

04、超網是如何進行匹配的?

那既然提到了 CIDR 地址塊,就不能不提到與之相對應的最長前綴匹配機制。

這是因為我們在查找路由表項進行路由選擇時可能得到不止一個匹配結果。這樣就帶來一個問題:我們應當從這些匹配的結果中選擇哪一條路由呢?

直接公布正確答案:應當從匹配結果中選擇具有最長網絡前綴的路由。

當路由器收到一個 IP 數據包時,它會將數據包的目的 IP 地址與自己本地路由表中的所有路由表項分別進行逐位對比,對比完畢后,選擇與之匹配度最長的路由表項。

舉個例子:

假如本座 5 樓現在收到了一封 X 部門發往 Y 部門的郵件,已知 Y 部門的 IP 地址為:192.31.71.128,途經 5 樓的一個路由器現有的路由表項信息分別為:192.31.71.0/26、192.31.68.0/22,那麼該路由器在收到這封郵件后應該發往哪個下一跳地址呢?

路由表項對應的子網掩碼下一跳地址
192.31.71.0/2611111111.11111111.11111111.11000000192.31.31.19
192.31.68.0/2211111111.11111111.11111100.00000000192.31.31.89
目的地址 :192.31.71.128
所對應的二進制數為:11000000.00011111.01000111.10000000

Tips

這裡需要解釋的是,雖然 CIDR 不使用子網了,但由於目前仍有一些網絡還在使用子網劃分和子網掩碼,為了更方便地進行路由選擇,CIDR 所使用的 32 位地址掩碼也可繼續稱為子網掩碼。

例如,/20 地址塊的地址掩碼是:11111111 11111111 11110000 00000000 (20 個連續的 1)。斜線記法中,斜線後面的數字就是地址掩碼中 1 的個數。

將每一個路由表項所對應的子網掩碼與目的地址的二進制展開式兩兩進行「邏輯與」運算后再轉換為十進制可得:192.31.71.0、192.31.68.0,運算步驟如下圖所示:

IPv4:超網,你是我的「神」

我們發現:經過運算后所得到的地址都與對應路由表項相匹配,說明表中兩條路由信息都可以作為下一跳地址進行分配。

But!根據最長前綴匹配機制,我們應該選擇路由表項 1 所對應的下一跳地址作為轉發地址,這是因為網絡前綴越長,地址塊越小,路由就越具體。

05、總結一下下~

CIDR 消除了傳統的 A,B,C 類地址和劃分子網的概念,更有效地分配 IPv4 的地址空間,使 IP 地址從三級編址(網絡號,子網號,主機號)又回到無分類的兩級編址,如下圖所示。

IPv4:超網,你是我的「神」

CIDR 還使用「斜線記法」,即在 IP 地址後面加上「/」然後指明網絡前綴所佔的位數。CIDR 把網絡前綴都相同的連續 IP 地址組成一個「CIDR 地址塊」,即構成超網。

在使用 CIDR 時,在路由表中可能會有不止一個匹配結果,這時應當從所有匹配結果中選擇能夠匹配更長網絡前綴的路由,因為網絡前綴越長,其地址塊就越小,所得路由就越具體。

本文來自微信公眾號:中興文檔 (ID:ztedoc)

🌙
😃

切换注册
忘记密码 ?

×

您也可以使用第三方帐号快捷登录

切换登录

×
扫一扫二维码分享
下载海报
  切换主题 | SCHEME TOOL