《計算機網路微課堂》實驗10 構造超網(無分類編址)

peterjxl發表於2024-06-02

下面我們來進行一個模擬實驗,本模擬實驗的目的在於幫助大家加深對 IP 地址第三個歷史階段,也就是構造超網的理解。

構造超網也稱為路由聚合,它使用無分類編制的方法。

首先我們介紹一下本模擬實驗的具體內容,構造如圖所示的網路拓撲。網路中包含 4 個網路,假設給每個網路分配 1 個地址塊:

請根據各網路所分配的地址塊完成以下工作,以便實現各主機間的相互通訊:

  • 第一,給各主機分配一個 IP 地址,並設定子網掩碼
  • 第二,給各路由器的各介面分配一個 IP 地址,並設定子網掩碼
  • 第三,給各主機指定預設閘道器,也就是預設路由器
  • 第四,給各路由器配置靜態路由,並且進行進一步的路由聚合

我們先對題目進行分析,我們需要寫出各網路所分配地址塊的詳細資訊,這在理論課中已經詳細介紹過了。先看 192.168.16.0/25 這個地址的話,根據斜線後面的數字 25 可知網路字首為 25 個位元。

因此將前 25 位元固定不變,而剩餘 7 位元全部清零,這就是該地址塊的最小地址,寫成點分十進位制形式為 192.168.16.0,地址塊的最小地址也作為網路地址。

將前 25 位元固定不變,而剩餘 7 位元全部之一,這就是該地址塊的最大地址,寫成點分 10 進位制的形式為 192.168.16.127,地址塊的最大地址也作為廣播地址,由於網路地址和廣播地址都不能分配給主機或路由器,因此,可分配給主機或路由器的地址範圍為 192.168.16.1 到 192.168.16.126。根據斜線後面的數字 25 可知地址掩碼有 25 個,連續的位元 1,剩餘 7 個連續的位元 0。寫成點分 10 進位制形式,為 255.255.255.128。

再來看 192.168.16.128/26 這個地址框,根據斜線後面的數字,26 可知網路字首為 26 個位元,因此將前 26 位元固定不變,而剩餘 6 位元全部清零,這就是該地址塊的最小地址,寫成點分十進位制這個形式為 192.168.16.128。地址塊的最小地址也作為網路地址。

將前 26 位元固定不變,而剩餘 6 位元全部置 1,這就是該地址塊的最大地址,寫成點分十進位制的形式為 192.168.16.191,地址塊的最大地址也作為廣播地址,由於網路地址和廣播地址都不能分配給主機或路由器,因此可分配給主機或路由器的地址範圍為 192.168.16.129 ~ 192.168.16.190。

根據斜線後面的數字 26 可知地址掩碼有 26 個連續的位元 1,剩餘 6 個連續的位元 0,寫成點分十進位制形式為 255.255.255.192,相信大家可以很快的寫出另外兩個地址塊的詳細資訊。


現在我們已經得出了各網路的地址掩碼以及可分配 IP 地址的範圍,我們先給上面網路分配,該網路中有兩個主機和一個路由器介面,他們的地址掩碼都為 255.255.255.128,我們可以從 192.168.16.1~192.168.16.126,這個地址範圍中,為各主機及路由器介面分配 IP 地址,例如我們給網路中的這臺主機分配的 IP 地址為 192.168.16.1,給另一臺主機分配的 IP 地址為 192.168.16.2,可將分配地址範圍中的最後一個地址也就是 192.168.16.126,分配給路由器介面。當然你也可以自行分配,只要在可分配地址範圍內選擇地址就可以了。

再來給下面網路分配。該網路中有兩個主機和一個路由器介面,他們的地址掩碼都為 255.255.255.192,可從 192.168.16.129 ~ 192.168.16.190,這個地址範圍中為各主機及路由器介面分配 IP 地址,例如我們給網路中的這臺主機分配的 IP 地址 192.168.16.129,給另一臺主機分配的 IP 地址為 192.168.16.130,將可分配地址範圍中的最後一個地址,也就是 192.168.16.190 分配給路由器介面。

