arp_announce
問題描述
arp_ignore配置為1是為了不讓服務器相應關于vip的請求,那么arp_announce配置為2的作用又是什么???
問題解答
回答1:有關arp_ignore的相關介紹:
arp_ignore:定義對目標地址為本地IP的ARP詢問不同的應答模式0
0 - (默認值): 回應任何網(wǎng)絡接口上對任何本地IP地址的arp查詢請求
1 - 只回答目標IP地址是來訪網(wǎng)絡接口本地地址的ARP查詢請求
2 -只回答目標IP地址是來訪網(wǎng)絡接口本地地址的ARP查詢請求,且來訪IP必須在該網(wǎng)絡接口的子網(wǎng)段內(nèi)
3 - 不回應該網(wǎng)絡界面的arp請求,而只對設置的唯一和連接地址做出回應
4-7 - 保留未使用
8 -不回應所有(本地地址)的arp查詢
有關arp_announce的相關介紹:
arp_announce:對網(wǎng)絡接口上,本地IP地址的發(fā)出的,ARP回應,作出相應級別的限制: 確定不同程度的限制,宣布對來自本地源IP地址發(fā)出Arp請求的接口
0 - (默認) 在任意網(wǎng)絡接口(eth0,eth1,lo)上的任何本地地址
1 -盡量避免不在該網(wǎng)絡接口子網(wǎng)段的本地地址做出arp回應. 當發(fā)起ARP請求的源IP地址是被設置應該經(jīng)由路由達到此網(wǎng)絡接口的時候很有用.此時會檢查來訪IP是否為所有接口上的子網(wǎng)段內(nèi)ip之一.如果改來訪IP不屬于各個網(wǎng)絡接口上的子網(wǎng)段內(nèi),那么將采用級別2的方式來進行處理.
2 - 對查詢目標使用最適當?shù)谋镜氐刂?在此模式下將忽略這個IP數(shù)據(jù)包的源地址并嘗試選擇與能與該地址通信的本地地址.首要是選擇所有的網(wǎng)絡接口的子網(wǎng)中外出訪問子網(wǎng)中包含該目標IP地址的本地地址. 如果沒有合適的地址被發(fā)現(xiàn),將選擇當前的發(fā)送網(wǎng)絡接口或其他的有可能接受到該ARP回應的網(wǎng)絡接口來進行發(fā)送.
關于對arp_announce 理解的一點補充
其實就是路由器的問題,因為路由器一般是動態(tài)學習ARP包的(一般動態(tài)配置DHCP的話),當內(nèi)網(wǎng)的機器要發(fā)送一個到外部的ip包,那么它就會請求 路由器的Mac地址,發(fā)送一個arp請求,這個arp請求里面包括了自己的ip地址和Mac地址,而linux默認是使用ip的源ip地址作為arp里面 的源ip地址,而不是使用發(fā)送設備上面的 ,這樣在lvs這樣的架構下,所有發(fā)送包都是同一個VIP地址,那么arp請求就會包括VIP地址和設備 Mac,而路由器收到這個arp請求就會更新自己的arp緩存,這樣就會造成ip欺騙了,VIP被搶奪,所以就會有問題。
arp緩存為什么會更新了,什么時候會更新呢,為了減少arp請求的次數(shù),當主機接收到詢問自己的arp請求的時候,就會把源ip和源Mac放入自 己的arp表里面,方便接下來的通訊。如果收到不是詢問自己的包(arp是廣播的,所有人都收到),就會丟掉,這樣不會造成arp表里面無用數(shù)據(jù)太多導致 有用的記錄被刪除。
在設置參數(shù)的時候?qū)rp_ignore 設置為1,意味著當別人的arp請求過來的時候,如果接收的設備上面沒有這個ip,就不做出響應,默認是0,只要這臺機器上面任何一個設備上面有這個ip,就響應arp請求,并發(fā)送mac地址
1)vip(virtual ip)。直接路由模式的vip必須跟服務器對外提供服務的ip地址在同一個網(wǎng)段,并且lvs 負載均衡器和其他所有提供相同功能的服務器都使用這個vip;
2)vip被綁定在環(huán)回接口lo0:0上,其廣播地址是其本身,子網(wǎng)掩碼是255.255.255.255。這與標準的網(wǎng)絡地址設置有很大的不同。采用這種可變長掩碼方式把網(wǎng)段劃分成只含一個主機地址的目的是避免ip地址沖突;
3)echo這段的作用是抑制arp廣播。如果不做arp抑制,將會有眾多的機器向其他宣稱:“嗨!我是奧巴馬,我在這里呢!”,這樣就亂套了。
相關文章:
1. 百度地圖 - Android app中準備接入地圖sdk,百度VS高德哪個好一點?2. mongoDB批量插入文檔時,運行下面代碼,用MongoVUE查看數(shù)據(jù)庫,mongo庫中只存在一個文檔?不應該是20個嗎?3. 百度地圖api - Android百度地圖SDK,MapView上層按鈕可見卻不可觸,怎么解決?4. node.js - vue文件修改后如何自動build成html、js、css等5. HTML5禁止img預覽該怎么解決?6. javascript - 關于圣杯布局的一點疑惑7. android-studio - 用Android Studio開發(fā)基于百度位置服務的Android軟件中遇到jar中沒有主清單屬性的問題8. javascript - 如何將一個長為365的數(shù)組對象按月份切割成12組?9. javascript - JS如何把回調(diào)閉包形參傳遞給外部環(huán)境的變量10. html5 - 需要做一個移動端微信頁面的小游戲,腦子里比較空希望有大神小神稍微指點指點。
