ovs和ovn安装

ovn和ovs介绍

ovn架构图

                                         CMS
                                          |
                                          |
                              +-----------|-----------+
                              |           |           |
                              |     OVN/CMS Plugin    |
                              |           |           |
                              |           |           |
                              |   OVN Northbound DB   |
                              |           |           |
                              |           |           |
                              |       ovn-northd      |
                              |           |           |
                              +-----------|-----------+
                                          |
                                          |
                                +-------------------+
                                | OVN Southbound DB |
                                +-------------------+
                                          |
                                          |
                       +------------------+------------------+
                       |                  |                  |
         HV 1          |                  |    HV n          |
       +---------------|---------------+  .  +---------------|---------------+
       |               |               |  .  |               |               |
       |        ovn-controller         |  .  |        ovn-controller         |
       |         |          |          |  .  |         |          |          |
       |         |          |          |     |         |          |          |
       |  ovs-vswitchd   ovsdb-server  |     |  ovs-vswitchd   ovsdb-server  |
       |                               |     |                               |
       +-------------------------------+     +-------------------------------+
 
 

在部署的时候分为central节点和host节点。

central节点运行OVN Northbound DB 、OVN Southbound DB、ovn-northd

        ovn北向数据库

        ovn南向数据库

        ovn的守护进行:用来与每个host节点运行的ovn-controller建立连接,下发流表到ovn-controller控制转发行为

host节点运行ovn-controller、ovs-vswitchd、ovsdb-server

        ovn-controller:用来与ovn-northd建立连接接收下发的流表规则并筛选作用到ovs上

ovn和ovs安装环境介绍

host1:192.168.10.102 central节点

host2:192.168.10.101 host节点

host3:192.168.10.103 host节点

在三个节点上都执行下面操作

1.直接在github上搜索ovn,第一个项目便是

2.进去后选择一个分支下载即可

3.由于源码编译ovn需要ovs,因此需要将对应版本的ovs源码也下载下来,从上图中可以跳转到对应版本的ovs代码,一定要从这个ovs连接跳转过去下载,否则可能出现编译不成功,下载完后将代码上传到我的编译环境,并解压。

4.进入ovn-branch-23.09目录,删除里面的ovs空目录,并将解压的ovs-ec1d730163d984934c467e050ebf6d39f8c09384复制到ovn目录中并修改目录名字为ovs

5.进入ovs目录执行下面命令,对ovs进行编译安装

./boot.sh

./configure

./make

./make install

6.回到ovn目录执行下面命令对ovn进行编译安装

 

./boot.sh

./configure

./make

./make install

7.现在ovs和ovn已经安装完成,会将ovs和ovn安装在/usr/local目录下

8.设置ovs和ovn可执行文件的环境变量

vim /etc/profile 添加下面内容 export PATH=$PATH:/usr/local/share/openvswitch/scripts export PATH=$PATH:/usr/local/share/ovn/scripts 保存执行 source /etc/profile

配置central节点

在central节点执行下面命令

ovn-ctl start_northd

# center need

ovn-nbctl set-connection ptcp:6641

ovn-sbctl set-connection ptcp:6642

ovn-nbctl show

ovn-sbctl show

查看运行的进程

运行了OVN Northbound DB 、OVN Southbound DB、ovn-northd三个进程

监听了6642、6641端口

关闭防火墙

systemctl stop firewalld

systemctl disable firewalld

配置host节点

配置host2节点

启动ovs

ovs-ctl start 查看ovs运行状态

ovs-ctl status

配置ovs连接central的参数

ovs-vsctl set open_vSwitch . \
external_ids:ovn-encap-ip="192.168.10.102" \
external_ids:local_ip="192.168.10.101" \
external_ids:ovn-encap-type="vxlan" \
external_ids:system-id="192.168.10.103" \
external_ids:ovn-remote="tcp:192.168.10.102:6642" \
external_ids:ovn-nb="tcp:192.168.10.102:6641"

启动ovn-controller,这个进程是ovs的agent,作为ovs的控制器进行下发流表

ovn-ctl start_controller
 
ovs-vsctl --columns external_ids list open_vswitch
 
ovs-ctl status

配置host3节点

启动ovs

ovs-ctl start

查看ovs运行状态
ovs-ctl status

配置ovs连接central的参数

ovs-vsctl set open_vSwitch . \
external_ids:ovn-encap-ip="192.168.10.103" \
external_ids:local_ip="192.168.10.103" \
external_ids:ovn-encap-type="vxlan" \
external_ids:system-id=222222222\
external_ids:ovn-remote="tcp:192.168.10.102:6642" \
external_ids:ovn-nb="tcp:192.168.10.102:6641"

启动ovn-controller,这个进程是ovs的agent,作为ovs的控制器进行下发流表

ovn-ctl start_controller
 
ovs-vsctl --columns external_ids list open_vswitch
 
ovs-ctl status

查看central和host节点状态

在central节点,可以看到host节点会将自己的隧道信息上报到central节点

在host节点查看,可以看到在br-int节点会创建一个vxlan接口

参考文档:https://www.cnblogs.com/jingjingxyk/p/17089276.html

注意:所有节点一定要关闭防火墙,ovs与ovn和ovs之间的隧道连接都需要放开

Open Virtual Network(OVN)是建立在Open vSwitch(OVS)之上的虚拟网络解决方案。OVN通过OVS提供的网络转发和流量处理功能来实现网络通信。 OVN和OVS之间的通信是通过Northbound、Southbound和Southbound数据库实现的。 1. Northbound:Northbound是OVN和外部管理平面之间的接口。外部管理平面可以是OpenStack、Kubernetes等云管理平台或其他管理工具。通过Northbound接口,管理平面可以向OVN提供逻辑网络配置(如逻辑交换机、逻辑端口等),并获取网络状态和统计数据。 2. Southbound:Southbound是OVN和底层网络设备之间的接口。底层网络设备可以是物理交换机、虚拟交换机等。通过Southbound接口,OVN可以向底层网络设备下发流表规则,以实现逻辑网络的转发和流量处理。 3. Southbound数据库:Southbound数据库是一个存储底层网络设备状态和配置信息的数据库。OVN使用Southbound数据库来同步逻辑网络配置和底层网络设备状态。Southbound数据库可以是OVSDB(Open vSwitch Database)或其他兼容的数据库。 具体通信流程如下: 1. 外部管理平面通过Northbound接口将逻辑网络配置写入OVN控制器。 2. OVN控制器将逻辑网络配置存储在自己的数据库中。 3. OVN控制器将逻辑网络配置转换为OVS的规则,并将其下发到相应的OVS交换机上。 4. OVS交换机根据收到的规则进行数据包的转发和流量处理。 5. OVS交换机将处理后的数据包发送到目标主机或底层网络设备。 以上是OVN和OVS之间通信的基本流程。通过这种方式,OVN实现了对逻辑网络的管理和控制,而OVS提供了实际的网络转发和流量处理功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值