arp_announce
問題描述
arp_ignore配置為1是為了不讓服務(wù)器相應(yīng)關(guān)于vip的請求,那么arp_announce配置為2的作用又是什么???
問題解答
回答1:有關(guān)arp_ignore的相關(guān)介紹:
arp_ignore:定義對目標(biāo)地址為本地IP的ARP詢問不同的應(yīng)答模式0
0 - (默認(rèn)值): 回應(yīng)任何網(wǎng)絡(luò)接口上對任何本地IP地址的arp查詢請求
1 - 只回答目標(biāo)IP地址是來訪網(wǎng)絡(luò)接口本地地址的ARP查詢請求
2 -只回答目標(biāo)IP地址是來訪網(wǎng)絡(luò)接口本地地址的ARP查詢請求,且來訪IP必須在該網(wǎng)絡(luò)接口的子網(wǎng)段內(nèi)
3 - 不回應(yīng)該網(wǎng)絡(luò)界面的arp請求,而只對設(shè)置的唯一和連接地址做出回應(yīng)
4-7 - 保留未使用
8 -不回應(yīng)所有(本地地址)的arp查詢
有關(guān)arp_announce的相關(guān)介紹:
arp_announce:對網(wǎng)絡(luò)接口上,本地IP地址的發(fā)出的,ARP回應(yīng),作出相應(yīng)級(jí)別的限制: 確定不同程度的限制,宣布對來自本地源IP地址發(fā)出Arp請求的接口
0 - (默認(rèn)) 在任意網(wǎng)絡(luò)接口(eth0,eth1,lo)上的任何本地地址
1 -盡量避免不在該網(wǎng)絡(luò)接口子網(wǎng)段的本地地址做出arp回應(yīng). 當(dāng)發(fā)起ARP請求的源IP地址是被設(shè)置應(yīng)該經(jīng)由路由達(dá)到此網(wǎng)絡(luò)接口的時(shí)候很有用.此時(shí)會(huì)檢查來訪IP是否為所有接口上的子網(wǎng)段內(nèi)ip之一.如果改來訪IP不屬于各個(gè)網(wǎng)絡(luò)接口上的子網(wǎng)段內(nèi),那么將采用級(jí)別2的方式來進(jìn)行處理.
2 - 對查詢目標(biāo)使用最適當(dāng)?shù)谋镜氐刂?在此模式下將忽略這個(gè)IP數(shù)據(jù)包的源地址并嘗試選擇與能與該地址通信的本地地址.首要是選擇所有的網(wǎng)絡(luò)接口的子網(wǎng)中外出訪問子網(wǎng)中包含該目標(biāo)IP地址的本地地址. 如果沒有合適的地址被發(fā)現(xiàn),將選擇當(dāng)前的發(fā)送網(wǎng)絡(luò)接口或其他的有可能接受到該ARP回應(yīng)的網(wǎng)絡(luò)接口來進(jìn)行發(fā)送.
關(guān)于對arp_announce 理解的一點(diǎn)補(bǔ)充
其實(shí)就是路由器的問題,因?yàn)槁酚善饕话闶莿?dòng)態(tài)學(xué)習(xí)ARP包的(一般動(dòng)態(tài)配置DHCP的話),當(dāng)內(nèi)網(wǎng)的機(jī)器要發(fā)送一個(gè)到外部的ip包,那么它就會(huì)請求 路由器的Mac地址,發(fā)送一個(gè)arp請求,這個(gè)arp請求里面包括了自己的ip地址和Mac地址,而linux默認(rèn)是使用ip的源ip地址作為arp里面 的源ip地址,而不是使用發(fā)送設(shè)備上面的 ,這樣在lvs這樣的架構(gòu)下,所有發(fā)送包都是同一個(gè)VIP地址,那么arp請求就會(huì)包括VIP地址和設(shè)備 Mac,而路由器收到這個(gè)arp請求就會(huì)更新自己的arp緩存,這樣就會(huì)造成ip欺騙了,VIP被搶奪,所以就會(huì)有問題。
arp緩存為什么會(huì)更新了,什么時(shí)候會(huì)更新呢,為了減少arp請求的次數(shù),當(dāng)主機(jī)接收到詢問自己的arp請求的時(shí)候,就會(huì)把源ip和源Mac放入自 己的arp表里面,方便接下來的通訊。如果收到不是詢問自己的包(arp是廣播的,所有人都收到),就會(huì)丟掉,這樣不會(huì)造成arp表里面無用數(shù)據(jù)太多導(dǎo)致 有用的記錄被刪除。
在設(shè)置參數(shù)的時(shí)候?qū)rp_ignore 設(shè)置為1,意味著當(dāng)別人的arp請求過來的時(shí)候,如果接收的設(shè)備上面沒有這個(gè)ip,就不做出響應(yīng),默認(rèn)是0,只要這臺(tái)機(jī)器上面任何一個(gè)設(shè)備上面有這個(gè)ip,就響應(yīng)arp請求,并發(fā)送mac地址
1)vip(virtual ip)。直接路由模式的vip必須跟服務(wù)器對外提供服務(wù)的ip地址在同一個(gè)網(wǎng)段,并且lvs 負(fù)載均衡器和其他所有提供相同功能的服務(wù)器都使用這個(gè)vip;
2)vip被綁定在環(huán)回接口lo0:0上,其廣播地址是其本身,子網(wǎng)掩碼是255.255.255.255。這與標(biāo)準(zhǔn)的網(wǎng)絡(luò)地址設(shè)置有很大的不同。采用這種可變長掩碼方式把網(wǎng)段劃分成只含一個(gè)主機(jī)地址的目的是避免ip地址沖突;
3)echo這段的作用是抑制arp廣播。如果不做arp抑制,將會(huì)有眾多的機(jī)器向其他宣稱:“嗨!我是奧巴馬,我在這里呢!”,這樣就亂套了。
相關(guān)文章:
1. javascript - node.js promise沒用2. golang - 用IDE看docker源碼時(shí)的小問題3. c++ - 如何正確的使用QWebEngineView?4. yii2中restful配置好后在nginx下報(bào)404錯(cuò)誤5. javascript - js 寫一個(gè)正則 提取文本中的數(shù)據(jù)6. 算法 - python 給定一個(gè)正整數(shù)a和一個(gè)包含任意個(gè)正整數(shù)的 列表 b,求所有<=a 的加法組合7. android 如何實(shí)現(xiàn)如圖中的鍵盤上的公式及edittext的內(nèi)容展示呢8. java - 我在用Struts2上傳文件時(shí),報(bào)以下錯(cuò)誤怎么回事?9. 請問是對象還是數(shù)組10. thinkphp6使用驗(yàn)證器 信息如何輸出到前端頁面
