這篇隨筆將作為本科學習課程-TCP/IP協議分析教程與實驗的簡單記錄。
准備工具:
1.Cisco Packet Tracer
2.Wireshark
3.GNS3
資料:
Wireshark基本用法和過濾規則:https://blog.csdn.net/hzhsan/article/details/43453251
netstat命令詳解:https://www.cnblogs.com/xieshengsen/p/6618993.html
查看自己電腦的MTU:https://zhidao.baidu.com/question/553727686968963692.html
Cisco路由器配置命令大全:https://www.jianshu.com/p/73f84fed10e9
♦使用wireshark在自己的計算機上捕獲瀏覽網頁產生的數據包。怎樣才能只查看訪問指定網站(如:www.xinhuanet.com)的數據包?
1.捕獲瀏覽網頁產生的數據包
(1) 打開wireshark
(2) 選擇網絡接口(我用的無線網,所以選擇wlan)
(3) 打開瀏覽器訪問網頁后產生數據包
2.只查看訪問指定網站的數據包
(1) 以www.xinhuanet.com為例,在過濾器中輸入ip.addr eq 202.200.79.43(注:202.200.79.43為該網站的ip地址,且提前用ping命令獲得其ip)
(2) 確認過濾后只顯示www.xinhuanet.com的數據包
♦如果讀者的主機系統有netstat命令,如何用它來確定系統上的接口與其MTU?
根據主機系統的不同有不同的命令查看。在Linux上使用netstat命令,在命令終端中輸入netstat -i可以查看接口的MTU值。
在Windows上使用netsh命令,在命令終端中輸入netsh interface ip show interface可以查看接口的MTU值
♦ARP請求與應答
1.實驗說明
分別在模擬和真實環境中分析ARP協議的報文格式,理解ARP協議的解析過程。
2.實驗環境
Windows操作系統及網絡環境(主機有以太網卡並連接局域網),安裝有Packet Tracer6.0和Wireshark
3.實驗步驟
(1) 在Packet Tracer中觀察ARP協議。
步驟1 啟動Packet Tracer,建立如下圖的拓撲結構。
步驟2 按上圖配置網絡接口地址,PC0上沒有設置默認網關地址,PC1的默認網關設置為172.16.20.99。注意,上圖中的MAC地址是Packet Tracer自動生成的,實驗時以軟件實際取值為准。
步驟3 在路由器Router0上查看ARP表,執行以下命令。
Router # show arp
查看各個表項內容,注意其中是否有172.16.20.100的表項。
步驟4 切換到模擬方式,然后在路由器Route0執行以下命令。
Router# ping 172.16.20.100
觀察設備收發數據。可以看到,因為沒有在自己的ARP 表中查找到與IP地址172.16.20.100對應的表項,不能構造出鏈路層幀,路由器Router0丟棄了第一個ICMP報文。隨即發出了ARP請求,PC1在收到ARP請求后作出ARP應答,Router0收到應答后更新自己的ARP表。在下一個ICMP報文發出時,路由器就能順利的構造出鏈路層幀了。這就解釋了為什么路由器在第一次執行ping命令時,表示連通的符號第一個總是不通,表示連通的驚嘆號總是4個。
再次在Router0上查看ARP表,可以看到新增的172.16.20.100。
步驟5 仔細分析PDU信息,學習掌握ARP協議的PDU構成,注意觀察ARP幀的鏈路層地址、操作碼、報文內容,比較ARP請求和應答鏈路層幀和PDU內容的差異。
步驟6 對路由器ARP處理的過程進行分析。對沒有ARP表項的通信,路由器會先丟棄報文。
需要說明的是,ARP協議是在局域網內工作的,本實驗利用路由器連接兩個網絡,在地址掩碼上左不同的設置,以說明默認網關的作用。
(2) 用Wireshark觀察ARP協議的工作過程
步驟1 在Windows主機上運行Wireshark,選擇本地網卡,啟動抓包。為了觀察方便,在顯示過濾器欄中輸入arp,以便只查看ARP數據包。
步驟2 在主機運行程序訪問同一網絡中的節點,只要該節點為第一次訪問,則主機都會發出ARP請求。例如,在本地Windows主機(IP地址為192.168.1.102),運行cmd命令,打開命令行窗口,輸入以下命令。
C:\>ping 192.168.1.53
則立刻可以在Wireshark中捕獲到ARP幀。分析幀結構和各個域的信息。
我的電腦連的wifi,分配的地址為192.168.2.145,具體信息如下圖:
在命令行控制台輸入ping 192.168.2.53后,Wireshark捕獲的ARP幀如下圖:
步驟3 一般真實的主機設有默認網關,和默認網關之間會有ARP數據交換。持續捕獲一段時間的數據,一般能觀察到主機和默認網關之間的ARP請求和應答。另外,也可以通過修改主機的IP地址或重啟網卡(禁用后再啟用)的方法,來觀察ARP數據。
捕獲到的主機與默認網關之間的ARP請求和應答如下圖:
4.實驗報告
記錄自己的實驗過程和實驗結果,分析ARP協議的請求和應答報文格式,理解ARP協議的解析過程。
(1) 實驗過程和實驗結果已經包含在上述的實驗步驟和實驗截圖當中。
(2) ARP報文格式:
以太網源地址: 就是發送端地址。
幀類型: 如果是ARP報文,值為0x0806
硬件類型: 表明ARP協議實現在那種類型的網絡上,它的值為1,即表示以太網地址
協議類型:表示解析協議(上層協議),這里一般是0800,即IP
硬件地址長度:也就是MAC地址長度,即6個字節
協議地址長度:也就是IP地址長度,即4個字節
操作類型:表示ARP協議數據報類型。1表示請求報文,2表示應答報文
發送端以太網地址:也就是源MAC地址
發送端IP地址:也就是源IP地址
目的端以太網地址:目標端MAC地址(如果是請求報文,是全0)
目地端IP地址:也就是目地端的IP地址
(3) ARP協議的解析過程
ARP借助ARP請求包和響應包來確定MAC地址。
例如:處在同一鏈路上的主機A 向B發送一個IP請求包,且互不知MAC地址:主機為了獲取主機B的MAC地址,起初通過廣播發送一個ARP請求包,此包包含 想要獲取MAC地址主機的IP地址,因此ARP的請求包中會被同一鏈路上的所有主機或路由解析,如果ARP請求包中的目標IP與自己的IP地址相同,那么此節點就將自己MAC地址塞入ARP響應包,返回給主機A。
♦ARP代理
1.實驗說明
在模擬實驗環境中,觀察分析ARP代理對象,理解ARP代理的作用和工作過程。
2.實驗環境
Windows操作系統及網絡環境(主機有以太網卡並連接局域網),安裝有Packet Tracer6.0
3.實驗步驟
步驟1 啟動PT,打開實驗4-2的拓撲,西喲啊注意的是,PC0的地址172.16.10.100/16的子網掩碼為16位,與其他各個地址的24位不同,另外,PC0上未設置默認網關地址。
步驟2 在PC0上打開命令行窗口,查看ARP表,執行以下命令。
PC>arp -a
該命令確認本地ARP緩存為空。
步驟3 切換到模擬方式,然后在PC0上執行以下命令,觀察設備收發數據的過程。
PC>ping 172.16.10.99
PC>ping 172.16.20.100
步驟4 在PC0上執行命令“arp -a”,查看ARP表,觀察各個表項的特點,出現多個IP地址被映射到一個MAC地址,就是代理ARP的標志。
步驟5 在拓撲圖的路由器Router0右側(172.16.20.0/24網段)連接交換機,以添加更多的主機,注意要和PC1在同一網段。然后在PC0上對新增主機進行ping連通,連通后查看PC0上ARP表的變化。
步驟6 進一步在拓撲圖中增加路由器,連接更多的網絡,在Packet Tracer中以模擬方式從PC0上對其他網絡中主機命令ping,進行連通測試,仔細觀察連通過程的ARP解析過程。連通后,在查看PC0上ARP表的變化。
4.實驗報告
記錄自己的實驗過程和實驗結果,理解ARP代理的實現過程,掌握ARP代理的工作特點。
實驗過程和實驗結果的步驟和截圖已經展示在上面
5.思考
路由器不轉發廣播幀,而是接替地址請求者對其他網絡的節點發送ARP請求,分析跨網絡通信時的ARP解析過程,進一步理解“Hop by Hop”的概念。
首先172.168.10.100/16主機向外發送目的主機為172.168.20.100/24的ARP請求報文;然后網關收到172.168.10.100/1的ARP請求報文,由於網關開啟了ARP代理的功能,因此網關代替172.168.20.100/24向172.168.10.100/16發送ARP響應數據報;之后網關向172.168.20.0/24網段發送172.168.10.100/16的ARP請求報文;最后172.168.20.100/24收到后,發送ARP響應報文。