admin
不忘初心,方得始终
级别: 管理员
只看楼主 | | | 0楼 发表于:2017-03-21 08:39

Openstack网络报错不能连通其他地址的处理思路

  Openstack Juno 报错:
  Router 65c9b753-35fd-421c-b808-9c3c389bcb13 failed to connect to 182.150.27.112:9090.
  原因分析:
  路由上端口存在IP地址冲突,绑定到路由端口上的IP地址已经被其他网络设备占用,导致路由器公网出口无法连通到外网。
  排查思路及方法:
  1.引用环境变量及设置python字符集:
   . openrc
   export PYTHONIOENCODING=utf8
  2.查看路由器所在的网络节点:
  neutron l3-agent-list-hosting-router 65c9b753-35fd-421c-b808-9c3c389bcb13
  3.登录到网络节点:
   ssh node-3
  4.在网络节点执行ip netns |grep 路由器ID找到路由器的namespace
   ip netns |grep  65c9b753-35fd-421c-b808-9c3c389bcb13
  5.执行ip netns 命令查看虚拟路由器上的接口信息,尤其需要确定qg-xxx接口的MAC地址。
  ip netns exec qrouter-65c9b753-35fd-421c-b808-9c3c389bcb13 ip a
  6.执行neutron router-show查看路由器的子网IDsubnet_id信息。
  neutron router-show 65c9b753-35fd-421c-b808-9c3c389bcb13
  7.执行neutron subnet-show 查看路由器子网所对应的公网IP段内的地址,包括起始地址、DNS和网关。
  neutron subnet-show 52f22cdc-1384-49aa-970f-6633184e070b
  8.查看52f22cdc-1384-49aa-970f-6633184e070b网络下的虚拟路由器,选择一个和出问题的路由器在同一个子网下的虚拟路由器。
  neutron router-list |grep  "52f22cdc-1384-49aa-970f-6633184e070b"
  9.这里选择一个虚拟路由器qrouter-059d6475-dd0c-4980-b379-383d75d7bf15,执行ping 公网IP的命令。
   ip nents exec qrouter-059d6475-dd0c-4980-b379-383d75d7bf15 ping x.x.x.x
   打开另外一个窗口,执行ip netns exec qrouter-XXX arp -n查看虚拟路由器的qg-xxx接口的MAC地址。
   ip netns exec qrouter-059d6475-dd0c-4980-b379-383d75d7bf15 arp -n
  10.如果第5步骤查看的qg接口的MAC地址和第9步arp -n查看的MAC地址一致,证明不存在IP地址冲突的情况。否则,说明存在IP地址冲突,需要重新绑定浮动IP地址。