两台机器操作一样就是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: