• <ul id="mayc0"></ul>
    <ul id="mayc0"><center id="mayc0"></center></ul>
    <strike id="mayc0"><input id="mayc0"></input></strike>
    <ul id="mayc0"></ul>
  • 始創于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業
    • 60秒人工響應
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補償
    您的位置: 網站首頁 > 幫助中心>文章內容

    使用ARP命令來綁定IP和MAC地址

    發布時間:  2012/5/16 20:03:46
    作為企業級的路由防火墻,ISA Server并沒有提供對于MAC地址的控制功能。不過,你可以使用Windows的命令ARP來實現IP地址和MAC地址的綁定。這篇文章介紹了Windows下ARP協議工作的原理,以及如何使用ARP命令來靜態綁定IP地址和MAC地址。

    ISA Server中沒有提供對于MAC地址的控制功能,Why?這是因為MAC地址只能在本地網絡中使用,當數據包跨越路由器時,數據包中主機的源MAC地址就會被路由器的出站接口的MAC地址所代替,這個時候,使用MAC地址來進行控制就不適用了。所以只要是企業級的硬件或者軟件防火墻,都基本沒有提供對MAC地址的控制功能。
    不過微軟也早就考慮到了這點,在Windows中,如果你安裝了TCP/IP網絡協議組件,那么你就可以執行命令ARP。ARP命令的作用是查看本機的ARP緩存、靜態綁定IP地址和MAC地址和刪除靜態綁定項。其實綁定IP地址和MAC地址的本意是為了減少ARP廣播流量,只是可以利用這一功能來控制IP地址的使用。
    在這里我還是先簡單的描述一下Windows下ARP協議的工作原理。ARP協議(Address Resolve Protocol,地址解析協議)工作在TCP/IP協議的第二層-數據鏈路層,用于將IP地址轉換為網絡接口的硬件地址(媒體訪問控制地址,即MAC地址)。
    無論是任何高層協議的通訊,最終都將轉換為數據鏈路層硬件地址的通訊。
    每臺主機都具有一個用于緩存MAC地址的ARP緩存列表,你可以使用命令ARP -a或ARP -g來查看當前的ARP緩存列表。此ARP緩存列表是動態更新的,默認情況下,當其中的緩存項超過兩分鐘沒有活動時,此緩存項就會超時被刪除。你可以使用ARP -s來靜態綁定IP地址和MAC地址,不過在Windows server 2003和XP以前的Windows系統中,就算你設置了靜態MAC地址綁定項,同樣會通過接收其他主機的數據包而更新已經綁定的項。
    在Windows server 2003和XP中,靜態綁定的項不會被動態更新,直到TCP/IP協議終止為止,例如重啟計算機
    。如果要創建永久的靜態MAC地址綁定項,你可以寫一個腳本文件來執行ARP靜態綁定,然后使用計劃任務在啟動計算機時執行該腳本即可。
    例如A主機的IP地址為192.168.0.1,它現在需要與IP為192.168.0.8的主機(主機B)進行通訊,那么將進行以下動作:
    A主機查詢自己的ARP緩存列表, 如果發現具有對應于目的IP地址192.168.0.8的MAC地址項,則直接使用此MAC地址項構造并發送以太網數據包,如果沒有發現對應的MAC地址項則繼續下一步;
    A主機發出ARP解析請求廣播,目的MAC地址是FF:FF:FF:FF:FF:FF,請求IP為192.168.0.8的主機回復MAC地址;
    B主機收到ARP解析請求廣播后,回復給A主機一個ARP應答數據包,其中包含自己的IP地址和MAC地址;
    A接收到B主機的ARP回復后,將B主機的MAC地址放入自己的ARP緩存列表,然后使用B主機的MAC地址作為目的MAC地址,B主機的IP地址(192.168.0.8)作為目的IP地址, 構造并發送以太網數據包;
    如果A主機還要發送數據包給192.168.0.8, 由于在ARP緩存列表中已經具有IP地址192.168.0.8的MAC地址,所以A主機直接使用此MAC地址發送數據包,而不再發送ARP解析請求廣播;當此緩存地址項超過兩分鐘沒有活動(沒有使用)后,此ARP緩存將超時被刪除。
    默認情況下ARP緩存的超時時限是兩分鐘,你可以在注冊表中進行修改。可以修改的鍵值有兩個,都位于
    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
    修改的鍵值:
    鍵值1:ArpCacheLife,類型為Dword,單位為秒,默認值為120
    鍵值2:ArpCacheMinReferencedLife,類型為Dword,單位為秒,默認值為600
    注意:這些鍵值默認是不存在的,如果你想修改,必須自行創建;
    修改后重啟計算機后生效

    如果ArpCacheLife的值比ArpCacheMinReferencedLife的值大,那么ARP緩存的超時時間設置為ArpCacheLife的值;如果ArpCacheLife的值不存在或者比ArpCacheMinReferencedLife的值小,那么對于未使用的ARP緩存,超時時間設置為120秒;對于正在使用的ARP緩存,超時時間則設置為ArpCacheMinReferencedLife的值。
    下圖是我們的試驗網絡結構,ISA Server作為一個邊緣防火墻,內部局域網(192.168.0.0/24)通過ISA Server接入Internet。在這個試驗中,我將在ISA Server上綁定內部客戶True的IP地址192.168.0.8和MAC地址,這樣,當True不在線時,另外一個內部客戶Fake就算修改自己的IP地址為True的IP地址192.168.0.8,也不能通過ISA Server來上網。

    各計算機的TCP/IP設置如下,本次試驗不涉及DNS解析,各服務器的DNS服務器設置為空,在試驗之前已經確認了網絡連接工作正常:

    ISA 2004 Firewall:

    LAN Interface:
    IP:192.168.0.1/24
    DG:None
    MAC:00:03:47:F4:FC:E7


    True(將離線):

    IP:192.168.0.8/24
    DG:192.168.0.1
    MAC:00:0D:60:C3:05:34


    Fake(將修改IP地址為192.168.0.8):

    IP:192.168.0.8/24
    DG:192.168.0.1
    MAC:00:06:D0:06:05:47


    首先,我在ISA Server上使用ARP -S來綁定True的IP地址和MAC地址,運行命令:
    ARP -s 192.168.0.8 00-0D-60-C3-05-34
    然后執行ARP -a來查看ARP緩存列表,結果如下圖所示。你可以看到在ARP緩存列表中IP地址192.168.0.8的類型為static,這表明它是靜態項。此時,我們在ISA Server上的綁定就成功了。

    現在我們在客戶機Fake上,將自己的IP地址修改為192.168.0.8,然后Ping ISA Server:
    C:\Documents and Settings\admin>ipconfig /all
    Windows IP Configuration
    Host Name . . . . . . . . . . . . : anonymous
    Primary Dns Suffix . . . . . . . :
    Node Type . . . . . . . . . . . . : Unknown
    IP Routing Enabled. . . . . . . . : No
    WINS Proxy Enabled. . . . . . . . : No
    Ethernet adapter 本地連接:
    Connection-specific DNS Suffix . :
    Description . . . . . . . . . . . : Intel(R) PRO/100 VE Network Connection
    Physical Address. . . . . . . . . : 00-06-D0-06-05-47
    Dhcp Enabled. . . . . . . . . . . : No
    IP Address. . . . . . . . . . . . : 192.168.0.8
    Subnet Mask . . . . . . . . . . . : 255.255.255.0
    Default Gateway . . . . . . . . . : 192.168.0.1
    DNS Servers . . . . . . . . . . . : 192.168.0.1
    C:\Documents and Settings\admin>ping 192.168.0.1 -n 2
    Pinging 192.168.0.1 with 32 bytes of data:
    Request timed out.
    Request timed out.
    Ping statistics for 192.168.0.1:
    Packets: Sent = 2, Received = 0, Lost = 2 (100% loss),

    Ping超時,Why?從Sniffer上捕獲的數據包可以更清楚的進行說明:
    下圖是捕獲的數據包,它描述了Fake(192.168.0.8) Ping 192.168.0.1的全部過程:
    由于Fake(00:06:D0:06:05:47)沒有192.168.0.1的MAC地址,所以Fake發送ARP地址解析請求廣播,詢問192.168.0.1的MAC地址是什么;
    ISA Server(00:03:47:F4:FC:E7)使用ARP應答回復Fake(00:06:D0:06:05:47),告訴Fake自己的IP地址(192.168.0.1)和MAC地址;
    獲得192.168.0.1的MAC地址后,Fake(192.168.0.8)向192.168.0.1發送PING請求數據包;
    192.168.0.1向192.168.0.8回復PING回復數據包;
    Fake(192.168.0.8)再次向192.168.0.1發送PING請求數據包;
    192.168.0.1再次向192.168.0.8回復PING回復數據包;
    這一切看起來沒有任何問題?那為什么Fake的Ping會超時呢?
    這一切從表明上看是沒有任何問題,但是仔細看捕獲的數據包的以太網頭部,你就會發現問題所在:
    首先,我們看第三個數據包,Fake(192.168.0.8)向192.168.0.1發送的Ping請求,如下圖所示,Fake以自己的MAC地址為源MAC地址、192.168.0.1的MAC地址(00:03:47:F4:FC:E7)為目的MAC地址發送數據包,這沒有任何問題。

    那么看看第四個ISA Server回復的Ping回復數據包呢,源MAC地址是ISA Server的MAC地址(00:03:47:F4:FC:E7),這也沒有問題,但是注意看目的MAC地址,00:0D:60:C3:05:34是離線的客戶機True的MAC地址。還記得我們在ISA Server上做的IP地址(192.168.0.8)和MAC地址綁定嗎?
    ISA Server直接使用自己ARP緩存中的靜態綁定項來發送數據,而不是使用收到的Ping請求數據包中的源MAC地址來作為目的地址。
    因此,Fake認為此數據包不是發給自己的,不會處理此數據包,所以認為沒有Ping回復數據包,自然就是超時了。

    最后說一下,
    我不推薦大家使用靜態IP地址和MAC地址的綁定,這會帶來更多的管理負荷。你可以利用ISA Server強大的身份驗證功能,結合IP地址來進行管理,這樣具有更好的效果。也請不要在論壇問我ARP命令是如何使用的,Windows的幫助是最好的老師。 
    本文出自:億恩科技【www.vbseamall.com】

    服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線