相同点
vxlan和geneve都走udp。
报文头vni都占用24位。
不同点
vxlan头固定长度8个字节。
geneve头由固定长度8个字节和Variable Length Options可变长的0-252个字节组成。
相比于vxlan,有了可变长字节之后,geneve可扩展性更强。
kube-ovn封装的geneve头中,Options中Option Data有32位,前16位表示ingress port,后16位表示egress port。
每个容器网卡都是logical port,它的ingress port和egress port相同。
ovs datapath是logical switch或者logical router,ingress port表示datapath入端口,egress port表示datapath出端口,ingress port和egress port在每个datapath唯一,由ovn-northd分配,保存在南向db port_binding表的tunnel_key列。
vni全局唯一,由ovn-northd分配,保存在南向db datapath_binding表tunnel_key列。