br-int, br-tun
br-int是一个ovs桥,不是linux bridge,这个ovs桥把本计算节点上的所有vm的port连接上,那怎么才能让这些不同租户的port不互相干扰呢,就是用vlan,每个租户分配不同的vlan tag。
br-tun是用于东西流量的,比如一个租户的计算节点1上的虚拟机,为了和计算节点2上的虚拟机通讯,两者之间就会建一个tunnel。
那么一个计算借点会有多少个tunnel呢?就是看这个节点上的虚机和多少个计算节点上的续集有联系,最差的情况就是:如果有N计算几点,就有N-1个tunnel(网络节点另算)
neutron里的flow table
为了使逻辑更加清晰,在neutron中,flow table使用了多个table来分别控制不同的flow
1 | PATCH_LV_TO_TUN = 1 |
当一个port创建的时候,会在context里设置init_flag = True.
1 | if context.init_flag: |
设置了need_pop_flooding_entry的用途是啥呢?
1 | # Notify other agents to add fdb rule for current port |
这样就会向该网络的所有port所在的ovs-agent广播一下,广播的结果是,在这些ovs-agent所在的机器上,加入一条flow table,
当这个netwwrk有广播包的时候,给我一份,比如响应arp啥的。