[toc]
retference
http://www.itdecent.cn/p/92c9945ac861
https://segmentfault.com/a/1190000011406037
https://blog.csdn.net/qq_15800363/article/details/78712262
https://www.cnblogs.com/goldsunshine/p/13630767.html
https://www.cnblogs.com/CaesarLinsa/p/12901330.html
1. 添加路由
ip route add 172.17.1.0/24 via 192.168.1.179 dev eth0
2. 通過ovs打隧道
實例
server1 192.168.1.79
server2 192.168.1.179
container1 10.0.1.1
container2 10.0.1.2
第一步: 兩臺機器都做,ovs接管網(wǎng)卡,并且挪入新建的橋中
ovs-vsctl add-br br-int
ovs-vsctl add-port br-int eth0
ifconfig br-int 192.168.1.179 netmask 255.255.255.0 # 這里地址和掩碼與eth0的配置一致
ifconfig br-int up
ifconfig eth0 0.0.0.0
route add default gw 192.168.1.1
第二步,相互創(chuàng)建創(chuàng)建vxlan隧道,remoteip 寫對端
ovs-vsctl add-port br-int vx1 -- set interface vx1 type=vxlan options:remote_ip=192.168.1.79
第三步,不同server分別啟動容器79和179,并配置ip,然后ping
docker run -itd \
--network='none' \
--name="t79" \
--privileged \
busybox /bin/sh
ovs-docker add-port br-int eth0 ihep --ipaddress=10.0.1.1/24
docker run -itd \
--network='none' \
--name="t179" \
--privileged \
busybox /bin/sh
ovs-docker add-port br-int eth0 ihep --ipaddress=10.0.1.2/24
docker run -it t79 ping 10.0.1.2
vxlan 和 gre的區(qū)別:
vxlan 是把二層信息封裝到了udp包中,多了50字節(jié)的包長度;14以太網(wǎng)+20ip頭+8udp頭+8vxlan頭;gre是把二層信息封裝到了ip包的payload中
vxlan
VXLAN概念:Virtualextensible Local Area Network,虛擬擴展局域網(wǎng)。IETF定義NVO3標準技術(shù)之一,采用MAC-in-UDP報文封裝模式,通過將二層報文使用三層協(xié)議封裝實現(xiàn)二層網(wǎng)絡在三層范圍內(nèi)擴展,滿足數(shù)據(jù)中心大二層虛擬機遷移和多租戶需求;VXLAN技術(shù)可以基于三層網(wǎng)絡結(jié)構(gòu)來構(gòu)建二層虛擬網(wǎng)絡,通過VLAN技術(shù)可以將處于不同網(wǎng)段網(wǎng)絡設備整合在同一個邏輯鏈路層網(wǎng)絡中,對于終端用戶而言,這些網(wǎng)絡設備似乎“真實地”部署在了同一個鏈路層網(wǎng)絡中。
gre
GRE(Generic Routing Encapsulation):通用路由封裝協(xié)議。定義了在一種網(wǎng)絡層協(xié)議上封裝另一種協(xié)議(或同一種協(xié)議)。例如:對某些網(wǎng)絡層協(xié)議(如IP和IPX)的數(shù)據(jù)報進行封裝,使這些被封裝的數(shù)據(jù)報能夠在另一個網(wǎng)絡層協(xié)議(如IP)中傳輸