1.实现跨主机网络解决方案:
(1)docker原生的overlay和macvlan
(2)第三方的flannel、weave、calico
2.众多网络方案与docker集成方法:
(1)ibnetwork docker容器网络库
(2)CNM 对容器网络进行抽象
CNM的三类组件
Sandbox:容器网络线,包括容器接口、dns、路由表
Endpoint:将sandbox接入network
Network:包含一组endpoint,同一network的endpoint可以进行通信
3.macvlan网络方案实现
Linux内核提供的一种网卡虚拟化技术
无需linux bridge,直接使用物理接口,性能极好
实验前提:
两台虚拟机
172.25.4.111 server1
172.25.4.112 server2
两台虚拟机各自再添加一块物理网卡
[root@server1 ~]# ip addr show
6: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 52:54:00:70:4e:0d brd ff:ff:ff:ff:ff:ff
[root@server2 ~]# ip addr show
5: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
link/ether 52:54:00:bf:79:b8 brd ff:ff:ff:ff:ff:ff
打开网络混杂模式
[root@server1 ~]# ip link set up eth1 ##激活网卡
[root@server1 ~]# ip link set eth1 promisc on ##开启混杂模式
[root@server1 ~]# ip addr show eth1
7: eth1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 52:54:00:42:36:bd brd ff:ff:ff:ff:ff:ff
inet6 fe80::5054:ff:fe42:36bd/64 scope link
valid_lft forever preferred_lft forever
[root@server2 ~]# ip link set up eth1
[root@server1 ~]# ip link