docker 网络模式之 macvlan模式

 一、简介

        一些程序,特别是应用程序或者网络流量监控程序,期望直接连接到物理网络,这种情况下,可使用Macvlan网络模式,给每个容器的虚拟网络接口配置一个mac地址,使得连接容器,看起来是直接到一个物理主机上。这种情况下,需要在主机上 为macvlan驱动,指定一个物理接口,一起子网与默认网关,甚至使用不同的物理网络接口,隔离navlan网络。但必须了解如下几点:

     (1)IP地址溢出,和虚拟网络传播(VLAN spreads)将很容易导致网络损坏。例如网络中有众多无效的唯一mac地址,

     (2)网络设备需要处理“混杂模式”, 多个mac地址关联一个物理接口

     (3)如果应用程序可使用 bridge 模式 或者 overlay 模式,从长远来讲,将是更好的选择。

二、创建一个macvlan 网络

     当创建一个macvlan网络时,我们可选如下两种模式

                 bridge mode : 桥接模式, 该模式下,网络数据路由,通过主机的一个物理设备。

                802.1 q trunk birdge mode: 802.1 q主干桥接模式, (虚拟桥接局域网),流量通过docker 动态创建一个以 802.1 q的子接口传输(这里不深入解释802.1 q)这允许用户在更细的层次上控制路由和筛选。

2.1 Bridge mode

        创建一个该模式下的网络,需要一个给定的物理接口,指定 --driver macvlan  , 使用指令  docker  network create 创建, 同时必须指定 parent  标记,也即通讯流实际在docker主机上流经的物理接口。

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

如果需要,正在使用的macvlan中,排除一些ip,例如用户给定使用ip的,可使用 --aux-addresses 修改

$ docker network create -d macvlan  \
  --subnet=192.168.32.0/24  \
  --ip-range=192.168.32.128/25 \
  --gateway=192.168.32.254  \
  --aux-address="my-router=192.168.32.129" \
  -o parent=eth0 macnet32

2.2 802.1 q trunk bridge mode

    如果以包含点号 "."命名方式 指定一个 parent 接口时, 例如 eth0.50 ,  docker将把它看做eth0的一个子网,并自动创建子接口。

 

$ docker network  create  -d macvlan \
    --subnet=192.168.50.0/24 \
    --gateway=192.168.50.1 \
    -o parent=eth0.50 macvlan50

2.3 使用 ipvlan 提到 macvlan

2.1 和 2.2 依然使用的L3的桥接网络,可使用  iplvan 替代,获取L2的桥接,使用 -o  ipvlan_mode=l2 指定

$ docker network create -d ipvlan \
    --subnet=192.168.210.0/24 \
    --subnet=192.168.212.0/24 \
    --gateway=192.168.210.254  \
    --gateway=192.168.212.254  \
     -o ipvlan_mode=l2 ipvlan210

2.4 启动ipv6

   如果配置了docker daemon 的启动参数,运行使用ipv6,  可在macvlan网络中,同时使用 ipv4、ipv6双网络堆栈,

$ docker network  create  -d macvlan \
    --subnet=192.168.216.0/24 --subnet=192.168.218.0/24 \
    --gateway=192.168.216.1  --gateway=192.168.218.1 \
    --subnet=2001:db8:abc8::/64 --gateway=2001:db8:abc8::10 \
     -o parent=eth0.218 \
     -o macvlan_mode=bridge macvlan216

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值