这里总结一下之前分析neutron 网络行为的方法,
主要用的的工具有:
tcpdump, 用来查看某个网卡上的数据
iptables: 查看iptable 的rule
ovs-vsctl, ovs-ofctl, 查看OVS的bridge 信息 和 openflow 信息。
首先我的环境物理拓扑如下,Network node 的eth1 与eth2 分别连接到Data network 与 external netowork 上,
instance 信息如下
controller:/local/scratch/shared/test_script/nova # nova list
+--------------------------------------+--------+---------+------------+-------------+-------------------------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+--------+---------+------------+-------------+-------------------------------------+
| 5fcad84a-9756-41d2-9062-e5f5d9ef9b60 | master | ACTIVE | - | Running | net01=192.168.101.101, 172.16.16.21 |
+--------------------------------------+--------+---------+------------+-------------+-------------------------------------+
| ID | Name | Status | Task State | Power State | Networks |
+--------------------------------------+--------+---------+------------+-------------+-------------------------------------+
| 5fcad84a-9756-41d2-9062-e5f5d9ef9b60 | master | ACTIVE | - | Running | net01=192.168.101.101, 172.16.16.21 |
外部路由器由一台ubuntu 虚拟机实现,
现在我们从External network ping instance的public ip 172.16.16.21, 然后一步一步trance 看这条ping报文是如何在network node上处理的。
1. 进入network的 br-ex,被转发到br-int
通过网络拓扑,可以看到这个报文会被发送到network的eth2上
数据发送到network的eth2 上后,因为这个端口属于OVS bridge br-ex 上,所以接下来可以看br-ex 如何处理这个报文
这里使用ovs-ofctl show 命令查看某个bridge 下的端口以及对应的端口号,ovs-ofctl dump-flows 查看bridge是如何处理报文的。
我的输出如下,
network:~ # ovs-ofctl show br-ex
...
1(eth2): addr:52:54:00:5d:4a:eb
...
2(phy-br-ex)<
...
2(phy-br-ex)<