系统环境:Linux cenos7 3.10.0-514.26.2.el7.x86_64
网络环境:
主机1:ENS33 193.168.120.71/24
主机2:ENS33 193.168.120.78/24
安装好bridge-utils openvswitch
安装openvswitch可以参考网上的资料:
yum -y install make gcc openssl-devel autoconf automake rpm-build redhat-rpm-config
yum -y install python-devel openssl-devel kernel-devel kernel-debug-devel libtool wget
mkdir -p ~/rpmbuild/SOURCES
wget http://openvswitch.org/releases/openvswitch-2.5.0.tar.gz
cp openvswitch-2.5.0.tar.gz ~/rpmbuild/SOURCES/
tar xfz openvswitch-2.5.0.tar.gz
sed 's/openvswitch-kmod, //g' openvswitch-2.5.0/rhel/openvswitch.spec > openvswitch-2.5.0/rhel/openvswitch_no_kmod.spec
构建RPM包:rpmbuild -bb --nocheck ~/openvswitch-2.5.0/rhel/openvswitch_no_kmod.spec
yum localinstall ~/rpmbuild/RPMS/x86_64/openvswitch-2.5.1-1.x86_64.rpm
systemctl start openvswitch.service
编辑/usr/lib/systemd/system/docker.service
ExecStart=/usr/bin/dockerd-current --bip=10.0.71.1/24 \
另一台机器:
ExecStart=/usr/bin/dockerd-current --bip=10.0.78.1/24 \
systemctl enable openvswitch
systemctl start openvswitch
service docker restart
systemctl daemon-reload
service docker restart
此时DOCKER启动容器分配的IP已是文件当中指定的网段
193.168.120.71执行:
ovs-vsctl add-br br-tun 创建隧道网桥
ovs-vsctl add-port br-tun vxlan0 -- set Interface vxlan0 type=vxlan options:remote_ip=193.168.120.78
brctl addif docker0 br-tun
ip route add 10.0.78.0/24 via 193.168.120.78 dev ens33 添加静态路由
193.168.120.78执行:
ovs-vsctl add-br br-tun 创建隧道网桥
ovs-vsctl add-port br-tun vxlan0 -- set Interface vxlan0 type=vxlan options:remote_ip=193.168.120.71
brctl addif docker0 br-tun
ip route add 10.0.71.0/24 via 193.168.120.71 dev ens33 添加静态路由
此时到两台主机上启动的容器应该就能双向PING通了