1.
(1)在网络节点上的路由器命名空间中往外ping包,路径是怎么样的,每一步的包头src_mac, dst_mac, src_ip, dst_ip分别是什么
首先走qrouter-xxx内部的iptables PREROUTEING表和NAT表,然后走路由表,如果是本机就走INPUT表然后走本机路由表找到目的网卡走OUTPUT出来. 一般从qg出来到br-ex的eth0,当数据包到达br-ex时,首先要匹配br-ex上的流表,除非特殊标记的包需要drop掉,其他的都会广播到br-ex的所有接口上,一般从eth0出去到外网。
(2)从VM 主机内部往外网地址ping,路径是怎么样的,每一步的包头src_mac, dst_mac, src_ip, dst_ip分别是什么。
首先数据包从VM出来需要经过计算节点的qbr,通过加载在qbr上的安全组过滤,然后到达br-int,br-tun通过加载在这两个ovs上的流表过滤,然后通过vxlan-tunnel到达网络节点(非DVR模式)的br-tun,然后分别通过网络节点的br-tun, br-int两个ovs上的流表过滤,到达DHCP或者Router接口,然后再通过加载在虚拟网卡上的PREROUTEING表和NAT表,然后走路由表...接下来的路径见(1)
这里又分为两种情况
A. VM所在子网添加到路由器上,本身没有floatingip
B. VM绑定了floatingip
这两种情况也就是上述(1)中的PREROUTING和nat表和route表有些规则不同,其他大同小异。
这里要开启iptables才走以上的PREROUTING,nat,INPUT表。