接下來我們給兩個路由器之間的這道鏈路,也可以看作是一個網路進行分配,該網路中僅有兩個路由器介面,他們的地址掩碼都為 255.255255.252,該網路可分配的 IP 地址只有 192.168.16.193 和 192.168.16.194,因此給該網路中的兩個路由器介面各配置其中一個 IP 地址即可。

最後我們給最右側的網路分配,該網路中有一個主機和一個路由器介面,他們的地址掩碼都為 255.255.255.252,該網路可分配的 IP 地址只有 192.168.16.197 和 192.168.16.198。因此,對該網路中的主機和路由器介面各配置其中一個 IP 地址即可。


現在請您思考一下,同一網路中的各主機之間,主機與路由器介面之間,各路由器介面之間是否可以直接通訊?答案是可以通訊。再來思考一下上面網路中的某個主機和下面網路中的某個主機,它們之間是否可以直接通訊?答案是不可以通訊,這是因為他們處於不同的網路,他們都需要將資料包傳送給各自網路上的預設路由器,由預設路由器幫他們進行轉發預設路由器要稱為預設閘道器。左邊的這臺路由器既是上面網路的預設閘道器,也是下面網路的預設閘道器。

對於上面網路中的各主機,我們為其指定的預設閘道器的地址,是左側路由器上面這個介面的 IP 地址,也就是 192.168.16.126,對於下面這個網路中的各個主機,我們為其指定的預設閘道器的地址是左側路由器下面這個介面的 IP 地址,也就是 192.168.16.190,對上下兩個網路中的各主機指定了預設閘道器後,他們之間就可以相互通訊了

不要忘記,還有最右側這個網路中的主機也應該為他指定預設閘道器,右側路由器就是它的預設閘道器,我們為他指定的預設閘道器的地址是右側路由器,右邊這個介面的 IP 地址,也就是 192.168.16.197,請再想想看上面網路中的某個主機或下面網路中的某個主機是否可以與最右側的主機進行通訊,答案是不可以通訊。這是因為圖中的兩個路由器並未使能路由選擇協議,也就是並不使用路由演算法,他們僅知道與他們直接相連的有哪些網路。

路由器可以根據自己的各介面所分配的 IP 地址和地址掩碼,知道自己都與哪些網路直接相連。

例如左側的這臺路由器,他知道自己的上面這個介面與網路 192.168.16.0/25 直接相連。

自己的下面這個介面與網路 192.168.16.128/26 直接相連,自己的右側這個介面與網路 192.168.16.192 斜線 30 直接相連,但他並不知道右側的網路 192.168.16.196/30 如何到達,甚至可以說他並不知道網路的存在,這就需要我們對它進行配置,告訴他如果資料包要到達網路,192.168.16.196/30,可以將資料包轉發給右側這個路由器,也就是指定下一條地址為右側路由器的左邊介面的地址,也就是 192.168.16.194。

同樣的道理,相信您可以很快得出右側這臺路由器的路由表,對於直接相連的網路,路由器可以自行得出,而最後兩行所示的非直接相連的網路及下一跳地址需要我們進行配置,這次各主機間就完全可以通訊了。

最後請您再思考一下,右側路由器的路由表中的最後兩條路由是否可以聚合為一條路由,以便減少路由表中的路由記錄數量,這樣就可以減少對儲存器空間的佔用,並且可以提高查詢路由表的速度。我們在理論課中已經介紹過,採用找出共同字首的方法來進行路由聚合,這裡就不再贅述了。最終聚合的地址塊為 192.168.16.0/24。


我已經在軟體中構建好了我們之前所講解的網路拓撲,那麼這裡我們可以看到交換機的各個介面指示燈是橙色的,那麼下面交換機也是。那麼我們切換一下右下角的實時和模擬按鈕,直到它們變為綠色。但是我們現在看到路由器的各個介面仍然是紅色,這是因為我們現在的路由器的各個介面仍然處於關閉狀態,等一下我們再給路由器各介面配置 IP 地址的時候,順便把它開啟就可以了。

