簡單拓撲-入門

  1. 實驗環境:
    Win10 個人版
    GNS3.0
    Wireshark2.2.4

  2. 實驗拓撲:
    拓撲結構

  3. 實驗步驟:

    1. 建立拓撲,啓動設備:
      發現了兩個ICMPv6報文(爲什麼會有這個報文,具體在最後的問題裏由說明)。
    2. 在PC1上配置IP,掩碼,gateway
      發現了三個ARP報文.可以看到是沒有IP地址的,
      arp報文
      這驗證了ARP是直接基於Ethernet,而不是想ICMP那樣基於IP。
    3. 在route1上的e1/0端口配置IP地址,啓動之後,在鏈路1捕捉了CDP報文(Cisco Discovery Protocol)和loop報文。
    4. 此時在PC1上ping router1的端口1
      在鏈路1上,首先捕捉到兩個ARP報文,第一個是由PC1發出,廣播“誰知道10.1.1.100的地址(MAC)地址”,然後router1的端口回發一個ARP報文,包含了所需要的MAC地址。
    5. 設置route1的e1/1端口,實驗是否pc1可以直接ping e1/1的端口。
      可以直接ping通,首先PC1會發送兩個ARP報文,但注意,這兩個報文不是查詢10.2.2.100的mac地址,而是詢問10.1.1.100的mac地址

這是因爲在默認找不到路由的前提下,將數據報按照默認網關發出。此時倘若在PC1 艙室ping PC2(未配置),會出現timeout的情況

這裏會有一個有趣的事情,就是ARP緩存的時間,倘若在ping 10.2.2.100之後,PC1的ARP緩存還存在,那麼在ping 10.2.2.1時,不會出現ARP的報文。
6. 配置pc2,然後在pc1 ping pc2
ICMP的第一個報文不可達?我個人的理解是,第一次的icmp報文,因爲不存在arp緩存,所以,這一查詢時間會比較長,超過icmp的存活時間,所以第一個報文會出現丟失的現象。有其他人認爲,不是因爲延遲的問題,而是第一個報文必定會丟失,因爲icmp找不到mac地址,會通過arp來尋找mac地址,但是我不認爲在icmp的協議中有這個規定。相反,Cisco中規定的icmp存活時間,所以我更傾向於是因爲超出了存活時間的限制,才導致了icmp的丟包。

  1. 問題

Q:啓動GNS後,兩臺主機就各自向連接的端口發送了兩個ICMPv6的報文?爲什麼?作用是什麼?(未部署任何的路由協議)

A:查看Wiresshark,可以看到是兩個ICMPv6的數據報,並且類型是133



起作用就是Router Solicitation ,路由請求。

ICMPv6 的作用

IPv4 中 ICMP 僅作爲一個輔助作用支持 IPv4.即在 IPv4 中,即使沒有 ICMP,仍然可以實現 IP 通信。然而,在 IPv6 中,ICMP 的作用被擴大,如果沒有 ICMPv6,IPv6 就無法進行正常通信。

在 IPv6 中, 從 IP 地址定位 MAC 地址的協議從 ARP 轉爲 ICMP 的鄰居探索消息。這種鄰居探索消息融合了 IPv4 的 ARP、ICMP 重定向以及 ICMP 路由器選擇消息等功能於一體,甚至還提供自動設置 IP 地址的功能。

ICMPv6 中將 ICMP 大致分爲兩類:一類是錯誤消息,另一類是信息消息。類型 0 ~ 127 屬於錯誤消息,128~255 屬於信息消息。

鄰居探索

ICMPv6 中從類型 133 至類型 137 的消息叫做鄰居探索消息。這種鄰居探索消息對於 IPv6 通信起着舉足輕重的作用。鄰居請求消息用於查詢 IPv6 的地址與 MAC 地址的對應關係,並由鄰居宣告消息得知 MAC 地址。鄰居請求消息利用 IPv6 的多播地址實現傳輸。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章