《解決OS虛擬機(jī)內(nèi)采用LVS-DR模式請(qǐng)求超時(shí)問(wèn)題》升級(jí)版

最近一段時(shí)間很少更新了从隆,一方面是忙于推進(jìn)公司內(nèi)部私有云平臺(tái)的建設(shè),另一方面是公司搞Kubernetes的哥們離職了,這個(gè)重?fù)?dān)自然落在了我身上逻炊。由于時(shí)間關(guān)系,有很長(zhǎng)都沒(méi)登錄簡(jiǎn)書(shū)了犁享。其實(shí)年初選擇在簡(jiǎn)書(shū)上更新自己的工作記錄嗅骄,很重要的原因是簡(jiǎn)書(shū)的App在手機(jī)上格式渲染的很好,體驗(yàn)不錯(cuò)饼疙。加上自己也懶得花錢(qián)花時(shí)間去折騰博客溺森。有個(gè)簡(jiǎn)單的用著還不錯(cuò)的簡(jiǎn)書(shū)自然成了我的選擇。

好了窑眯,家常扯得也差不多了屏积,該干正事呢。

背景

這兩天在公司新機(jī)房你上線了幾十臺(tái)Ocata版本的OpenStack磅甩,和上次一樣炊林,監(jiān)控部門(mén)同事申請(qǐng)了十多臺(tái)機(jī)器做Zabbix Proxy的lvs集群。踩過(guò)之前的坑《解決OS虛擬機(jī)內(nèi)采用LVS-DR模式請(qǐng)求超時(shí)問(wèn)題》卷要,我就知道渣聚,這次分給業(yè)務(wù)放不僅僅只有一個(gè)VIPallowed_address_pairs而已。
經(jīng)過(guò)上次在Mitaka上踩過(guò)的坑僧叉,發(fā)現(xiàn)lvs節(jié)點(diǎn)所在的宿主機(jī)上iptables對(duì)于OUTPUT的報(bào)文沒(méi)有做規(guī)則奕枝,導(dǎo)致客戶(hù)端請(qǐng)求在丟給RealServer時(shí)被丟棄。解決起來(lái)也很簡(jiǎn)單瓶堕,在neutron-openvswi-local上添加accept語(yǔ)句就能解決這個(gè)問(wèn)題隘道。

這次更新了Ocata版本發(fā)現(xiàn)社區(qū)竟然還是沒(méi)有解決這個(gè)Bug,看來(lái)還得手動(dòng)再執(zhí)行一次。

現(xiàn)象

上線了Ocata版本發(fā)現(xiàn)谭梗,這次我在lvs節(jié)點(diǎn)的宿主機(jī)上添加了accept語(yǔ)句后客戶(hù)端仍然無(wú)法建立連接忘晤。這就奇怪了,難倒Ocata版的安全組規(guī)則實(shí)現(xiàn)機(jī)制有變動(dòng)激捏?

經(jīng)過(guò)我前后對(duì)比Ocata和Mitaka版本的安全組的iptables規(guī)則發(fā)現(xiàn)并無(wú)差異设塔,另一方面業(yè)務(wù)方的lvs部署都是標(biāo)準(zhǔn)的輸出,部署肯定沒(méi)問(wèn)題远舅。那問(wèn)題多半還是在Neutron上闰蛔。

排查過(guò)程

簡(jiǎn)單抓了下客戶(hù)端、LVS和RealServer這三臺(tái)服務(wù)器的流量發(fā)現(xiàn)表谊,RealServer能夠收到Client發(fā)送的三次握手的[S]包钞护,同時(shí)RealServer也應(yīng)答了[S.]

這個(gè)時(shí)候爆办,問(wèn)題出現(xiàn)了难咕。RealServer在發(fā)出[S.]包后,居然收到客戶(hù)端的[R]報(bào)文距辆。根據(jù)解釋R是RESET(復(fù)位TCP連接)的意思余佃。我們知道正常的三次握手客戶(hù)端應(yīng)該回的是[.]相應(yīng)報(bào)文,可是這里卻出現(xiàn)了[R].

問(wèn)題點(diǎn)很有可能是客戶(hù)端沒(méi)有收到來(lái)自RealServer的ack報(bào)文跨算。檢查了下客戶(hù)端的流量爆土,果然沒(méi)有收到。那么目前得出結(jié)論就是诸蚕,宿主機(jī)丟棄了RealServer響應(yīng)的報(bào)文步势。那么同理在宿主機(jī)上加一條accept語(yǔ)句,果然客戶(hù)端三次握手成功背犯,tcp建立連接碴裙。

