1.介绍
sdn分为三个层面,可以简单分为控制层面(sdn控制器,如opendaylight、ryu),数据层面(OVS作为交换机,docker作为主机)和应用层面。本文介绍如何将docker与ovs相连。
本文主要参考了这两篇
2.添加ovs网桥s1
- 启动ovs有些麻烦,步骤大概如下:
启动OVS(Open vSwitch)的步骤可以分为以下几个部分:
一、载入OVS模块
- 首先,需要载入openvswitch的模块到内核中。可以通过命令
/sbin/modprobe openvswitch
来完成这一步骤,并通过/sbin/lsmod | grep openvswitch
来确认模块是否已经成功加载。二、设置环境变量并启动OVS服务
- 导出环境变量,以便系统能够找到OVS的相关脚本。可以通过命令
export PATH=$PATH:/usr/local/share/openvswitch/scripts
来完成。- 启动OVS服务,使用命令
ovs-ctl start
。执行完成后,如果未出现错误,即表示OVS已成功启动。三、启动ovsdb-server服务
- 同样先设置环境变量,如上述步骤中的导出环境变量命令。
- 使用命令
ovs-ctl --no-ovs-vswitchd start
来启动ovsdb-server服务。执行后若无误,说明ovsdb-server服务已成功启动。四、启动ovs-vswitchd服务
- 设置环境变量,方法与前述相同。
- 使用命令
ovs-ctl --no-ovsdb-server start
来启动ovs-vswitchd服务。执行完成后,如果一切正常,ovs-vswitchd服务就已经成功启动了。五、创建和配置OVS数据库
- 建立Open vSwitch的配置文件和数据库目录,使用命令
mkdir -p /usr/local/etc/openvswitch
。- 根据ovsdb模板创建ovsdb数据库,用于存储虚拟交换机的配置信息。使用命令
ovsdb-tool create /usr/local/etc/openvswitch/conf.db vswitchd/vswitch.ovsschema
来执行这一操作。- 如果在创建数据库时出现“Resource temporarily unavailable”的错误提示,可以选择忽略,因为这通常不会影响OVS的正常使用。
完成以上步骤后,OVS就应该已经成功启动并配置好了。请注意,这些步骤可能需要根据具体的系统版本和OVS版本进行适当的调整。同时,为了确保OVS能够在系统重启后自动启动,还可以考虑将其设置为开机自启服务。
(来自文心一言)
- 打开之后我们就可以建立网桥s1了
ovs-vsctl add-br s1
3.新建两个host容器
需要新开两个终端,分别输入:
docker run -it --name=h1 --net=none --privileged=true ubuntu:v1
docker run -it --name=h2 --net=none --privileged=true ubuntu:v1
使用ifconfig命令查看h1
在操作ovs的终端中输入,给h1和h2添加eth0网卡
ovs-docker add-port s1 eth0 h1
ovs-docker add-port s1 eth0 h2
分别在h1,h2所在的终端添加代码,给eth0配置ip
ifconfig eth0 192.168.0.1/24
ifconfig eth0 192.168.0.2/24
此时就完成了ovs+docker部分的配置。