linux 虚拟网卡与物理网卡关系,Linux Macvlan的虚拟网卡与宿主物理网卡之间的Bridge通信问题...

本文详细介绍了Linux Macvlan虚拟网卡如何与物理网卡进行桥接通信,包括Macvlan的两种工作模式,以及在firejail中配置Macvlan时遇到的问题。在默认情况下,Macvlan虚拟网卡无法直接访问宿主机的IP地址。通过分析Macvlan的xmit回调函数,展示了如何修改代码实现虚拟网卡与物理网卡的互通,并提供了一个临时解决方案,允许宿主机与容器相互通信。但这种方法会导致物理链路上的数据包冗余。
摘要由CSDN通过智能技术生成

周末的时候写了一篇关于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

总而言之,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:

s u o b r c t l a b r b r 0 s

u

d

o

b

r

c

t

l

a

d

d

b

r

b

r

0

sudo ifconfig br0 10.10.20.1/24

s u o b r c t l a b r b r 1 s

u

d

o

b

r

c

t

l

a

d

d

b

r

b

r

1

sudo ifconfig br1 10.10.30.1/24

i r e j a i l – n e t = b r 0 – n e t = b r 1 . – n e t = e t h e r n e t i n t e r a c e n a b l e a n e w n e t w o r k n a m e s p a c e a n c o n n e c t i t t o t h i s e t h e r n e t i n t e r a c e u s i n t h e s t a n a r L i n u x m a c v l a n r i v e r . n l e s s s p e c i i e w i t h o p t i o n – i p a n – e a u l t w , a n a r e s s a n a e a u l t a t e w a w i l l b e a s s i n e a u t o m a t i c a l l t o t h e s a n b o x . h e a r e s s i s v e r i i e u s i n A R b e o r e a s s i n m e n t . h e a r e s s c o n i u r e a s e a u l t a t e w a i s t h e e a u l t a t e w a o t h e h o s t . p t o o u r – n e t e v i c e s c a n b e e i n e . i x i n b r i e a n m a c v l a n e v i c e s i s a l l o w e . o t e : w l a n e v i c e s a r e n o t s u p p o r t e o r t h i s o p t i o n . . x a m p l e : f

i

r

e

j

a

i

l

n

e

t

=

b

r

0

n

e

t

=

b

r

1

.

n

e

t

=

e

t

h

e

r

n

e

t

i

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值