OVS+Docker

 两台机器操作一样就是IP不同但是设置都是相同的:

 A机器:192.168.71.142

 docker0:172.17.42.1

 B机器:192.168.71.136

 docker0:172.17.43.1

关闭selinux:

vim /etc/selinux/config

之后重启机器

yum install openvswitch –y

systemctl start openvswitch

一定要查看系统日志看看openvswitch程序没问题才可以

 cat /var/log/messages

创建网桥br0:

ovs-vsctl add-br br0

创建gre1隧道(协议)类型是gre类型链接到对端192.168.71.136的物理IP上:

ovs-vsctl add-port br0 gre1 -- set interface gre1 type=gre option:remote_ip=192.168.71.136

查看 ovs是否没问题:

ovs-vsctl show

#添加br0到本地docker0 

systemctl start docker

brctl addif docker0 br0

把 br0 和docker0都起来

ip link set dev br0 up

ip link set dev docker0 up

修改docer0的默认IP:

vim /usr/lib/systemd/system/docker.service

--bip=172.18.42.1/16 -Htcp://0.0.0.0:5257 -Hunix:///var/run/docker.sock --pidfile=/var/run/docker.pid

systemctl daemon-reload && systemctl restart docker

ip route add 172.17.0.0/16 dev docker0(应该已经存在了)

iptables -t nat -A POSTROUTING -s 172.17.0.0/16 -j MASQUERADE

安装抓包工具:

yum install -y wireshark

在A机器上执行192.168.71.142:

tshark -i eno16777736 ip proto gre

在B机器上执行192.168.71.136:

在两台机器上创建容器ping对方物理IP 和对方容器IP都没问题:

142机器-->136机器的docker0:

原文地址:https://www.cnblogs.com/fuyuteng/p/9399072.html