通過無數次的嘗試,終於搭建好了完整的Openstack,原本VM能夠獲取到IP地址,可是等到我大功告成的時候,忽然發現外部網絡卻不能ping進VM,我但是整整折騰了我幾個通宵,這是哭啊。然而,皇天不負有心人,終於找到了一點頭緒,我在此記下這一點,以避免之後在遇到不知道怎麼辦。linux
首先我Openstack環境並無問題,可是爲何ping不一樣VM呢,是由於我發現以下:ubuntu
在網絡節點上,執行ip netns網絡
# ip netns qdhcp-6e056e41-e48d-4119-b970-55ff7bae6f2d qrouter-5670bd67-c4ae-45d1-b77c-deb21a33500b
而後我這樣呢執行:spa
#ip netns exec qdhcp-6e056e41-e48d-4119-b970-55ff7bae6f2d ping 192.168.100.2 #這裏的192.168.100.2是VM的IP地址
PING 192.168.100.2 (192.168.100.2) 56(84) bytes of data.
64 bytes from 192.168.100.2: icmp_req=1 ttl=64 time=13.5 ms
64 bytes from 192.168.100.2: icmp_req=2 ttl=64 time=0.682 ms
64 bytes from 192.168.100.2: icmp_req=3 ttl=64 time=0.662 ms
64 bytes from 192.168.100.2: icmp_req=4 ttl=64 time=0.515 mscode
或者router
# ip netns qrouter-5670bd67-c4ae-45d1-b77c-deb21a33500b ping 192.168.100.2 Command "qrouter-5670bd67-c4ae-45d1-b77c-deb21a33500b" is unknown, try "ip netns help". root@network3:/home/ubuntu# ip netns exec qrouter-5670bd67-c4ae-45d1-b77c-deb21a33500b ping 192.168.100.3 PING 192.168.100.3 (192.168.100.3) 56(84) bytes of data. 64 bytes from 192.168.100.3: icmp_req=1 ttl=64 time=0.270 ms 64 bytes from 192.168.100.3: icmp_req=2 ttl=64 time=0.043 ms ^C --- 192.168.100.3 ping statistics ---
這樣看來,並非外部網絡ping不進虛擬機,而是缺乏了外部網絡進入虛擬機內部網絡的路由,我估計是這部分路由沒有設置這一路由規則,你也能夠用route -n 查看一下有沒有內部網絡的路由。blog
爲了方便起見,我在我使用的網關上添加了這一路由規則:ip
route add 192.168.100.0 255.255.255.0 192.168.0.201
linux系統添加:路由
ip route add 192.168.100.0/24 via 192.168.0.201
192.168.100.0/24是內部網絡的地址,192.168.0.201是進入內部網絡的跳轉地址。這樣我就能夠暢通無阻的ping進虛擬機裏面啦,bingo~!!!虛擬機