Docker之OVS网络
OVS介绍
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | 什么是OpenVSwich? OpenvSwich:开放虚拟交换标准,是一种基于开源Apache2. 0 许可证的多层软件交换机,专门管理多租赁云计算网络环境,支持KVM、Xen等虚拟化技术。 支持以下功能: 1. 支持标准 802.1Q VLAN模块的Trunk和access端口模式; 2.QoS (Quality of Service)配置,及管理; 3. 支持OpenFlow协议; 4. 支持GRE、VXLAN、STT和LISP隧道; 5. 具有C和Python接口配置数据库; 6. 支持内核态和用户态的转发引擎设置; 7. 支持流量控制及监控。 主要组成部分: ovs - vswitchd 一个实现交换机的守护程序 ovsdb - server 一个轻量级数据库,ovs - vswitchd查询以获取其配置 ovs - dpctl 用于配置交换机的内核模块工具 ovs - vsctl 用于查看和更新ovs - vswitchd的配置工具 ovs - appctl 一个向运行OVS守护程序发送命令的工具 还提供了openflow的工具: ovs - ofctl 用于查看和控制OpenFlow交换机和控制器 ovs - pki 用于创建和管理公钥 ovs - tcpundump 解析openflow消息 |
安装前可以使用命令docker network rm 删除无关的网络
安装部署OVS并建立GRE隧道
节点1:192.168.56.128 容器网段:172.17.1.0/24
节点2:192.168.56.129 容器网段:172.17.2.0/24
修改容器的默认网段需要修改配置文件 不能是172.17.1.0/24
安装OVS
1 | apt - get install openvswitch - switch bridge - utils |
安装完成会以进程的方式启动两个进程一个虚拟交换机一个轻量级数据库
创建网桥并激活
1 2 | ovs - vsctl add - br br0 ip link set dev br0 up |
.将gre0虚拟接口加入网桥br0,并设置接口类型和对端IP地址(远程IP指定对端)
1 | ovs - vsctl add - port br0 gre0 - - set Interface gre0 type = gre options:remote_ip = 192.168 . 56.129 |
添加docker0网桥到OVS网桥br0
1 | brctl addif docker0 br0 |
查看网桥信息
1 | ovs - vsctl show |
1 2 3 4 5 6 7 8 9 10 | c0cdc0b1 - 4a93 - 4a3e - aaf7 - 6096abc32a8d Bridge "br0" Port "br0" Interface "br0" type : internal Port "gre0" Interface "gre0" type : gre options: {remote_ip = "192.168.56.129" } ovs_version: "2.9.0" |
在节点2执行操作
1 2 3 4 5 6 7 | apt - get install openvswitch - switch bridge - utils ps - ef|grep open ovs - vsctl add - br br0 ip link set dev br0 up ovs - vsctl add - port br0 gre0 - - set Interface gre0 type = gre options:remote_ip = 192.168 . 56.128 brctl addif docker0 br0 ovs - vsctl show |
添加静态路由两个节点均操作
1 | ip route add 172.17 . 0.0 / 16 dev docker0 |
创建容器测试互通
1 | docker run - it busybox |
其中节点1的ip为172.17.1.2 节点2的ip为172.17.2.2 测试是相通的
工作原理
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!