本汪刚开始学习ovs,觉得这不是一天两天就能学会的东西,所以就不谈感想和总结了,分享一下我的学习链接吧,自己耐心感悟吧。
开始vmware试验,这里虚拟机我觉的必须双网卡才能完成这个试验,可能由于是vmware虚拟机的原因吧。
先上一张比较low的图
配置虚拟机ABC的网络
A:192.168.0.11 B(两块网卡):192.168.0.16 192.168.0.18(eno33554992) C(两块网卡):192.168.0.17 192.168.0.19(eno33554992)
虚拟机A要能访问到B C
修改三台机器的系统参数
fs.aio-max-nr = 65536
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
网关配置
虚拟机BC的网关配置为虚拟机A的IP
安装docker
这个百度吧 大把大把的文章
安装ovs
modprobe openvswitch | |
# ovs的核心模块,配合ovs-vswitchd使用 | insmod datapath/openvswitch.ko |
创建ovsdb数据库 | ovsdb-tool create /usr/local/share/openvswitch/conf.db /usr/local/share/openvswitch/vswitch.ovsschema |
启动ovs-server | nohup ovsdb-server /usr/local/share/openvswitch/conf.db --remote=punix:/usr/local/var/run/openvswitch/db.sock --remote=ptcp:6640 --pidfile=ovsdb-server.pid >> /app/ovs/log.txt 2>&1 & |
ovs-vsctl --no-wait init | |
启动ovs-switch | nohup ovs-vswitchd unix:/usr/local/var/run/openvswitch/db.sock -v --pidfile >> /app/ovs/switch.log 2>&1 & |
进入配置部分
配置虚拟机ABC的网络 | A:192.168.0.11 B(两块网卡):192.168.0.16 192.168.0.18(eno33554992) C(两块网卡):192.168.0.17 192.168.0.19(eno33554992) |
虚拟机A | 虚拟机A要能访问到B C |
修改三台机器的系统参数 | fs.aio-max-nr = 65536 net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1 |
网关配置 | 虚拟机BC的网关配置为虚拟机A的IP |
基本要求 | docker启动 虚拟机B --bip 192.168.16.0/24;虚拟机A --bip 192.168.17.0/24 |
每个docker上启动两个容器 | docker run -d -it --name=test16y01 --privileged=true -v /app/docker/waigua/:/app/docker/waigua/ --net=none centos:08.21 /bin/bash |
安装ovs | |
虚拟机C上 | ovs-vsctl add-br sdn-br0 ovs-vsctl set bridge sdn-br0 stp_enable=true ifconfig sdn-br0 192.168.16.2/24 up ovs-vsctl add-port sdn-br0 eno33554992 |
虚拟机D上 | ovs-vsctl add-br sdn-br0 ovs-vsctl set bridge sdn-br0 stp_enable=true ifconfig sdn-br0 192.168.17.2/24 up ovs-vsctl add-port sdn-br0 eno33554992 |
虚拟机C上 | 提前下载pipwork ./pipework sdn-br0 39f80cbc3c5a 192.168.16.6/24 这种命令形式,把两个容器添加上IP(192.168.16.6 192.168.16.7) |
虚拟机D上 | ./pipework sdn-br0 39f80cbc3c5a 192.168.16.6/24 这种命令形式,把两个容器添加上IP(192.168.17.6 192.168.17.7) |
测试网络 | 同一机器上的容器可以互通 ,跨机器就不通了 |
虚拟机C上 | ovs-vsctl add-port sdn-br0 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=192.168.0.17 |
虚拟机D上 | ovs-vsctl add-port sdn-br0 vxlan0 -- set interface vxlan0 type=vxlan options:remote_ip=192.168.0.16 |
测试网络 | 不出意外,容器之间是通的了 |
如有错误,或者问题,不要羞涩,请提问我,谢谢。