arp: 顯示全部的表項。
arp -d address: 刪除一個arp表項。
arp -s address hw_addr: 設置一個arp表項。
經常使用參數:
-a 使用bsd形式輸出。(沒有固定的列)
-n 使用數字形式顯示ip地址,而不是默認的主機名形式。
-D 不是指定硬件地址而是指定一個網絡接口的名稱,表項將使用相應接口的MAC地址。通常用來設置ARP代理。
-H type, --hw-type type: 指定檢查特定類型的表項,默認type爲ether,還有其餘類型。
-i If, --device If: 指定設置哪一個網絡接口上面的arp表項。
-f filename: 做用同'-s',不過它經過文件來指定IP地址和MAC地址的綁定。文件中每行分別是主機和MAC,中間以空格分割。若是沒有指定文件名稱,則使用/etc/ethers文件。
開啓arp代理
echo 1 > /proc/sys/net/ipv4/conf/eth1/proxy_arp
代理ARP的應用環境?
A:Proxy ARP應該使用主機沒有配置默認網關或沒有任何路由策略的網絡上。
舉個例子:主機A,IP地址是192.168.0.11/24。主機B,IP地址是192.168.1.22/24。主機A和主機B經過路由器R相鏈接,而且路由器R啓用了Proxy ARP,並配置有路由。網絡拓撲以下:
eth0 eth0 eth1 eth0
A------------------Router R------------------B
192.168.0.11/24 192.168.0.0/24 eth0 192.168.1.22/24
192.168.1.0/24 eth1
在主機A上執行:ping 192.168.1.22,主機A不知道主機B的MAC地址是多少,首先要發送ARP查詢報文,路由器R接收到主機A發出的ARP查詢報文,並代替主機B做出應答,應答ARP報文中填入的就是路由器R的MAC地址。這樣,主機A就會認爲路由器R的地址是192.168.1.22。之後全部發往192.168.1.22的報文都發到路由器R,路由器R再根據已配置好的路由表將報文轉發給主機B。
這樣作的好處就是,主機A上不須要設置任何默認網關或路由策略,無論路由器R的IP地址怎麼變化,主機A都能經過路由器B到達主機B,也就是實現了所謂的透明代理。相反,若主機A上設置有默認網關或路由策略時,當主機A向192.168.1.22發送報文,首先要查找路由表,而主機A所在的網段是192.168.0.0/24,主機B所在網段是192.168.1.0/24,主機A只能經過默認網關將報文發送出去,這樣代理ARP也就失去了做用。
防止ARP攻擊的shell代碼
#!/bin/bash
declare gw=`route -n | grep -e '^0.0.0.0'`
declare gwname=`echo $gw | grep -oe '\w*$'`
declare gwip=`echo $gw | grep -oe '[0-9]\{2,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}'`
declare gwmac=`arp -n | grep -e $gwip | grep -oe '[0-9A-F]\{2\}:[0-9A-F]\{2\}:[0-9A-F]\{2\}:[0-9A-
F]\{2\}:[0-9A-F]\{2\}:[0-9A-F]\{2\}'`
echo "switch $gwname arp: $gwip - $gwmac to static"
arp -s $gwip $gwmac
echo "done, off arp reuqest .."
ifconfig $gwname -arp
echo "all done."
arping命令
arping -U -I 發送包的網卡接口 -s 源ip 目的ip
假設你的eth0接口對應的ip爲192.168.1.1,網關爲192.168.1.255你就可使用
arping -U -I eth0 -s 192.168.1.1 192.168.1.255
參數
-0:指定源地址爲0.0.0.0,這個通常是在咱們剛剛安裝好系統,電腦還沒配置好IP的時候
-a:Audible ping.這個當有reply回來的時候,你的電腦有喇叭的話,就會滴滴的叫
-A:Only count addresses matching requested address
-b:相似-0,指定源broadcast爲255.255.255.255
-B:指定這個就至關於 arping 255.255.255.255
-c count:發送指定數量的arp包後,即中止退出
-d:這個比較重要,當局域網有IP佔用的時候,能夠指定這個參數,當有相同的IP的不一樣MAC地址reply的時候,arping會退出,退出碼爲1
-D:這個檢測是否丟包的,當丟包的時候打印感嘆號,正常的時候打印逗號
-e:和-a相反,當沒有reply的時候,會滴滴滴
-p:打開混雜模式,當前用戶對mac無權限時,能夠加上這個選
-r:輸出的時候只打印MAC,寫腳本的時候用獲得,不用本身對結果awk了
-R:輸出的時候只打印IP,和上面同樣
-s MAC:指定源MAC地址
-S IP:指定源IP,設置了源IP,若是目標主機沒有到源IP的route,則有可能收不到answer
-t MAC:指定目的MAC
-T IP:指定目的IP,
-i interface:指定發送arp包的設備。不指定的話,默認爲系統的第一塊網卡
-q:表示不打印輸出,寫腳本不想打印輸出的時候,應該用的到
-u:沒啥大用,結果顯示的時候,加這個參數和不加,index的顯示形式不一樣
-v:打印詳細的輸出,默認打印的好像就是verbose
-w deadline:指定兩個ping直接的時間間隔,單位爲毫秒,默認爲1秒
用法
用法1:查看某個IP的MAC地址
arping 192.168.131.155
用法2:查看某個IP的MAC地址,並指定count數量
arping -c 1 192.168.131.155
用法3:當有多塊網卡的時候,指定特定的設備來發送請求包
arping -i eth1 -c 1 192.168.131.155
用法4:查看某個IP是否被不一樣的MAC佔用
arping -d 192.168.131.155
用法5:查看某個MAC地址的IP,要在同一子網才查獲得
arping -c 1 52:54:00:a1:31:89
用法6:肯定MAC和IP的對應,肯定指定的網卡綁定了指定的IP
arping -c 1 -T 192.168.131.156 00:13:72:f9:ca:60
用法7:肯定IP和MAC對應,肯定指定IP綁在了指定的網卡上
arping -c 1 -t 00:13:72:f9:ca:60 192.168.131.156
用法8:有時候,本地查不到某主機,能夠經過讓網關或別的機器去查。如下幾種形式測了下均可以
arping -c 1 -S 10.240.160.1 -s 88:5a:92:12:c1:c1 10.240.162.115
arping -c 1 -S 10.240.160.1 10.240.162.115
arping -c 1 -s 88:5a:92:12:c1:c1 10.240.162.115