Open vSwitch是什么
Open vSwitch是一个高质量的、多层虚拟交换机,使用开源Apache2.0许可协议,由Nicira Networks开发,主要实现代码为可移植的C代码。它的目的是让大规模网络自动化可以通过编程扩展,同时仍然支持标准的管理接口和协议(例如NetFlow,sFlow,SPAN,RSPAN,CLI,LACP,802.1ag)
原理
什么是GRE隧道
GRE:通用路由协议封装隧道技术(Tunneling)是一种通过使用互联网络的基础设施在网络之间传递数据的方式。使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将其它协议的数据帧或包重新封装然后通过隧道发送。新的帧头提供路由信息,以便通过互联网传递被封装的负载数据。(点对点的再封装技术)
网络连接使用双网卡,Host-Only & NAT
操作
- 1. 建立ovs网桥
- 查看ovs版本
1.sudo ovs-vsctl show
建立一个名为obr0的网桥
1.sudo ovs-vsctl add-br obr0
- 2. 添加gre连接,接口名为gre0
1.sudo ovs-vsctl add-port obr0 gre0
为接口设置类型和远程另一台主机的地址192.168.59.104
1.sudo ovs-vsctl set interface gre0 type=gre options:remote_ip=192.168.59.104
- 3. 配置docker容器虚拟网桥
1.sudo ifconfig br0 192.168.1.1 netmask 255.255.255.0
- 4. 为虚拟网桥添加ovs接口
1.sudo brctl addif br0 obr0
修改/etc/default/docker
,用新建的网桥来代替默认的docker0
1.DOCKER_OPTS="-b=br0"
重启服务sudo service docker restart
- 5. 添加不同Docker容器网段路由
1.sudo ip route add 192.168.2.0/24 via 192.168.59.104 dev eth0