通过OVS实现Docker容器通信

实验环境

  1. Ubuntu 20.04
  2. Docker 20.10.6
    在这里插入图片描述
    本机 docker 上有两个镜像,一个是通过 docker pull ubuntu 拉取下的 ubuntu 镜像,另一个是在 ubuntu 镜像的基础上添加了 ping 和 ifconfig 命令
  3. OVS 2.13.1

一、添加一个 OVS 网桥

ovs-vsctl add-br s1

在这里插入图片描述

二、创建两个 Ubuntu 容器

创建第一个 ubuntu 容器,命名 host1

docker run -it --name=host1 --net=none --privileged=true cyquen/ubuntu:v1

创建第二个 ubuntu 容器,命名 host2

docker run -it --name=host2 --net=none --privileged=true cyquen/ubuntu:v1
  • –name 为容器指定一个名称
  • –net=none 指定容器的连接类型为 none
  • –privileged=true 提升 docker 容器权限
    在这里插入图片描述在这里插入图片描述
    由于 docker 命令里设置了 --net=none ,docker 容器里只有一个环回口 lo
    在这里插入图片描述

三、使用 ovs-docker 命令实现两容器互联

为 容器 host1 和 host2 添加 eth0 网卡

ovs-docker add-port s1 eth0 host1
ovs-docker add-port s1 eth0 host2

在这里插入图片描述这时候通过 ifconfig 命令可以看到容器 host1 和 host2 多了 eth0 网卡,但是没有 ip
在这里插入图片描述
为容器 host1 和 host2 的 eth0 配置 ip
容器 host1:

ifconfig eth0 192.168.0.1/24

容器 host2:

ifconfig eth0 192.168.0.2/24

在这里插入图片描述
配置完 ip 后,通过 ping 命令 测试连通性
在这里插入图片描述
通过 ovs-ofctl show s1 可以看到 ovs 默认有一条流表项,代表流正常转发
在这里插入图片描述

参考

https://blog.csdn.net/yeya24/article/details/79829240

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
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、付费专栏及课程。

余额充值