在linux中查看arp地址解析協(xié)議需要使用終端命令。
創(chuàng)新互聯(lián)建站專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于網(wǎng)站建設(shè)、成都網(wǎng)站制作、柳江網(wǎng)絡(luò)推廣、小程序設(shè)計、柳江網(wǎng)絡(luò)營銷、柳江企業(yè)策劃、柳江品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)建站為所有大學(xué)生創(chuàng)業(yè)者提供柳江建站搭建服務(wù),24小時服務(wù)熱線:18980820575,官方網(wǎng)址:www.cdcxhl.com
以Deepin linux為例,使用終端命令查看arp步驟如下所示:
1、在程序列表中點擊打開終端命令程序。
2、在終端命令中輸入查看arp命令:arp -g 。
3、如圖所示,即是本地arp地址解析協(xié)議。
這是網(wǎng)上一篇教程
arp緩存就是ip地址和mac地址關(guān)系緩存列表。在windows下
arp
-d
[$ip]
不指定ip地址時清除所有arp緩存。在linux下
arp
-d
$ip
必須指定ip地址才能執(zhí)行這條命令的此參數(shù),所有在linux系統(tǒng)下
arp
-d
$ip
命令只能清除一個ip地址的對應(yīng)mac地址緩存,當(dāng)然可以使用組合命令操作,這也算是linux的一個優(yōu)點吧。
組合命令清除所有arp緩存:arp
-n|awk
'/^[1-9]/{system("arp
-d
"$1)}'其實linux也有內(nèi)部命令清除所有arp緩存,但是不太好記憶,用的人很少。以下命令清除eth0接口的所有arp緩存。ip
neigh
flush
dev
eth0
ARP關(guān)閉方法如下:
名詞解釋
ARP(地址解析協(xié)議)
地址解析協(xié)議,即ARP(Address Resolution Protocol),是根據(jù)IP地址獲取物理地址的一個TCP/IP協(xié)議。主機發(fā)送信息時將包含目標(biāo)IP地址的ARP請求廣播到網(wǎng)絡(luò)上的所有主機,并接收返回消息,以此確定目標(biāo)的物理地址;收到返回消息后將該IP地址和物理地址存入本機ARP緩存中并保留一定時間,下次請求時直接查詢ARP緩存以節(jié)約資源。地址解析協(xié)議是建立在網(wǎng)絡(luò)中各個主機互相信任的基礎(chǔ)上的,網(wǎng)絡(luò)上的主機可以自主發(fā)送ARP應(yīng)答消息,其他主機收到應(yīng)答報文時不會檢測該報文的真實性就會將其記入本機ARP緩存;由此攻擊者就可以向某一主機發(fā)送偽ARP應(yīng)答報文,使其發(fā)送的信息無法到達預(yù)期的主機或到達錯誤的主機,這就構(gòu)成了一個ARP欺騙。ARP命令可用于查詢本機ARP緩存中IP地址和MAC地址的對應(yīng)關(guān)系、添加或刪除靜態(tài)對應(yīng)關(guān)系等。相關(guān)協(xié)議有RARP、代理ARP。NDP用于在IPv6中代替地址解析協(xié)議。
方法一:禁用網(wǎng)卡的ARP協(xié)議
使用 ifconfig eth0 -arp
方法二:關(guān)閉內(nèi)核的ARP功能
echo 1 /proc/sys/net/ipv4/conf/eth0/arp_ignore
echo 2 /proc/sys/net/ipv4/conf/eth0/arp_announce
方法三:安裝軟件
安裝arptables(類似iptables),ARP協(xié)議還是啟動,但是arptables drop所有進入和出去的包
arptables -A INPUT -j DROP
arptables -A OUTPUT -j DROP
從ip_finish_output2到dev_queue_xmit路徑:
arp協(xié)議:
(1).硬件類型:
硬件地址類型,該字段值一般為ARPHRD_ETHER,表示以太網(wǎng)。
(2).協(xié)議類型:
表示三層地址使用的協(xié)議,該字段值一般為ETH_P_IP,表示IP協(xié)議
(3)硬件地址長度,以太網(wǎng)MAC地址就是6;
(4)協(xié)議地址長度,IP地址就是4;
(5)操作碼
常見的有四種,arp請求,arp相應(yīng),rarp請求,rarp相應(yīng)。
(6)發(fā)送方硬件地址與IP地址,(7)目標(biāo)硬件地址與目標(biāo)IP地址。
arp頭數(shù)據(jù)結(jié)構(gòu):
arp模塊的初始化函數(shù)為arp_init(),這個函數(shù)在ipv4協(xié)議棧的初始化函數(shù)inet_init()中被調(diào)用。
1.初始化arp表arp_tbl;
2.注冊arp協(xié)議類型;
3.建立arp相關(guān)proc文件,/proc/net/arp;
4.注冊通知事件
一個neigh_table對應(yīng)一種鄰居協(xié)議,IPv4就是arp協(xié)議。用來存儲于鄰居協(xié)議相關(guān)的參數(shù)、功能函數(shù)、鄰居項散列表等。
一個neighbour對應(yīng)一個鄰居項,就是一個arp條目
鄰居項函數(shù)指針表,實現(xiàn)三層和二層的dev_queue_xmit()之間的跳轉(zhuǎn)。
用來存儲統(tǒng)計信息,一個結(jié)構(gòu)實例對應(yīng)一個網(wǎng)絡(luò)設(shè)備上的一種鄰居協(xié)議。
注冊arp報文類型 :dev_add_pack(arp_packet_type);
就是把arp_packet_type添加到ptype_base哈希表中。
注冊新通知事件的時候,在已經(jīng)注冊和UP的設(shè)備上,會調(diào)用一次這個通知事件。
設(shè)備事件類型:
創(chuàng)建一個鄰居項,并將其添加到散列表上,返回指向該鄰居項的指針。
tbl:待創(chuàng)建的鄰居項所屬的鄰居表,即arp_tbl;
pkey:三層協(xié)議地址(IP地址)
dev:輸出設(shè)備
want_ref:??
創(chuàng)建鄰居項
1.設(shè)置鄰居項的類型
2.設(shè)置鄰居項的ops指針
3.設(shè)置鄰居項的output函數(shù)指針
調(diào)用dst_link_failure()函數(shù)向三層報告錯誤,當(dāng)鄰居項緩存中還有未發(fā)送的報文,而該鄰居卻無法訪問時被調(diào)用。不懂。
用來發(fā)送arp請求,在鄰居項狀態(tài)定時器處理函數(shù)中被調(diào)用。
neigh:arp請求的目的鄰居項
skb:緩存在該鄰居項中的待發(fā)送報文,用來獲取該skb的源ip地址。
將得到的硬件源、目的地址,IP源、目的地址等作為參數(shù),調(diào)用arp_send()函數(shù)創(chuàng)建一個arp報文并將其輸出。
創(chuàng)建及發(fā)送arp報文
創(chuàng)建arp報文,填充字段。
發(fā)送arp報文
用來從二層接收并處理一個arp報文。這個函數(shù)中就是做了一些參數(shù)檢查,然后調(diào)用arp_process()函數(shù)。
neigh_event_ns
neigh_update
這個函數(shù)的作用就是更新鄰居項硬件地址和狀態(tài)。分支比較多。
neigh_update_notify
代理arp(proxy arp),通常像路由器這樣的設(shè)備才使用,用來代替處于另一個網(wǎng)段的主機回答本網(wǎng)段主機的arp請求。
感覺代碼ARP好像沒啥用呀。
網(wǎng)絡(luò)主機發(fā)包的一般過程:
1.當(dāng)目的IP和自己在同一網(wǎng)段時,直接arp請求該目的IP的MAC。
2.當(dāng)目的IP和自己不再同一網(wǎng)段時,arp請求默認(rèn)網(wǎng)關(guān)的MAC。
當(dāng)主機沒有默認(rèn)網(wǎng)關(guān)的時候,arp請求別的網(wǎng)段的報文,到達路由器后,本來路由器是要隔離廣播的,把這個arp請求報文給丟棄,這樣就沒法通信了。當(dāng)路由器開啟arp proxy后,路由器發(fā)現(xiàn)請求的目的IP在其他網(wǎng)段,就自己給主機回復(fù)一個arp響應(yīng)報文,這樣源主機就把路由器的MAC當(dāng)成目的IP主機對應(yīng)的MAC,可以通信了。這樣可能會造成主機arp表中,多個IP地址都對應(yīng)于路由器的同一個MAC地址。
可以使用arping命令發(fā)送指定IP的arp請求報文。
寫完了發(fā)現(xiàn)這個老妹寫的arp代理文章蠻好的,不過她好像是轉(zhuǎn)載的。
1.首先,右鍵點擊桌面,選擇“打開終端”,或者按CTRL+Alt+T打開終端。
2.在終端中輸入ifconfig命令并按Enter鍵運行。
3.在ifconfig命令的輸出信息中,enp3s0表示以太網(wǎng)卡。
4.hwaddr之后的信息是MAC地址,MAC地址是48位的二進制數(shù),總共6控制的話,一般用十六進制表示,使用每個字節(jié):
分開,每4位二進制數(shù)的使用十六進制數(shù)表示,每個字節(jié)有兩個十六進制數(shù)來表達,所以MAC地址有六個字段,由五個冒號分開通道。