OVS

目录·功能



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

OVS主要包含三个基本组件:ovs-vswtichd、ovsdb-server、openvswitch.ko

1、ovs-vswitchd组件是交换机的主要模块,运行在用户态,其主要负责基本的转发逻辑、地址学习、外部物理端口绑定等。还可以运用OVS自带的ovs-ofctl工具采用openflow协议对交换机进行远程配置和管理。

2、ovsdb-server组件是存储OVS的网桥等配置、日志以及状态的轻量级数据库。它与ovs-vswitchd都是以一个单独的进程存在于系统中。ovsdb是一个可提供持久化存储的数据库,可借助ovs-vsctl工具配置OVS交换机,配置信息将保存在ovsdb中,设备重启后,相关OVS配置不会丢失。ovs-vswitchd组件与ovsdb-server组件间的通信采用OVSDB管理协议,通信内容包括加载配置信息,同时将运行过程中变化的OVS的配置信息保存到数据库中。

3、openvswitch.ko组件运行在内核态,属于快速转发平面,主要负责流表匹配、报文修改、隧道封装、转发或者上送,并且维护底层转发表。在原始OVS中,报文首先经过该组件完成报文解析和封装、转发规则匹配,若找到转发规则不再经过用户空间,直接转发。否则转交用户空间的ovs-vswitchd组件进行处理。ovs-vswitchd组件与openvswitch.ko组件之间采用netlink执行进程间的通信。netlink是一种进程间通信机制,可用于处理用户态和内核态的通信。
功能

OVS是一种以软件形式存在于虚拟网络中的交换机,它与传统的网络部署中的物理交换机充当的角色相似,可进行划分局域网、搭建隧道、模拟路由。下图展示了OVS再虚拟网络中的应用,地址OVS0是中心交换机,主要负责边缘交换机间的数据通信。OVS1至OVS4是边缘交换机,直接与虚拟机相连,主要负责同主机的虚拟机间通信和跨主机的虚拟机间通信和跨主机的虚拟机间数据包转发。

1、划分局域网

边缘OVS通过划分VLAN,将同主机内的虚拟机加入到不同的VLAN,可实现同主机上的多台虚拟机间局域网隔离。对中心交换机的端口进行VLAN配置,使边缘OVS归属到不同的VLAN中,可阻碍边缘OVS间的二层通信,实现跨主机的虚拟机间局域网隔离。

2、搭建隧道

作为边缘设备的OVS可以参与隧道的搭建,例如GRE隧道和VXLAN隧道。隧道指报文采用某种特定协议进行传输的通道。例如VXLAN隧道,原始报文在经过上层报文封装后,到达VTEP节点再进行VXLAN协议封装,然后经过VXLAN隧道转发路径发出。VXLAN隧道中的VTEP节点可以有OVS实现,OVS能实现VTEP负责的VXLAN报文解析封装、转发、地址学习等功能。OVS的VXLAN隧道技术被广泛运用于云服务的多租户隔离中。

3、模拟路由

OVS在虚拟网络中还可以结合控制器的相关操作实现不同局域网网络拓扑下主机的数据转发,实现路由转发功能,上图的虚拟主机B和虚拟主机F所连接的边缘OVS属于不同的局域网,无法进行原始的二层转发。而可以通过将局域网中的ARP报文送到控制器让控制节点对Openflow网络中的网络节点进行感知,获取openflow中的网络设备信息,然后将相应的ARP流表下发到组网中的边缘OVS上,使得属于非同一局域网的主机可以互相通信。

相关词条:
OVSF  
 
自定义分类:
交换机搭建隧道模拟路由
 
参考资料:
知乎
 
贡献者:
norain
Copyright © 1999-2024 C114 All Rights Reserved | 联系我们 | 沪ICP备12002291号-4