啥是ARP?啥又是Proxy ARP?
ARP是用來將 IP 地址解析為 MAC 地址的協議。 ARP 表項可以分為動態和靜態兩種類型。動態 ARP ,是利用 ARP 廣播報文,
動態執行並自動進行 IP 地址到以太網 MAC 地址的解析,無需網絡管理員手工處理。靜態 ARP 是建立 lP 地址和 MAC 地址之間固定的映射關系,
在主機和路由器上不能動態調整此映射關系,需要網絡管理員手工添加。設備上有一個 ARP 高速緩存( ARP cache ) ,
用來存放 lP 地址到 MAC 地址的映射表,利用 ARP 請求和應答報文來緩存映射表,以便能正確地把三層數據包封裝成二層數據幀,
達到快速封裝數據幀、正確轉發數據的目的。另外 ARP 還有擴展應用功能,比如 ProxyA 即功能。 Proxy ARP ,即代理 ARP ,
當主機上沒有配置默認網關地址(即不知道如何到達本地網絡的網關設備),可以發送一個廣播 ARP 請求(請求目的主機的 MAC 地址),
使具備 Proxy ARP 功能的路由器收到這樣的請求后,在確認請求地址可達后,會使用自身的 MAC 地址作為該 ARP 請求的回應,
使得處於不同物理網絡的同一網段的主機之間可以正常通信。
接下來開始實驗本實驗模擬公司網絡場景。路由器 R1 是公司的出口網關,連接到外網。公司內所有員工使用 10 . 1 . 0 . 0 / 16 網段, 通過交換機連接到網關路由器上。網絡管理員通過配置靜態 A 即防止 ARP 欺騙攻擊,保證通信安全。 又由於公司內所有主機都沒有配置網關,且分屬於不同廣播域,造成無法正常通信,網絡管理員需要通過在路由器上配置 A 即代理功能,實現網絡內所有主機的通信。
實驗拓撲圖
實驗配置
接下來我們看一下主機的ARP表,目前這個表是空的
我們再來看一下路由器的表,表里裝了剛才我們設置的兩個網關端口
測試連通性,都測一下
剛開始,路由器的ARP表中並沒有目標IP地址與目標MAC地址的對應表項,但當ping完之后就會有了,我們再查看一下路由表
下面我們模擬一下當發生ARP攻擊時,我們該如何操作(ARP攻擊是攻擊者向網關發送錯誤的ARP報文導致正常的主機無法使用服務)
我們使用命令在路由器上靜態添加一條關於PC1的錯誤的ARP映射。(模擬黑客攻擊)
我們再看一下路由表已經變了
我們看看這個時候pc1還能不能ping通網關了(這個時候我們已經ping不通網關了)
因為ARP映射了錯誤的物理地址,我們來抓一下包,可以看到,當pc1發送ping請求時,回去的包,網關發送到了錯誤的地方
ARP攻擊不僅會影響我們網關ARP表的正確性,還會感染其他路由的ARP表,那我們該如何應對這種攻擊手段?
我們可以在路由器上設置靜態ARP表,如果ip和一個MAC地址的靜態映射已經出現在ARP表中,此時動態ARP方式雪萊的映射則無法進入ARP表中
刪除掉錯誤的
綁定正確的
我們在測試一下連通性,連通性恢復正常
當然這種方法的優點是操作簡單,但是它的缺點是必須使網絡中的設備都在ARP表中,工作量太大,那我們該怎么辦呢?
靜態ARP不行,Proxy ARP(ARP代理)便出現了
還拿公司舉例子,目前公司的網絡被路由器R1分割成兩個獨立的廣播域,每個路由器接口對應一個IP網絡,分別使10.1.1.0/24和10.1.2.0/24
我們來查看一下R1的路由表
我們可以拿pc2pingpc3
ping不通,那我們抓個包來看一看,可以看到,pc2發的是廣播包,可是廣播包是過不了路由器的
但是我們如果給R1開啟ARP代理呢?我們來開啟ARP代理
我們再來用pc2ping一下pc3,抓一下包觀察
我們看一下PC2中arp存的是誰的地址
但是這卻與實際是不相符的,它存下的是網關10.1.1.254的mac地址
同時我發現pc2能ping通pc3,pc3卻ping不通pc2
因為,開啟ARP代理后,訪問過程是這樣的。R1接口收到pc2的ARP廣播請求,R1根據目標IP地址查看自身路由表中是否有對應的網絡,找到
對應的網絡,所以R1直接把自身的GE0/0/1接口的mac地址返回給了PC2,PC2便使用接收到的MAC地址作為目標地址發送給R1,R1收到后再
轉發給PC3,同理PC3要想也訪問PC2,也需要在R1的GE0/0/2接口上開啟ARP代理服務。
這個時候PC3已經能夠ping通PC2了
記得save