1. 程式人生 > >LVS入門篇(一)之ARP協議

LVS入門篇(一)之ARP協議

失敗 自己的 ref 偽造 str 一個 消息 自己 機器

  • 1、概念

  地址解析協議,即ARP(AddressResolutionProtocol),是根據IP地址獲取物理MAC地址的一個TCP/IP協議。主機發送信息時將包含目標IP地址的ARP請求廣播到網絡上的所有主機,並接收返回消息,以此確定目標的物理地址;收到返回消息後將該IP地址和物理地址存入本機ARP緩存中並保留一定時間,下次請求時直接查詢ARP緩存以節約資源。

  • 2、功能

  OSI模型把網絡工作分為七層,IP地址在OSI模型的第三層,MAC地址在第二層,彼此不直接打交道。在通過以太網發送IP數據包時,需要先封裝第三層(32位IP地址)、第二層(48位MAC地址)的報頭,但由於發送時只知道目標IP地址,不知道其MAC地址,又不能跨第二、三層,所以需要使用地址解析協議。使用地址解析協議,可根據網絡層IP數據包包頭中的IP地址信息解析出目標硬件地址(MAC地址)信息,以保證通信的順利進行。ARP是三層協議,但是工作在二層。

  • 3、工作過程

主機A的IP地址為192.168.1.1,MAC地址為0A-11-22-33-44-01;

主機B的IP地址為192.168.1.2,MAC地址為0A-11-22-33-44-02;

當主機A要與主機B通信時,地址解析協議可以將主機B的IP地址(192.168.1.2)解析成主機B的MAC地址,以下為工作流程:

第1步:根據主機A上的路由表內容,IP確定用於訪問主機B的轉發IP地址是192.168.1.2。然後A主機在自己的本地ARP緩存中檢查主機B的匹配MAC地址。

第2步:如果主機A在ARP緩存中沒有找到映射,它將詢問192.168.1.2的硬件地址,從而將ARP請求幀廣播到本地網絡上的所有主機。源主機A的IP地址和MAC地址都包括在ARP請求中。本地網絡上的每臺主機都接收到ARP請求並且檢查是否與自己的IP地址匹配。如果主機發現請求的IP地址與自己的IP地址不匹配,它將丟棄ARP請求。

第3步:主機B確定ARP請求中的IP地址與自己的IP地址匹配,則將主機A的IP地址和MAC地址映射添加到本地ARP緩存中。

第4步:主機B將包含其MAC地址的ARP回復消息直接發送回主機A。

第5步:當主機A收到從主機B發來的ARP回復消息時,會用主機B的IP和MAC地址映射更新ARP緩存。本機緩存是有生存期的,生存期結束後,將再次重復上面的過程。主機B的MAC地址一旦確定,主機A就能向主機B發送IP通信了。

ARP協議要求通信的主機雙方必須在同一網段(即局域網環境)

  • 4、ARP緩存

  ARP緩存是個用來儲存IP地址和MAC地址的緩沖區,其本質就是一個IP地址-->MAC地址的對應表,表中每一個條目分別記錄了網絡上其他主機的IP地址和對應的MAC地址。每一個以太網或令牌環網絡適配器都有自己單獨的表。當地址解析協議被詢問一個已知IP地址節點的MAC地址時,先在ARP緩存中查看,若存在,就直接返回與之對應的MAC地址,若不存在,才發送ARP請求向局域網查詢。

為使廣播量最小,ARP維護IP地址到MAC地址映射的緩存以便將來使用。ARP緩存可以包含動態和靜態項目。動態項目隨時間推移自動添加和刪除。每個動態ARP緩存項的潛在生命周期是10分鐘。新加到緩存中的項目帶有時間戳,如果某個項目添加後2分鐘內沒有再使用,則此項目過期並從ARP緩存中刪除;如果某個項目已在使用,則又收到2分鐘的生命周期;如果某個項目始終在使用,則會另外收到2分鐘的生命周期,一直到10分鐘的最長生命周期。靜態項目一直保留在緩存中,直到重新啟動計算機為止。

arp緩存表是把雙刃劍

(1)有arp緩存表可以加快arp的解析速度

(2)也給黑客帶來了攻擊服務器的風險,俗稱arp欺騙和arp攻擊

  • 5、ARP欺騙原理

  arp攻擊就是通過偽造ip地址和mac地址對實現arp欺騙。地址解析協議是建立在網絡中各個主機互相信任的基礎上的,它的誕生使得網絡能夠更加高效的運行,但其本身也存在缺陷:

  ARP地址轉換表是依賴於計算機中高速緩沖存儲器動態更新的,而高速緩沖存儲器的更新是受到更新周期的限制的,只保存最近使用的地址的映射關系表項,這使得攻擊者有了可乘之機,可以在高速緩沖存儲器更新表項之前修改地址轉換表,實現攻擊。ARP請求為廣播形式發送的,網絡上的主機可以自主發送ARP應答消息,並且當其他主機收到應答報文時不會檢測該報文的真實性就將其記錄在本地的MAC地址轉換表,這樣攻擊者就可以向目標主機發送偽ARP應答報文,從而篡改本地的MAC地址表。ARP欺騙可以導致目標計算機與網關通信失敗,更會導致通信重定向,所有的數據都會通過攻擊者的機器,因此存在極大的安全隱患。

如何防止:

arp -s 192.168.0.11 mac

  • 6、ARP命令

(1)arp -a或arp –g

用於查看緩存中的所有項目。-a和-g參數的結果是一樣的,多年來-g一直是UNIX平臺上用來顯示ARP緩存中所有項目的選項,而Windows用的是arp-a(-a可被視為all,即全部的意思),但它也可以接受比較傳統的-g選項。

(2)arp -a ip

如果有多個網卡,那麽使用arp-a加上接口的IP地址,就可以只顯示與該接口相關的ARP緩存項目。

(3)arp -s ip mac地址

可以向ARP緩存中人工輸入一個靜態項目。該項目在計算機引導過程中將保持有效狀態,或者在出現錯誤時,人工配置的物理地址將自動更新該項目。

(4)arp -d ip

使用該命令能夠人工刪除一個靜態項目。

  • 7、ARP在生產環境產生的問題和解決辦法

(1)ARP病毒和ARP欺騙
(2)高可用服務器對切換時要考慮ARP緩存的問題
(3)路由器等設備無縫遷移時要考慮ARP緩存的問題

LVS入門篇(一)之ARP協議