另外路由器需要大家注意一下,我在這裡選擇的路由器是 2911 這個型號,如果不選這個的話,可能它的介面是不夠用的。為了我們稍後對各主機和路由器進行配置的方便,我已經將我們之前所分析的結果都標註在了各個主機以及路由器各介面的旁邊。


下面我首先給主機設定 IP 地址和子網掩碼,注意一下,我們先不指定各主機的預設閘道器。我給左邊最上面的左上角的這臺主機設定 IP 地址,左鍵點選它,然後選擇桌面,然後這裡有 IP 配置,給他的 IP 地址就是這裡的 192.168.16.1,那子網掩碼是三個 255 一個 128,當我們點選的時候,它會自動給一個 C 類的預設的子網掩碼,我們修改一下,把最後 0 改成 128

請您依次給各個主機按照我們之前的方法去配置 IP 地址和子網掩碼這裡我就不再詳細演示了。下面我們來給路由器的各個介面配置 IP 地址和地址掩碼。


這裡需要注意一下,由於本身我們給各個主機和路由器標註了很多內容,所以我將這個軟體它本身預設顯示的埠或者是介面號以及裝置的型號,比如說路由器的型號,主機的型號以及它們的名稱,它本來是預設顯示的,我都把它關閉了。那麼在這裡在選單欄選擇選項,然後引數選擇,我們可以看到我把這個顯示裝置型號裝置名稱以及在空間中邏輯工作空間中顯示埠標籤這些內容我都把它選掉了。

但是我把這一項點開了,也就是當滑鼠在邏輯空間中的裝置上懸停時,會顯示埠標籤,這個是很重要的。因為我們現在要給路由器的各個埠去配置 IP 地址,那麼我們可以看一下,當我開啟以後,這兒點選配置以後,我可以看到它有這麼多的介面,有 012 有三個介面,但是這 012 分別是對應的上右下的這三個是哪一個具體對應,那麼我們現在還不知道,所以當我把滑鼠放到介面的指示燈上,我們就可以看到這是 0 號介面,那放到這兒我們可以看到這是 2 號介面,放在下面我們可以看到這是一號介面,這樣我們就可以對路由器的各個介面進行 IP 地址和地址掩碼的配置了。

那麼我們先來配置左邊路由器,我們滑鼠左鍵把它點開,然後在配置選項卡里面我們進行配置。那麼我們首先來配上面這個埠,這個埠剛才我們的已經知道它是 0 號埠,所以我們選擇這兒 0 號埠。首先上來我們可以把它這個地方的埠狀態或者叫介面狀態給它點開,所以我們可以看到這個時候路由器下面的介面指示燈變成綠色了。然後 IP 地址就是我們之前分析的 IP 地址,也就是 192.168.16.126,然後子網掩碼我們給它設定成它會預設給你一個,但是我們所要求的是三個 255,一個 128,所以把這改掉 128。

然後我們回車一下,另外需要說明的是這裡我們為了方便沒有去進入到命令列的模式,我們剛才這個動作設定 IP 地址和子網掩碼,其實相應的也可以用命令列命令的方式,就是這一條 IP address,然後給 IP 地址和後面的子網掩碼。這樣埠 0 的 IP 我們就設好了。

下面我們設下面這個埠的下面這個埠,剛才我們看到應該是埠 1 的,首先我們也是把它開啟,然後 IP 地址是我們在這已經標出來了,192.168.16.190、那子網掩碼他會給一個 3 個 255,1 個 128,這個和我們所需要的這兒需要配置的是 3 個 255,1 個 192 這個埠介面我們也配置完了,

