Docker- 7.1、跨主机网络-macvlan

macvlan网络详解

一、macvlan介绍

macvlan 本身是 linxu kernel 模块,其功能是允许在同一个物理网卡上配置多个 MAC 地址而实现虚拟多块网卡,即多个 interface,每个 interface 可以配置自己的IP。macvlan 本质上是一种网卡虚拟化技术
macvlan 的最大优点是性能极好,相比其他实现,macvlan不需要创建Linux bridge,而是直接通过以太interface连接到物理网络。

二、准备实验环境

使用hosts1 和 hosts2上单独的网卡ens33 创建macvlan。
1、为保证多个 MAC 地址的网络包都可以从 ens33 通过,我们需要打开物理网卡的混杂模式:
ip link set ens33 promisc on
或者
ens33 开启混杂模式ifconfig ens33 promisc
ens33 关闭混杂模式ifconfig ens33 -promisc
2、macvlan 是 Linux 内核提供的一种网络驱动类型。如果内核没有加载 macvlan,可以通过命令加载:
   modprobe macvlan # 加载macvlan;可用于判断系统是否支持macvlan;若要卸载 macvlan:modprobe -r macvlan
   lsmod | grep macvlan # 确认是否已加载
如果第一个命令报错,或者第二个命令没有返回,说明当前系统不支持 macvlan,需要升级内核。

三、相同 macvlan 网络之间的通信

1、首先使用 docker network create 分别在两台主机上创建两个 macvlan 网络:
sudo docker network create --driver macvlan --subnet 172.16.10.0/24 --gateway 172.16.10.1 -o parent=ens33  macvlan_10  # 为了简单设置的网络与宿主机的网络为同一网段
  • --driver:指定 Docker 网络 driver;
  • --subnet:macvlan网络是local网络,为了保证跨主机能够通信,用户需要自己管理 IP subnet;
  • --gateway 与其他网络不同,docker不会为macvlan 创建网关,这里的网关应该是真实存在的,否则容器无法路由
  • -o parent 指定用来分配 macvlan 网络的物理网卡
docker network ls查看创建的macvlan网络:
2、在两台宿主机上分别增加一个容器
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值