<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 如何在Linux路由上設(shè)置IP和MAC綁定

          如何在Linux路由上設(shè)置IP和MAC綁定

          作者: 時間:2017-06-06 來源:網(wǎng)絡(luò) 收藏
          在有些系統(tǒng)中有這樣的需求,希望內(nèi)部網(wǎng)中的某幾個地址連接互聯(lián)網(wǎng),而又希望這些地址不被非法用戶盜用??梢酝ㄟ^下面的解決辦法實現(xiàn):

          首先使用ipchains或者iptables來設(shè)定只允許合法的地址連出。

          對于合法IP建立IP/捆綁。要討論這個問題我們首先需要了解ARP協(xié)議的工作原理,arp協(xié)議是地址解析協(xié)議(Address Resolution Protocol)的縮寫,其作用及工作原理如下:

          在底層的網(wǎng)絡(luò)通信中,兩個節(jié)點想要相互通信,必須先要知道源與目標(biāo)的MAC地址。為了讓系統(tǒng)能快速地找到一個遠(yuǎn)程節(jié)點的MAC地址,每一個本地的內(nèi)核都保存有一個即時的查詢表 (稱為ARP緩存)。ARP中有影射遠(yuǎn)程主機的IP地址到其對應(yīng)的MAC地址的一個列表。地址解析協(xié)議(ARP)緩存是一個常駐內(nèi)存的數(shù)據(jù)結(jié)構(gòu),其中的內(nèi)容是由本地系統(tǒng)的內(nèi)核來管理和維護的。默認(rèn)的情況下,ARP緩存中保留有最近十分鐘本地系統(tǒng)與之通信的節(jié)點的IP地址(和對應(yīng)的MAC地址)。

          當(dāng)一個遠(yuǎn)程主機的MAC地址存在于本地主機的ARP 緩存中,轉(zhuǎn)換遠(yuǎn)程節(jié)點的IP地址為MAC地址不會遇到問題。然而在許多情況下,遠(yuǎn)程主機的MAC地址并不存在于本地的ARP緩存中,系統(tǒng)會怎么處理呢?在知道一個遠(yuǎn)程主機的IP地址,但是MAC地址不在本地的ARP緩存中的時候,以下的過程用來獲取遠(yuǎn)程節(jié)點的MAC地址:本地主機發(fā)送一個廣播包給網(wǎng)絡(luò)中的所有的節(jié)點,詢問是否有對應(yīng)的IP地址。一個節(jié)點(只有一個)會回答這個ARP廣播信息。在回應(yīng)的信息包里就會包含有這個遠(yuǎn)程主機的MAC地址。在收到這個返回包后,本地節(jié)點就會在本地ARP緩存中記錄遠(yuǎn)程節(jié)點的MAC地址。

          如果我們將IP/MAC對應(yīng)關(guān)系建立為固定的,也就是對那些合法IP地址建立靜態(tài)的MAC對應(yīng)關(guān)系,那么即使非法用戶盜用了IP地址linux器在回應(yīng)這些IP發(fā)出的連接請求時則不會通過arp協(xié)議詢問其mac地址而是使用建立的靜態(tài)MAC地址、發(fā)出應(yīng)答數(shù)據(jù)這樣盜用IP者則不會得到應(yīng)答數(shù)據(jù)從而不能使用網(wǎng)絡(luò)服務(wù)。

          建立靜態(tài)IP/MAC捆綁的方法是:建立/etc/ethers文件,其中包含正確的IP/MAC對應(yīng)關(guān)系,格式如下:

          192.168.2.32 08:00:4E:B0:24:47

          然后再/etc/rc.d/rc.local最后添加:arp -f即可

          2.4內(nèi)核的iptables可以對IP和同時進行限定,使用該功能對合法IP的規(guī)則同時限定IP地址和地址即可。



          關(guān)鍵詞: 路由 IP Linux Mac

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();