Linux Macvlan的虚拟网卡与宿主物理网卡之间的Bridge通信问题

                       

周末的时候写了一篇关于Docker底层支撑技术的文章:
以firejail sandbox解析Docker核心原理依赖的四件套https://blog.csdn.net/dog250/article/details/81025071
获得了一些反响,总结下来就三点:
1. 确实这四件套支撑了很多的容器技术;
2. 唱衰Docker以及OverlayFS,Cgroup,NS这些,以为它们违背了某种原则;
3. 关于firejail网络方面的某些细节。

上述的1和2显得过于形而上,保留个人观点不讨论,或者等哪天闲了再说。关于第三点,我觉得有必要梳理一下,本文先说一个典型的。


有网友问到,firejail的Macvlan配置细节是怎样的,firejail容器内的Macvlan虚拟网卡如何访问容器外宿主机的IP地址呢??(先说答案吧,默认情况下,不能访问)

我并没有深入的了解过firejail,本身接触它也不久,所以只能从其文档代码中去一窥究竟了。firejail的github源在这里:https://github.com/netblue30/firejail

  1. 从以下的链接可以看到一个典型的Demo样例,我和作者描述问题的思路是一致的:
    https://github.com/netblue30/firejail/blob/master/src/firejail/network.txt
  2. 从下面的代码中你可以看到firejail关于macvlan的配置细节:
    https://github.com/netblue30/firejail/blob/master/src/firejail/network_main.c

总而言之,firejail使用网络的方式有两种:

  • Bridge veth的方式:与Docker Bridge模式一致,如果–net参数指定一个Linux Bridge的话。
  • Macvlan bridge模式:如果–net参数指定一块物理网卡,即会产生一个bridge模式的macvlan虚拟网卡。

这些在其manual中也有提到:

 

–net=bridge_interface
                Enable  a  new  network  namespace  and  connect it to this bridge interface.  Unless specified with option –ip and –defaultgw, an IP address and a
                default gateway will be assigned automatically to the sandbox. The IP address is verified using ARP before  assignment.  The  address  configured  as
                default gateway is the bridge device IP address. Up to four –net bridge devices can be defined. Mixing bridge and macvlan devices is allowed.
  .
                Example:
                sudobrctladdbrbr

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值