docke跨主機通訊之gre隧道

GRE簡介

GRE能夠對網絡層的任何協議來進行封裝,相似LVS的IPIP協議,在原有的數據報上增長GRE協議數據報。而後在網絡上傳輸,到達對端後,解開GRE數據報頭,獲得真實的數據報。其中的mac地址也不會由於在網絡上傳輸而丟失原來的源mac地址。python

實驗環境

selinux disabled
iptables -t nat -F;iptables -Flinux

主機 docker0地址 物理機地址
docker1 172.17.0.1 192.168.88.130
docker2 172.18.0.1 192.168.88.131

拓撲圖
實驗拓撲圖docker

實驗步驟

  • 安裝openvswitch
    • yum install gcc make python-devel openssl-devel kernel-devel graphviz kernel-debug-devel autoconf automake rpm-build redhat-rpm-config libtool
    • 構建RPM包:rpmbuild -bb rhel/openvswitch.spec
    • rpm -ihv openvswitch-2.5.0-1.x86_64.rpm
  • 啓動openvswitch:service openvswitch startcentos

  • 添加ovs網橋: ovs-vsctl add-br ovs0bash

  • 構建gre隧道: ovs-vsctl add-port ovs0 gre0 -- set interface gre0 type=gre options:remote_ip=192.168.88.131 #對端物理機網絡網絡

  • ovs0橋接到docker0上: brctl addif docker0 ovs0測試

  • 啓動網卡:
    • ip link set dev ovs0 up
    • ip link set dev docker0 up
  • 添加路由:route add -net 172.18.0.0/16 dev docker0 #對端docker0網絡ui

測試

docker run -it centos /bin/bashdebug

ping 對端container的IPip

相關文章
相關標籤/搜索