做爰全过程免费的视频网站,wordpress使用memcached,有没有在网上做ps赚钱的网站,高埗镇网站建设OVS 的数据流向都是由 Flow 规则控制的#xff0c;今天我们就来分析 VxLAN 的 Flow 规则。 提个醒#xff1a;这可能是本教程最烧脑的一节#xff0c;lets rock it ! 下面分析控制节点上的 flow rule#xff0c;计算节点类似。 br-int 的 flow rule br-int 的 rule 看上去虽… OVS 的数据流向都是由 Flow 规则控制的今天我们就来分析 VxLAN 的 Flow 规则。 提个醒这可能是本教程最烧脑的一节lets rock it ! 下面分析控制节点上的 flow rule计算节点类似。 br-int 的 flow rule br-int 的 rule 看上去虽然多其实逻辑很简单br-int 被当作一个二层交换机其重要的 rule 是下面这条 cookie0xaaa0e760a7848ec3, duration52798.625s, table0, n_packets143, n_bytes14594, idle_age9415, priority0 actionsNORMAL 此规则的含义是根据 vlan 和 mac 进行转发。 br-tun 的 flow rule 这些才是真正处理 VXLAN 数据包的 rule流程如下 上图各方块中的数字对应 rule 中 table 的序号比如编号为0的方块对应下面三条 rule。 table 0 cookie0xaaa0e760a7848ec3, duration76707.867s, table0, n_packets70, n_bytes6600, idle_age33324, hard_age65534, priority1,in_port1 actionsresubmit(,2) cookie0xaaa0e760a7848ec3, duration76543.287s, table0, n_packets56, n_bytes4948, idle_age33324, hard_age65534, priority1,in_port2 actionsresubmit(,4) cookie0xaaa0e760a7848ec3, duration76707.867s, table0, n_packets0, n_bytes0, idle_age65534, hard_age65534, priority0 actionsdrop 结合如下 port 编号 table 0 flow rule 的含义为 从 port 1patch-int进来的包扔给 table 2 处理actionsresubmit(,2) 从 port 2vxlan-a642100b进来的包扔给 table 4 处理actionsresubmit(,4) 即第一条 rule 处理来自内部 br-int这上面挂载着所有的网络服务包括路由、DHCP 等的数据第二条 rule 处理来自外部 VXLAN 隧道的数据。 table 4 cookie0xaaa0e760a7848ec3, duration76647.039s, table4, n_packets56, n_bytes4948, idle_age33324, hard_age65534, priority1,tun_id0x64 actionsmod_vlan_vid:1,resubmit(,10) table 4 flow rule 的含义为 如果数据包的 VXLAN tunnel ID 为 100tun_id0x64action 是添加内部 VLAN ID 1tag1然后扔给 table 10 去学习。 table 10 cookie0xaaa0e760a7848ec3, duration76707.865s, table10, n_packets56, n_bytes4948, idle_age33324, hard_age65534, priority1 actionslearn(table20,hard_timeout300,priority1,cookie0xaaa0e760a7848ec3,NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]NXM_OF_ETH_SRC[],load:0-NXM_OF_VLAN_TCI[],load:NXM_NX_TUN_ID[]-NXM_NX_TUN_ID[],output:NXM_OF_IN_PORT[]),output:1 table 10 flow rule 的含义为 学习外部从 tunnel进来的包往 table 20 中添加对返程包的正常转发规则然后从 port 1patch-int扔给 br-int。 rule 中下面的内容为学习规则这里就不详细讨论了。 NXM_OF_VLAN_TCI[0..11],NXM_OF_ETH_DST[]NXM_OF_ETH_SRC[],load:0-NXM_OF_VLAN_TCI[],load:NXM_NX_TUN_ID[]-NXM_NX_TUN_ID[],output:NXM_OF_IN_PORT[] table 2 cookie0xaaa0e760a7848ec3, duration76707.866s, table2, n_packets28, n_bytes3180, idle_age33324, hard_age65534, priority0,dl_dst00:00:00:00:00:00/01:00:00:00:00:00 actionsresubmit(,20) cookie0xaaa0e760a7848ec3, duration76707.866s, table2, n_packets42, n_bytes3420, idle_age33379, hard_age65534, priority0,dl_dst01:00:00:00:00:00/01:00:00:00:00:00 actionsresubmit(,22) table 2 flow rule 的含义为 br-int 发过来数据如果是单播包扔给 table 20 处理resubmit(,20) br-int 发过来数据如果是多播或广播包扔 table 22 处理resubmit(,22) table 20 cookie0xaaa0e760a7848ec3, duration76543.287s, table20, n_packets28, n_bytes3180, idle_age33324, hard_age65534, priority2,dl_vlan1,dl_dstfa:16:3e:fd:8a:ed actionsstrip_vlan,set_tunnel:0x64,output:2 cookie0xaaa0e760a7848ec3, duration76707.865s, table20, n_packets0, n_bytes0, idle_age65534, hard_age65534, priority0 actionsresubmit(,22) table 20 flow rule 的含义为 第一条规则就是 table 10 学习来的结果。内部 VLAN 号为 1tag1目标 MAC 是 fa:16:3e:fd:8a:edvirros-vm2的数据包即发送给 virros-vm2 的包action 是去掉 VLAN 号添加 VXLAN tunnel ID 100(十六进制 0x64)并从 port 2 (tunnel 端口 vxlan-a642100b) 发出。 对于没学习到规则的数据包则扔给 table 22 处理。 table 22 cookie0xaaa0e760a7848ec3, duration76543.282s, table22, n_packets2, n_bytes84, idle_age33379, hard_age65534, dl_vlan1 actionsstrip_vlan,set_tunnel:0x64,output:2 cookie0xaaa0e760a7848ec3, duration76707.82s, table22, n_packets40, n_bytes3336, idle_age65534, hard_age65534, priority0 actionsdrop table 22 flow rule 的含义为 如果数据包的内部 VLAN 号为 1tag1action 是去掉 VLAN 号添加 VXLAN tunnel ID 100(十六进制 0x64)并从 port 2 (tunnel 端口 vxlan-a642100b) 发出。 VXLAN 的路由和 floating IP 支持 对于多 VXLAN 之间的 routing 以及 floating IP实现方式与 vlan 非常类似这里不再赘述请参看前面 vlan 相关章节。 总结 本章重点讨论 Neutron 的架构并通过分析 Linux Bridge 和 Open vSwitch 两个 mechnism driver 的技术细节实践了 localflatvlanvxlan 四种网络类型同时也讨论了 routing 以及 floating IP 的实现细节。 Linux Bridge 和 Open vSwitch 都支持 Securet GroupFirewall as a Service Load Balancing as a Service 等高级功能其实现方式也大致相同。 通过本章的学习大家应该能够掌握 Neutron 的理论知识并应用到实践部署中。 到这里OpenStack 的核心技术全部讨论完了下一次 CloudMan 会带着大家回顾一下这些知识给大家一些深入学习的建议同时也会谈谈对后续新教程的一些想法。