那麼最後在路由器的右側的介面,也就是 2 號介面,那麼首先我們把它開啟,然後這個介面我們看這兒寫的是 IP 地址 192.168.16.193,子網掩碼的話,我們這兒是三個 255,一個 252,那麼把它自動生成的改成 252,好回車,這樣路由器我們就配置完了,也就是它的各個埠的各個介面的 IP 地址和子網掩碼我們已經設定完了:

請您按照之前我們介紹的方法,將路由器的這兩個介面配置 IP 地址和子網掩碼,我們這裡就不具體的去演示了。


那麼到這裡我們已經給各個主機配置了 IP 地址和子網掩碼,以及給各個路由器的各個介面的配置了 IP 地址和地址掩碼。那麼下面我們就來看一看,按道理講上面這兩臺主機之間應該可以通訊,下面這兩臺主機之間應該可以通訊,我們來驗證一下是不是這樣子的。

我們用上面的左邊這臺主機把它點開,然後選擇命令提示符,然後我們去 ping 一下,我們用左邊主機去 ping 右邊主機的 IP 地址 ping 192.168.16.2。我們看到有 4 個響應,也就是從我們 ping 的 IP 地址收到了 4 條響應證明這是通的:

C:\>ping 192.168.16.2

Pinging 192.168.16.2 with 32 bytes of data:

Reply from 192.168.16.2: bytes=32 time<1ms TTL=128
Reply from 192.168.16.2: bytes=32 time=6ms TTL=128
Reply from 192.168.16.2: bytes=32 time<1ms TTL=128
Reply from 192.168.16.2: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.16.2:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 6ms, Average = 1ms

那麼再用下面左側的主機去 ping 右側的主機。我們來看一下 ping 空格,192.168.16.130,好。也是從我們所 ping 的 IP 地址收到了 4 條響應,這代表了也是通的。

C:\>ping 192.168.16.130

Pinging 192.168.16.130 with 32 bytes of data:

Reply from 192.168.16.130: bytes=32 time<1ms TTL=128
Reply from 192.168.16.130: bytes=32 time<1ms TTL=128
Reply from 192.168.16.130: bytes=32 time<1ms TTL=128
Reply from 192.168.16.130: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.16.130:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

那麼想想看上面網路中的主機和下面網路中的主機,他們之間不通,應該是不通的,我們來驗證一下,我們用上面這個主機,我們用上面這個主機來 ping 一下下面這個主機, ping 192.168.16.129。正在進行 ping 的過程,會發 4 個請求過去第一個請求超時了,沒有受到響應,第二個所發生的請求也沒有收到,對方回答的響應也是超時了。第三個同理,4 個請求都沒有收到相應的響應,這個就表明上面和下面是不通的:

C:\>ping 192.168.16.129

Pinging 192.168.16.129 with 32 bytes of data:

Request timed out.
Request timed out.
Request timed out.
Request timed out.

Ping statistics for 192.168.16.129:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),


其實我們之前已經介紹過了,這是因為我們給主機和下面這些主機都沒有指定預設閘道器,下面這個主機要把資料包發給下面這個主機,它首先就會判斷下面主機和自己不在同一個網路,所以下面這個主機首先就要把資料包的傳送給預設閘道器,由預設閘道器的幫他轉發,但是由於我們之前沒有給它設定預設閘道器,所以就會導致它其實不知道把資料包該怎麼傳送了,那麼現在我們就給他指定預設閘道器,這樣從圖上可以看出來主機的預設閘道器或者說預設路由器就是最左側的路由器,那麼我們將路由器的埠也就是和這臺主機在同一個網路中的埠告訴主機,那麼我們點開它,然後點 IP 配置,這裡面的話在這兒預設閘道器,把它預設的 4 個 0 給它去掉,那麼我們改為這個地方的 192.168.16.126

