openstack VM能够ping外部网络,可是外部网络ping不通VM

  通过无数次的尝试,终于搭建好了完整的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~!!!虚拟机

相关文章
相关标签/搜索