
我们用一个 Linux 主机,通过配置其路由表和 iptables,将其配成一个路由器(当然是虚拟的),就可以完成不同 macvlan 网络之间的数据交换,当然用物理路由器也是没毛病的。
3.Macvlan 的特点:
1.可让使用者在同一张实体网卡上设定多个 MAC 地址。
2.承上,带有上述设定的 MAC 地址的网卡称为子接口(sub interface);而实体网卡则称为父接口(parent interface)。
3.parent interface 可以是一个物理接口(eth0),可以是一个 802.1q 的子接口(eth0.10),也可以是 bonding 接口。
4.可在 parent/sub interface 上设定的不只是 MAC 地址,IP 地址同样也可以被设定。
5.sub interface 无法直接与 parent interface 通讯 (带有 sub interface 的 VM 或容器无法与 host 直接通讯)。
承上,若 VM 或容器需要与 host 通讯,那就必须额外建立一个 sub 6.interface 给 host 用。
7.sub interface 通常以 mac0@eth0 的形式来命名以方便区別。
用张图来解释一下设定 Macvlan 后的样子:

4.实验环境
| docker01 | docker02 |
|---|---|
| 192.168.1.11 | 192.168.1.13 |
关闭防火墙和禁用selinux,更改主机名
[root@localhost ~]# hostnamectl set-hostname docker01
[root@localhost ~]# su -
上一次登录:二 12月 17 08:20:36 CST 2019从 192.168.1.1pts/0 上
[root@docker01 ~]# systemctl stop firealld
Failed to stop firealld.service: Unit firealld.service not loaded.
[root@docker01 ~]# setenforce 0
setenforce: SELinux is disabled
[root@docker01 ~]# systemctl daemon-reload
[root@docker01 ~]# systemctl restart docker
4.1 macvlan的单网络通信4.1 macvlan的单网络通信

1) 打开网卡的混杂模式
//需要在docker01和docker02_上都进行操作。[root@docker01 ~]# ip link show ens33
//查看网卡模式
[root@docker01 ~]# ip link set ens33 promisc on
//创建网卡模式为混杂模式
[root@docker01 ~]# ip link show ens33
//查看网卡模式










