OpenStack 网络故障排除方法:
OpenStack的网络故障排除最好分好边界。比如虚拟路由器、TAP设备、br-int网桥等,通过tcpdump -i eth0 ,arp 命令,ping及traceroute命令进行网络检测。
1.先看虚拟机能否获取到IP地址,如果能够获取到IP地址,看是否是指定私网的。如果不能获取,证明网络的DHCP或者配置有错误。
执行nova list --all-t|more 查看云主机的名称对应的计算节点。
2.执行nova show $vm_uuid查看VM 所在的计算节点和实例名称。
3.登录到VM所在的计算节点,执行 virsh list --all查看VM的状态,执行virsh dumpxml instance-XXXXXXXX查看虚拟机对应的配置文件。
4.在虚拟机里面执行ifconfig -a|more查看系统的网卡信息,并且查看xml文件中的网卡信息。
<interface type='bridge'>
<mac address='fa:16:3e:21:75:0a'/>
<source bridge='qbr37a3da40-30'/>
<target dev='tap37a3da40-30'/>
<model type='virtio'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='fa:16:3e:af:a8:1e'/>
<source bridge='qbr9e00a54b-ce'/>
<target dev='tap9e00a54b-ce'/>
<model type='virtio'/>
<alias name='net1'/>
eth0连接的目的设备是tap37a3da40-30,别名为net0.
eth1连接的目的设备是tap9e00a54b-ce,别名为net1.
ethX和tapXXXXXXXX-XX是TAP设备。TAP设备桥接到网桥qbrXXXXXXXX-XX上。qbr设备是因为不能在TAP设备上配置network ACL rules而增加的设备。
eth0对应的tap37a3da40-30,桥接到的网桥为qbr37a3da40-30.
5.执行#brctl show命令查看网桥qbrXXXXXXXX-XX的接口信息,会查看到tapXXXXXXXX-XX设备和qvbXXXXXXXX-XX设备。
这里出现的qvbXXX和qvoXXX是一对veth pair devices,是一对虚拟的网卡设备,用来连接bridge device和switch。连接Linux bridge网桥和Open vSwitch的虚拟网卡设备。名字的涵义是q-quantum,v-veth,b-bridge,o-open vswitch.(quantum年代的遗留)。
6.