坑啊吞歼,這個(gè)是個(gè)大坑怔球!

坑的不是需要我手動(dòng)去添加iptables規(guī)則他去,大坑的是neutron-openvswitch-agent會(huì)去刷新iptables規(guī)則,導(dǎo)致之前加的策略失效柱锹!

臨時(shí)解決

目前能夠知道會(huì)引發(fā)iptables刷新的策略有agent重啟和實(shí)例的增刪哪自。查了Neutron的代碼,本來(lái)想實(shí)現(xiàn)在刷新iptables之后再加一條accept規(guī)則禁熏。但是現(xiàn)在業(yè)務(wù)部門(mén)催得緊壤巷,再加上自己基礎(chǔ)不好,便先用運(yùn)維的方式解決匹层。

原理就是每隔2分鐘去Check一下規(guī)則是否存在隙笆,沒(méi)有就給加上锌蓄。

cat CheckIptablesRulesLvsDr.sh

#!/bin/bash

ChainsName='neutron-openvswi-local'

function IsChainExist()
{
    /usr/sbin/iptables-save |grep $ChainsName > /dev/null 2>&1
    [[ $? -eq 0 ]] && echo 0 || echo 1
}

function IsRulesExist()
{
    /usr/sbin/iptables -C $ChainsName -j ACCEPT > /dev/null 2>&1
    [[ $? -eq 0 ]] && echo 0 || echo 1
}

function AddRulesAccept()
{
    /usr/sbin/iptables -A $ChainsName -j ACCEPT
}

[[ `IsChainExist` -ne 0 ]] && \
    exit 0

[[ `IsRulesExist` -ne 0 ]] && \
    AddRulesAccept

通過(guò)ansible-playbook推送下到計(jì)算節(jié)點(diǎn)即可

- name: Check Iptables Rules Used by Lvs Dr Mode
  template: src=etc/neutron/CheckIptablesRulesLvsDr.sh dest=/etc/neutron/CheckIptablesRulesLvsDr.sh mode=755
  tags:
    - lvsdr

- name: Crontab to check iptables on compute nodes. it is used by lvs dr mode in instances
  cron: name='checkiptables'  minute='*/2' job="/bin/bash /etc/neutron/CheckIptablesRulesLvsDr.sh" user="root"
  tags:
    - lvsdrcron
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末升筏,一起剝皮案震驚了整個(gè)濱河市撑柔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌您访,老刑警劉巖铅忿,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異灵汪,居然都是意外死亡檀训,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)享言,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)峻凫,“玉大人,你說(shuō)我怎么就攤上這事览露∮恚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵差牛,是天一觀的道長(zhǎng)命锄。 經(jīng)常有香客問(wèn)我,道長(zhǎng)偏化,這世上最難降的妖魔是什么脐恩? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮侦讨,結(jié)果婚禮上驶冒,老公的妹妹穿的比我還像新娘。我一直安慰自己韵卤,他們只是感情好骗污,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著怜俐,像睡著了一般身堡。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拍鲤,一...
    開(kāi)封第一講書(shū)人閱讀 51,287評(píng)論 1 301
  • 那天贴谎,我揣著相機(jī)與錄音,去河邊找鬼季稳。 笑死擅这,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的景鼠。 我是一名探鬼主播仲翎,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼痹扇,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了溯香?” 一聲冷哼從身側(cè)響起鲫构,我...
    開(kāi)封第一講書(shū)人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎玫坛,沒(méi)想到半個(gè)月后结笨,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡湿镀,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年炕吸,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片勉痴。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡赫模,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蒸矛,到底是詐尸還是另有隱情瀑罗,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布莉钙,位于F島的核電站廓脆,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏磁玉。R本人自食惡果不足惜停忿,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望蚊伞。 院中可真熱鬧席赂,春花似錦、人聲如沸时迫。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)掠拳。三九已至癞揉,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間溺欧,已是汗流浹背喊熟。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留姐刁,地道東北人芥牌。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像聂使,于是被迫代替她去往敵國(guó)和親壁拉。 傳聞我的和親對(duì)象是個(gè)殘疾皇子谬俄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容