混杂模式二

工作中接触到混杂模式主要是在docker跨主机通信的环境下,结合docker跨主机通信的环境对混杂模式在做一个小结。

一.混杂模式是否生效的理解

关于设置混杂模式的资料在网上也看了一些,但是都不全面,结合最近的研究,做节点总结

1.混杂模式涉及到硬件和软件两个方面,首先硬件要开启混杂模式,硬件上面开启了混杂模式后,并不意味着混杂模式就生效了,要使混杂模式生效,还要软件层面的配置,将网口上面的混杂模式状态打开,将网口上的promisc状态打开。即要是主机的混杂模式生效,硬件的混杂模式打开和软件上网口的混杂模式状态打开这两个条件要同时具备。

2.网卡上面的promisc状态显示为关闭,并不代表系统的混杂模式就没开,即存在系统中的混杂模式状态已经打开,但是在网口上面并没有出现promisc的状态。

3.各种虚拟化工具对混杂模式的支持,本人在vmware和virtual box中都配置过混杂模式,在vmware中的网卡硬件配置中并没有混杂模式相关的配置,vmware中的硬件全部打开混杂模式的,不需要手动设置。virtual box中则可以在硬件中手动选择开启和关闭混杂模式。wmware中会出现第2点情况,网口的promisc状态显示为关闭,网口的混杂模式却生效了。在混杂模式方面,vmware做的支持不够好,virtual box在这方面要好很多。

二.混杂模式中的目的地址理解

1.混杂模式中的目的地址有两层含义,一是目的IP地址就是当前机器,当前机器就可以接收到数据包,二是目的IP地址不是当前机器,但当前机器处于源IP地址到目的IP地址的路由路径上。即源地址到目的地中间会经过当前节点。

这种场景典型的就是docker跨主机的直接路由模式。

实际的实验中主机1的IP为10.0.2.5(对应途中的192.168.145.128),主机2的IP为10.0.2.6(对应图中192.168.145.129),网卡为enp0s3(对应图中的eth0),其他一致。

考虑在container1中向container2发送ping包的场景。数据包会依次经过主机1的docker0,eth0和主机2的eth0,docker0,最终到达container2。

从主机2的eth0角度来看,这个数据包的目的地址并不是主机2的eth0,但是在eth0上抓包,可以看到数据包

上图中可以看到,在host2没有打开混杂模式状态的情况下,在host2上的enp0s3(等价与架构图中的eth0)抓包,可以抓到container1发送给container2的包。

如果在另外一台主机3上不开混杂模式状态,则可以看到主机3抓取不到container1发给container2的ping包。

所以得出的小结为:当数据包的目的IP为当前主机,或者数据包的路由路径通过当前主机时,当前主机可以抓取到数据包;若要抓取目的地址不在当前主机或者路由路径不经过当前主机的包,则需要开启混杂模式,前提时数据包也会广播到当前主机。

 

三.macvlan跨主机通信中的混杂模式理解

 

macvlan的网络通信模型中,是利用主机的网卡上创建多个子网卡,每个子网卡分配IP地址和MAC地址,Host 收到数据包后,则根据不同的 MAC 地址把数据包从转发给不同的子接口,在外界来看就相当于多台主机。

macvlan与其他模式不同的,容器中的网卡不是通过桥接方式连接到宿主机的网卡上与外界通信,而是直接使用宿主机上的网卡上虚拟出来的子网卡与外界通信。

在上图中,宿主机的eth0网卡上创建了两个子网卡eth0.0和eth0.1,分配给Guet0和Guest1使用,对外表现为在eth0上配置了3个IIP地址和MAC地址,如果不开启混杂模式,则宿主机只能接收IP为192.168.100.2的数据,无法接收其他配置在网卡eth0上的IP的数据。IP 192.168.100.5和192.168.100.4不可达,即容器Guest0和Guest1对外不可达,开启混杂模式后,所有使用宿主机网卡上子网卡的容器都可以接收数据,对外通信。

 

参考:https://blog.csdn.net/wangshuaiwsws95/article/details/80687384

http://ju.outofmemory.cn/entry/364359

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值