淺談ARP

一:ARP的原理:
我們知道以太網設備比如網卡都有自己全球唯一的MAC地址,它們是以MAC地址阿里傳輸以太網數據包的,但是它們卻識別不了IP包中的IP地址,所以我們在以太網中進行IP通信的時候就需要一個協議來建立IP地址與MAC地址的對應關係,以使數據包能發到一個確定的地方去,這就是ARP(地址解析協議)

1:ARP數據報格式
在網絡通訊時,源主機的應用程序知道目的主機的IP地址和端口號,卻不知道目的主機的硬件地址,而數據報包首先是被網卡接受到再去處理上層協議,如果接受到的數據包的硬件地址與本機不符,直接丟棄,因此在通訊前必須獲得目的主機的硬件地址,ARP協議就是起到這個作用.

栗子:
源主機發出ARP請求,詢問”IP地址是192.168.0.1的主機的硬件地址是多少”,並將這個請求廣播到本地網段(以太網首部的硬件地址填FF:FF:FF:FF;FF:FF表示廣播),目的主機接受到廣播的ARP請求,發現其中的IP地址與本機相符,則發送一個ARP應答數據包給源主機,將自己的硬件地址填寫在應答包中.

2:ARP數據報的格式表示如下:
這裏寫圖片描述

源MAC地址,目的MAC地址在以太網首部和ARP請求中個出現一次,,硬件類型指鏈路層網絡類型,1爲以太網,協議來行值要裝換的地址類型,,op字段爲1表示ARP請求,op字段爲2表示ARP應答.

3:栗子:
請求的過程:
這裏寫圖片描述

以太⽹首部:⽬目的主機採⽤用⼴廣播地址,源主機的MAC地址是00:05:5d:61:58:a8,上層協議類
型0x0806表⽰示ARP。

由於以太⽹網規定最⼩小數據長度爲46字節,ARP幀長度只有28字節,因此有18字節填充位,填充位
的內容沒有定義,與具體實現相關。
應答過程:
這裏寫圖片描述
始終記住:發送端是源,接受端是目的,然後對照圖就會容易些.
二:幾條常見的指令:
1:輸入指令ifconfig -a
或者是in link show可以查看mac地址
這裏寫圖片描述
2:linux下抓取網頁命令的指令
(1):默認系統沒有tcpdump的
(2):這裏我們可以yum直接安裝
yum install -y tcpdump

這裏寫圖片描述
三:arp命令:
arp命令用於操作主機的arp緩衝區,它可以顯示arp緩衝區的所有條目,刪除指定的條目或者添加靜態ip地址與MAC地址對應的關係
1:$arp-v詳細模式
這裏寫圖片描述
2:arp-n顯示數字地址
這裏寫圖片描述
3:arp-a查看主機的IP和MAC對應關係,默認顯示全部
這裏寫圖片描述
4:arp-d刪除指定主機的IP和MAC對應關係
可以自己驗證啊
5:arp-i只顯示指定網卡的IP和MAC對應關係
這裏寫圖片描述
四:驗證arp抓取對應主機的ip/mac地址
我們寫一段shell腳本

#!/bin/bash
head=192.168.0
i=0
count=0
while [ $i -le 254 ]
do
    if [ $count -gt 20 ];then
        count=0
        sleep 1
    fi
    ping -c1 "${head}"".$i" &
    let i++
    let count++
done
wait
echo "========================================="
arp -a | grep -v incomplete
echo "========================================="

在後臺抓取的有效的ip,網絡號爲192.168.0
這裏寫圖片描述

發佈了113 篇原創文章 · 獲贊 62 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章