Docker网络之Macvlan

本文介绍了Docker中Macvlan网络模式,包括bridge和802.1q trunk bridge两种模式,强调了Macvlan可能导致的IP地址管理和网络性能问题。此外,还提到了ipvlan作为Macvlan的替代方案以及ipv6的使用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当容器需要直连入物理网络时,可以使用Macvlan。Macvlan本身不创建网络,本质上首先使宿主机物理网卡工作在‘混杂模式’,这样物理网卡的MAC地址将会失效,所有二层网络中的流量物理网卡都能收到。接下来就是在这张物理网卡上创建虚拟网卡,并为虚拟网卡指定MAC地址,实现一卡多用,在物理网络看来,每张虚拟网卡都是一个单独的接口。使用Macvlan有几点需要注意:

  • 容器直接连接物理网络,由物理网络负责分配IP地址,可能的结果是物理网络IP地址被耗尽,另一个后果是网络性能问题,物理网络中接入的主机变多,广播包占比快速升高而引起的网络性能下降问题。
  • 前边说过了,宿主机上的某张网上需要工作在‘混乱模式’下。
  • 从长远来看bridge网络与overlay网络是更好的选择,原因就是虚拟网络应该与物理网络隔离而不是共享。

创建Macvlan网络

Macvlan网络有两种模式:bridge模式与802.1q trunk bridge模式。

  • bridge模式,Macvlan网络流量直接使用宿主机物理网卡。
  • 802.1q trunk bridge模式,Macvlan网络流量使用Docker动态创建的802.1q子接口,对于路由与过虑,这种模式能够提供更细粒度的控制。

bridge模式

命令如下:

$ docker network create -d macvlan \
  --subnet=172.16.86.0/24 \
  --gateway=172.16.86.1  \
  -o parent=eth0 pub_net

上述命令中,-o parent=eth0表示使用的物理网卡名称。问题:应该不需要指定subnet与gateway,这个由物理网络决定。

对于subnet中指定的IP地址段,如果某个IP地址已经被占用,需要将这个地址排除在外,不能让它被分配,命令如下:

$ docker network 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值