054、准备 macvlan环境(2019-03-21 周四)
除了overlay,docker还开发了另一个支持跨主机容器网络的 driver :macvlan
macvlan 本身是linux kernel模块,其功能是允许在同一物理网卡上配置多个mac地址,即多个interface,每个interface可以配置自己的IP,。macvlan本质上是一种网卡虚拟化技术,docker用macvlan实现容器网络就不奇怪了
macvlan的最大优点是性能好,相比其他实现,macvlan不需要创建linux bridge,而是直接通过以太interface连接到物理网络。
准备实验环境
1、在docker host上开启混杂模式,执行 ip link set ethx promisc on
root@host1:~# ip link show ens192
3: ens192: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 00:50:56:87:22:32 brd ff:ff:ff:ff:ff:ff
root@host1:~# ip link set ens192 promisc on
root@host1:~# ip link show ens192
3: ens192: <BROADCAST,MULTICAST,PROMISC> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 00:50:56:87:22:32 brd ff:ff:ff:ff:ff:ff
root@host2:~# ip link show ens192
3: ens192: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 00:50:56:87:1b:c0 brd ff:ff:ff:ff:ff:ff
root@host2:~# ip link set ens192 promisc on
root@host2:~# ip link show ens192
3: ens192: <BROADCAST,MULTICAST,PROMISC> mtu 1500 qdisc noop state DOWN mode DEFAULT group default qlen 1000
link/ether 00:50:56:87:1b:c0 brd ff:ff:ff:ff:ff:ff
2、如果是虚机还需在虚机的网卡配置选项中开启混杂模式
VirtualBox设置如下:
Esxi设置如下:
当前实验环境如下