ovs

Open vSwitch简称OVS,OVS是一个支持多层数据转发的高质量虚拟交换机,主要部署在服务器上,相比传统交换机具有很好的编程扩展性,同时具备传统交换机实现的网络隔离和数据转发功能,运行在每个实现虚拟化的物理机器上,并提供远程管理。OVS提供了两种在虚拟化环境中远程管理的协议:一个是OpenFlow,通过流表来管理交换机的行为,一个是OVSDB管理协议,用来暴露交换机的端口状态。其中OpenFlow协议可用于定于SDN网络,实现网络转发平面和控制平面分离。

OVS

物理交换机和虚拟交换机的通信模型

SDN控制器控制物理交换机(SDN网关)转发:SDN控制器发送欺骗BGP报文至SDN网关,告知SDN网关路由下一跳是虚机交换机,最终形成路由表项;同时通过netconf下发EVPN VXLAN相关配置至SDN网关
SDN控制器控制虚机交换机(OVS)转发:SDN控制器通过Openflow协议下发流表至OVS,OVS通过流表进行转发

OVS内部接口

OVS默认会存在2个网桥:br-ex与br-int。其中,br-ex网桥上连外部物理网卡,实现外网网络对接,下连br-int网桥;br-int为虚机接入网桥,上连br-ex网桥,下连虚机,为虚机提供基础的二层服务
Br-ex网桥上存在2种端口:dpdkbond和br-ex接口。其中,dpdkbond接口可以是聚合接口,是连接外部接口,成员口标识是dpdkbondp1、 dpdkbondp2;br-ex接口是实现Overlay和封装与解封装
Br-int网桥存在3种端口,vhu、ot和br-int接口。其中,vhu接口是连接虚机的接口;Ot接口是虚拟隧道接口(不封装vxlan),主要是作为内部连接使用,同时ot接口与br-ex接口是多对一的连接关系,通过远端IP进行区分;br-int接口是管理接口,但是锐捷本次没有使用,故该接口是DOWN状态

ovs内部接口

OVS转发原理

步骤一、
Vhu收到VM发出的ICMP请求报文后,该报文通过流表将报文转发,出接口是ot1
步骤二、
(1)ot1根据静态路由配置(SDN控制器逻辑下发),将报文转发至br-ex网桥的br-ex接口;
(2)将报文送到br-ex时,将隧道封装的流表拷贝到br-ex,并且在br-ex网桥完成VXLAN的封装
步骤三、
br-ex接口是进行传统转发,封装后的报文通过mac地址转发。mac地址表中,目的端口是dpdkbond接口,目的mac为br-ex接口网关地址的mac
步骤四、
待上联主机回应ICMP应答到br-ex后,br-ex接口是进行传统转发,封装后的报文通过mac地址表查询。Mac地址表中,目的端口是br-ex接口,目的mac地址是br-ex接口的MAC。
步骤五、
Br-ex接口解封装VXLAN报文,由于br-ex和ot口是1对多关系,通过get隧道配置查看远端IP找到对应的ot口,直接通过内部逻辑转成对应OT接口,无需通过路由转发
步骤六、
ot1收到报文后通过流表将报文转发,出接口是vhu接口

ovs转发流程