行至水穷处 坐看“云”起时

Cloud Native ADN -> CNadn.Net

观察openstack中VXLAN的flows(Icehouse,ubuntu14.04)

首先观察一下br-tun的接口,可以看到

-接口1是与br-int互联的口

-接口2是到10.1.1.145的tunnel接口

-接口3是到10.1.1.5的tunnel接口

最后一个local是内部接口

再观察没有流量时候的flows rule:

上述rule分为table 0 1  2 3 10 20 21,每一行最后的括弧中的数字表示接下来将数据包交给哪个table,数据包将从上到下顺序去匹配这些rule

table 0 中的 in port对应于上面的br-tun中的接口,可以看到 如果in port=3 即数据从接口3(与10.1.1.5的tunnel接口)进来,数据交给table 3,而table 3所做的事情是将数据包的tunnel id去除,并修改添加对应的vlan id,然后交给 table 10, 或者table 3做丢弃动作

table 10在接到数据包后做数据处理,并传给output:1这个接口1,接口1是与br-int交换机互联的接口,因此数据包被送到了br-int交换机,从而交给了相关目的地址。

而如果一开始数据从in port=1 进来,表示数据从br-int进来,数据包经由table 0 匹配后,交给table 1,table 1交给 table 20或者21, table 20根据学习到的mac 与tunnel id等的映射转发数据,而table 21则负责进行复制广播类数据。

因而如果从compute上得一个vm 去ping 网络节点的dhcp接口,获得如下实际结果:

参考资料

http://www.opencloudblog.com/?p=300

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注