同理,我們給下面主機也指定一個預設閘道器,它的預設閘道器其實也是這臺路由器,只不過是接下路由器下面這個介面和它處於同一個網裡,所以我們就應該把下面這個介面作為它的預設閘道器的地址。我們點 IP 配置把原來預設的 4 個 0 給它修改為預設閘道器的這個地址,也就是介面的地址。這個介面是 192.168.16.190。我們給上面這臺主機已經指定了預設閘道器是路由器的介面,給下面這個主機也指定了它的預設路由器是這個路由器,當然我們指定的是下面介面的 IP 地址:

現在的話理論上來講,上面和下面這兩臺主機之間應該是可以通訊了,那麼我們來看一下是不是這樣子的。我們現在就用上面這個主機來 ping 一下下面這個主機,ping 空格,然後 192.168.16.129 回車。那麼第一次請求超時了,第 2 次請求回來了,第 3 次請求也有響應回來了,第 4 次請求也有響應回來了:

C:\>ping 192.168.16.129

Pinging 192.168.16.129 with 32 bytes of data:

Request timed out.
Reply from 192.168.16.129: bytes=32 time<1ms TTL=127
Reply from 192.168.16.129: bytes=32 time<1ms TTL=127
Reply from 192.168.16.129: bytes=32 time<1ms TTL=127

