Openstack的ping不通例項的解決辦法

CL.TANG發表於2016-10-18

狀態:例項在管理平臺上正常建立,也能vnc到例項裡面使用ifconfig,檢視IP得到我們想要的IP,但是在除了計算節點以外的機器ping例項就是不通。

操作:主要為了測試網路51刪除,重新建立網路51,重新建立例項這一套流程導致的。

解決辦法:

在計算節點使用命令:

tcpdump -i br51 port 22

監聽網橋br51,在其他機器嘗試ssh登入例項。如果監聽的網橋有流量,表示ssh請求能到計算節點。如果例項裡有tcpdump包最好直接監聽例項的網路卡。 如果沒有tcpdump,並且例項不能訪問外網。則在計算節點檢視路由快取,使用命令

[root@node-12 ~]# arp -a
? (172.17.37.5) at fa:16:3e:b9:d0:49 [ether] on br37
? (172.17.36.7) at fa:16:3e:2e:41:42 [ether] on br36
fuel.domain.tld (172.17.45.15) at 00:0c:29:76:f8:f2 [ether] on eth0
? (172.17.39.3) at fa:16:3e:c1:69:2f [ether] on br39
node-5 (172.17.47.3) at 00:0c:29:52:c3:ea [ether] on eth2.47
? (172.17.46.1) at 08:17:35:3c:a2:54 [ether] on eth1.46
? (172.17.36.8) at fa:16:3e:10:51:20 [ether] on br36
? (172.17.38.3) at fa:16:3e:74:f9:58 [ether] on br38
? (172.17.36.3) at fa:16:3e:b8:6b:f4 [ether] on br36
node-9 (172.17.47.4) at 00:0c:29:a9:66:31 [ether] on eth2.47
? (172.17.37.7) at fa:16:3e:e6:ff:6e [ether] on br37
? (172.17.37.6) at fa:16:3e:b4:f8:c1 [ether] on br37
? (172.17.37.3) at fa:16:3e:5c:d4:ef [ether] on br37
? (172.17.37.10) at fa:16:3e:2d:91:c0 [ether] on br37
? (172.17.36.5) at fa:16:3e:1f:9e:63 [ether] on br36
? (172.17.47.2) at 00:0c:29:52:c3:ea [ether] on eth2.47
? (172.17.36.10) at fa:16:3e:72:5f:8a [ether] on br36
node-10 (172.17.47.5) at 00:0c:29:48:6a:92 [ether] on eth2.47
?(172.17.51.3) at fa:16:3e:bd:ab:e9 [ether] on br51
? (172.17.36.9) at fa:16:3e:23:d9:58 [ether] on br36
? (172.17.36.6) at fa:16:3e:bf:a9:7c [ether] on br36

這裡我們可以看到我們例項172.17.51.3的IP地址和mac地址,在例項中檢視網路卡mac,一致。 iptables -L檢視Iptables 規則也沒有發現例項51.3和其他機器有什麼區別。這時候就剩下物理路由中的路由快取不正確了。 經過檢視,情況確實是物理路由(思科路由器)中的路由快取的mac地址還是在這些操作前的路由地址。所以我們就需要更新例項在思科路由器中的快取地址。 在例項中用命令:

arping -I eth0 -c 5 -s 172.17.51.3 172.17.51.1

通知物理路由(思科路由器)更新他的快取。而查詢思科路由的預設路由預設儲存時間是4個小時 這也是為什麼前面有什麼都不做,過段時間就能正常的原因。所以,根據這樣的情況,雖然刪除網段不是經常性的操作,但是刪除虛擬機器是經常性的操作,我們需要系統啟動中新增上IP通知程式。

相關文章