Ping statistics for 192.168.16.129:
    Packets: Sent = 4, Received = 3, Lost = 1 (25% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

證明上面這臺主機和下面這臺主機現在已經可以通訊了,那麼為什麼第一次的 ping 的請求會超時,是因為第一次存在這樣一個問題,我們這臺主機首先他要判斷他所傳送的資料包的目的地址,也就是這臺主機的目的地址,和他自己不在一個網路,所以他就應該把資料包交給他所在網路的預設路由器,換句話說他要把資料包發給 Ip 地址,於是他就在他自己的快取記憶體裡面去 ARP 的快取記憶體裡面去查詢,但是他找不到這個 IP 地址對應的 MAC 地址。所以他首先發了一個 ARP 的廣播請求,路由器在收到廣播請求以後發現問的是自己的介面的 MAC 地址,路由器就會給這個主機發一個 ARP 的單播響應,把自己的 MAC 地址告訴他。

同理當路由器要把資料包轉發出來給主機的時候,路由器也在自己的 ARP 快取記憶體去查這臺主機的 IP 地址對應的 MAC 地址,剛開始也是沒有的,會發一個 ARP 廣播請求,主機收到以後給路由器一個 ARP 單播響應,之後路由器才能把資料包重新封裝出來發給這臺主機。所以這樣的一個過程就造成了我們的聽的應用程式的超時。但是一旦第一次這個過程完成以後,那麼第二次就不存在這一段這一個網路中的 ARP 的廣播請求和響應,也不存在這一段網路中的 ARP 廣播請求和響應,資料包就是從主機發出來,那麼透過交換機在到達路由器查表,立刻就轉發到交換機,又轉發到這臺,主要這樣就不會超時了。


那麼請您按照我們各個主機旁邊所標註的預設閘道器,給其他剩餘的這三臺主機都配置預設閘道器,那麼我這裡就不再詳細演示了。我已經將剩餘的這三個主機的預設閘道器也配置好了。下面想一想下面網路中的任何一個主機或者下面網路中的任何一個主機,能不能和最右側網路中的這臺主機進行通訊?理論上是不行的,我們實際來驗證一下,看是不是這樣。那麼我們假如用左上方這臺主機來 ping 一下最右側的這臺主機,它的地址是我們 ping 一下,就是主機的 IP 地址 192.168.16.198:

C:\>ping 192.168.16.198

Pinging 192.168.16.198 with 32 bytes of data:

Reply from 192.168.16.126: Destination host unreachable.
Reply from 192.168.16.126: Destination host unreachable.
Reply from 192.168.16.126: Destination host unreachable.
Reply from 192.168.16.126: Destination host unreachable.

Ping statistics for 192.168.16.198:
    Packets: Sent = 4, Received = 0, Lost = 4 (100% loss),

我們會得到這樣一條訊息,這個訊息的話我們可以看到響應來自於哪裡?來自於 192.168.16.126。那來我們是上面主機給下面主機發請求報文,但是我收到了響應是來自於 Ip 地址的,這個 IP 地址我們看一下在這裡面就是路由器的介面,說白了就是當主機給主機傳送資料包的時候,資料包先到了路由器,而這個路由器會向我主機進行一個報告的什麼呢?目的主機不可達。換句話說,之前上面主機要發給右側主機的資料包,首先到達了路由器下面就要把它進行轉發,但是路由器不知道如何轉發,所以路由器沒法轉發它就不轉發了。同時他會把這個事情再告訴這臺主機,也就給主機發一個資料包,告訴他你剛才發給我的資料包我沒有辦法,我不知道如何把它轉發出去。

路由器是根據自己的路由表,然後對接收到的資料包進行轉發的。那麼我們說之前我們剛才也看了,路由器收到了主機發來的資料包,但是路由器不知道怎麼去轉發,來不知道怎麼去轉發到這臺主機,我們看一看是不是這樣子的。我們再點選檢視,然後檢視一下路由器的路由表,那麼我們可以看到在路由表裡面,192.168.16.0/25 實際上指的是上面網路,192.168.16.128 指的是下面網路,這裡還有一個 192.168.16.192.30 指的是網路,也就是路由器它直接相連的這三個網路他自己是知道的。

另外我們在這裡面還可以看到斜線 32 的有三條記錄,實際上是分別記錄了他自己的這三個介面的 IP 地址。那麼這個路由器和它自己直接相連的三個網路他是知道的,但是我們剛才是主機要把資料包發給主機,也就資料包要到達網路,而這個網路的話對於路由器左邊的路由器來說,它根本就不知道,我們可以說它甚至不知道網路的存在,所以需要我們手工指定給他。

那麼我們之前就已經分析過了,那麼我們需要給他指定到這個網路,也就告訴他有這樣的一個網路,所以說有這樣一個目的網路 192.168.16.196,然後相應的地址掩碼是三個 255,一個 252,並且告訴他要到達網路去的話下一跳,應該跳給他右側的路由器的介面,也就是跳給 IP 地址為 192.168.16.194 的這個介面,我們在這兒也標出都標出來了介面。那麼下面我們就對這個路由器,我們給它新增一條靜態路由,那麼我們先把滑鼠狀態切回到選擇狀態,然後點選這個路由器,那麼在這個裡面配置選項卡里面,我們可以看到在路由下面有一個靜態,那麼在這裡面就可以新增靜態路由,那麼我們就把這一條添進來,網路是 192.168.16.196,那掩碼 255.255.255.252,那下一跳地址是 192.168.16.194,然後點選新增,我們就可以看到我們告訴他的一條,要到達網路去,要透過這個地址也就下一跳要轉發給這個 IP 地址。

那麼我們再點選右側檢視按鈕,我們在開啟路由器的路由表看一下,那麼我們可以看到這一條 s 就代表靜態的,也就是我們剛才新增的那一條路由,也就是到達網路去下一跳,我應該跳給這樣的一個 IP 地址。

那麼請您按照我們給這一臺路由器配置靜態路由的方法,給這一臺路由器新增兩條靜態路由,一個是到目的網路這個目的網路去的,另一個是到目的網路這個目的網路去。注意,先不要管下面路由聚合的事情,就給路由器新增這樣兩條。需要說明的是上面這一條靜態路由,其實是告訴路由器如何到達上面網路,也就是說它的下一跳應該跳給這個介面。

那同理,下面這一條靜態路由實際上是告訴我,路由器如何到達下面網路,那麼他也是應該透過這介面,那也就是下一條地址應該跳給他,最終才能到達下面網路。

現在的話我們把滑鼠狀態切換回選擇狀態,然後我來給路由器新增這兩條靜態路由,點開它以後,選擇靜態,我們先新增第一條就是 192.168.16.0,這是網路,那麼它的相應的地址掩碼是三個 255,然後 128。下一跳地址是 192.168.16.193,然後我們點選新增。

接著我們再來把下面這一條靜態路由也配置進去,下面這一條是 16.128,把這改成 128,然後掩碼這是 192,把這兒改成 192,下一跳,不變,下一跳,仍然是剛才我們說的路由器的右側介面,好大家再點新增,這樣的話我們就給路由器配置了兩條靜態路由,現在理論上講整個拓撲結構中的這 5 臺主機,它們相互之間都是可以通訊的。


那麼我們來驗證一下比較關鍵的就是上面主機和右側這個主機或者下面這個主機和右側主機他們是否能夠通訊了?那麼我們就用右上方的主機,我們來 ping 一下最右側的主機,那也就是 ping 192.168.16.198,然後我們來看一下,我們可以看到在經過兩次的超時以後,我們從所 ping 的目的 IP 地址收到了響應,那麼這裡面超時的原因也是我們之前就分析過的,存在於在各個網路上進行 ARP 的廣播傳送和單播響應的回送。我們下面再重新 ping 一次的話,按鍵盤的上鍵可以不用再重複輸入命令,然後回車。我們就可以發現上方的主機 ping 右邊的主機就沒有超時了,完全可以 ping 得通的:

C:\>ping 192.168.16.198

Pinging 192.168.16.198 with 32 bytes of data:

Request timed out.
Request timed out.
Reply from 192.168.16.198: bytes=32 time<1ms TTL=126
Reply from 192.168.16.198: bytes=32 time<1ms TTL=126

Ping statistics for 192.168.16.198:
    Packets: Sent = 4, Received = 2, Lost = 2 (50% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

那同理我們再用右側主機 ping 一下下面這個網路中的某個主機,我們點開它,然後選擇命令列,比方說我們去 ping 這臺主機,那就是 ping 192.168.16.130。我們可以看到直接就從這個目的 IP 地址連續收到了 4 個響應,我們聽了他發了 4 個請求那,一次回來 4 個響應,這裡沒有發生第一次超時的問題,這是因為我們剛才用上面這臺主機在 ping 下面這臺主機的過程中,這個網段已經用了 ARP 這個網段上也用了 ARP 這個網段上用了,那麼我們之後用這臺主機去 ping 這臺主機的話,實際上這個網段和這個網段都沒有用,ARPP 只存在於這一個網段,但是 ARP 所造成的時間的消耗,它在我們 ping 的響應回來的超時時間之內,所以就不會產生超時。

總之我們看到用右側的主機,ping 下面這個主機是也可以 ping 得通的:

C:\>ping 192.168.16.1

Pinging 192.168.16.1 with 32 bytes of data:

Reply from 192.168.16.1: bytes=32 time<1ms TTL=126
Reply from 192.168.16.1: bytes=32 time<1ms TTL=126
Reply from 192.168.16.1: bytes=32 time<1ms TTL=126
Reply from 192.168.16.1: bytes=32 time<1ms TTL=126

Ping statistics for 192.168.16.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms


最後我們來看一下有關路由聚合的事情,我們之前給路由器配置了兩條靜態路由,一條是路由,這個是告訴我路由器上面網路如何到達的,還有一條是下面這一條靜態路由,也就是告訴路由器下面這個網路如何到達。那麼其實這兩個網路我們對於路徑這條路路由器來說的話,我們可以看它下一跳,都是相同的,都是介面。從圖上我們也可以很容易看出來,這個路由器的資料包要轉發到上面或者下面,其實它都應該把這個資料包轉發給路由器。所以我們現在可以把這兩條的路由給它合併成一條路由。

我們之前在理論講解中也說過如何去合併靜態路由,也就是找這兩個目的網路的共同字首,找到以後就把他們共同字首,我們發現最後我們得出來是 24 位,最後合併的路由的就是 192.168.16.0/24,相應的由於這個是 24 的話,它的地址掩碼就 24 個 1,然後剩餘 8 個 0 寫成 10 進位制,255.255.255.0,他們的下一跳是不變的,其實路由聚合相當於把上面網路所佔用的地址塊和下面網路所佔用的地址塊,給它合併成為一個更大的地址塊,而資料包反而是要到達上面這個地塊和到達下面這個地塊的,都要透過路由器也相當於到達更大的地址塊,也是透過這一個路由器的,所以我們可以把它們這兩個網路地址塊給它合併成這一個。下面的話我們就來把之前的這兩條給它合併成一個我們點掉的靜態,我們看到這個是我們之前我們新增的:

那麼先驗證一下,我們把它都刪除掉,刪除掉以後,那麼我們主機和這個主機右邊主機就應該 ping 不通上面主機,我們來看一下, ping 192.168.16.2,我們看一下這一條訊息,我們注意一下是說從這個 IP 地址 192.168.16.197 得到了一條響應,響應的內容是目的主機不可達,也就是什麼意思?我們主機在 ping 主機的過程中,資料包它肯定先要交給它的預設閘道器,而預設閘道器現在由於它的路由表,剛才這兩條靜態路由被我們刪了,所以他並不知道如何到達網路去,所以他就要把這個事情告訴我們這臺主機,我們可以看到它是透過介面來通知我們這臺主機的,而這個介面的 IP 地址就是 192.168.16.197,也就是我們大家看到的,他從這個介面給我們傳送的目的主機不可達的訊息。那麼現在我們就把剛才刪除的這兩條合併為這一條,我們再給他配置一條,然後聚合以後的路由。

我們來看一下這個是 192.168.16.0、然後掩碼是 255.255.255.0。下一跳地址就是這個路由器是這邊路由器的介面,好就我們標註的也就是這個地方的 IP 地址,192.168.16.193,然後我們新增。這樣的話路由器有一條聚合的路由,就是把到達網路和到達網路的這兩條路由距合為一條路由,說白了到達更大的地址塊,還是要路由器把資料包發給路由器的介面。那麼下面我們再用右邊的主機 ping 一下上面主機 ping 192.168.16.2。現在我們就可以看到了我們這臺主機去 ping 這個主機,那麼我們收到了來自 192.168.16.2,也就這臺主機的響應發了 4 個請求,收到 4 個響應證明是通的:

C:\>ping 192.168.16.1

Pinging 192.168.16.1 with 32 bytes of data:

Reply from 192.168.16.1: bytes=32 time<1ms TTL=126
Reply from 192.168.16.1: bytes=32 time<1ms TTL=126
Reply from 192.168.16.1: bytes=32 time<1ms TTL=126
Reply from 192.168.16.1: bytes=32 time<1ms TTL=126

Ping statistics for 192.168.16.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

我們再驗證一下,用最右側主機 ping 一下下面這個主機,可能下面這個網路它是否可以到達 ping 192.168.16.130。我們看到也是依次收到了來自 192.168.16.130,也就是這臺主機的 4 次響應,這就證明了路由聚合是成功的。

C:\>ping 192.168.16.198

Pinging 192.168.16.198 with 32 bytes of data:

Reply from 192.168.16.198: bytes=32 time<1ms TTL=126
Reply from 192.168.16.198: bytes=32 time<1ms TTL=126
Reply from 192.168.16.198: bytes=32 time<1ms TTL=126
Reply from 192.168.16.198: bytes=32 time<1ms TTL=126

Ping statistics for 192.168.16.198:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

本次模擬實驗進行到這裡就結束了,該模擬實驗它的配置內容比較多,因此您在進行實驗的過程當中出錯的機會,比如說 IP 地址配置錯誤,子網掩碼配置錯誤,或者是預設閘道器配置錯誤,又或者是靜態路由新增錯誤,都可能導致您所做的實驗現象和我這裡所做的實驗現象不一致的情況。這時候就請您需要自行去分析到底是因為什麼原因產生的,往往就是由於這個地址或者是路由的配置錯誤產生的。

相關文章