加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Linux 假造网卡技能:Macvlan

发布时间:2019-04-03 16:11:30 所属栏目:站长百科 来源:米开朗基杨
导读:1. Macvlan 简介 在 Macvlan 呈现之前,我们只能为一块以太网卡添加多个 IP 地点,却不能添加多个 MAC 地点,由于 MAC 地点正是通过其环球独一性来标识一块以太网卡的,即便你行使了建设 ethx:y 这样的方法,你会发明全部这些网卡的 MAC 地点和 ethx 都是

在 VEPA 模式下,全部从 Macvlan 接口发出的流量,不管目标地所有都发送给父接口,纵然流量的目标地是共享统一个父接口的其余 Macvlan 接口。在二层收集场景下,因为天生树协议的缘故起因,两个 Macvlan 接口之间的通信会被阻塞,这时必要上层路由器上为其添加路由(必要外部互换机设置 Hairpin 支持,即必要兼容 802.1Qbg 的互换机支持,其可以把源和目标地点都是当地 Macvlan 接口地点的流量发回给响应的接口)。此模式下从父接口收到的广播包,会泛洪给 VEPA 模式的全部子接口。

此刻大大都互换机都不支持 Hairpin 模式,但 Linux 主机中可以通过一种 Harpin 模式的 Bridge 来让 VEPA 模式下的差异 Macvlan 接口通讯(前文已经提到,Bridge 着实就是一种旧式互换机)。怎么设置呢?很是简朴,通过一条呼吁就可以办理:

  1. $ brctl hairpin br0 eth1 on 

可能行使 iproute2 来配置:

  1. $ bridge link set dev eth0 hairpin on 

假如你的内核是你手工编译进级的,那么也许你的用户态措施并不支持新内查对应的全部特征,也就是说你的 brctl 也许版本过老不支持 hairpin 呼吁,那么可以 sysfs 来搞定:

  1. $ echo 1 >/sys/class/net/br0/brif/eth1/hairpin_mode 

在 Linux 主机上设置了 Harpin 模式之后,源和目标地点都是当地 Macvlan 接口地点的流量,城市被 br0(假设你建设的 Bridge 是 br0)发回给响应的接口。

假如想在物理互换机层面临假造机或容器之间的会见流量举办优化设定,VEPA 模式将是一种较量好的选择。

VEPA 和 Passthru 模式下,两个 Macvlan 接口之间的通讯会颠末主接口两次:第一次是发出的时辰,第二次是返回的时辰。这样会影响物理接口的宽带,也限定了差异 Macvlan 接口之间通讯的速率。假如多个 Macvlan 接口之间通讯较量频仍,对付机能的影响会较量明明。

Bridge

此种模式相同 Linux 的 Bridge,拥有沟通父接口的两块 Macvlan 假造网卡是可以直接通信的,不必要把流量通过父网卡发送到外部收集,广播帧将会被泛洪到毗连在"网桥"上的全部其他子接口和物理接口。这较量合用于让共享统一个父接口的 Macvlan 网卡举办直接通信的场景。

这里所谓的 Bridge 指的是在这些网卡之间,数据流可以实现直接转发,不必要外部的帮忙,这有点相同于 Linux host 内建了一个 Bridge,即用 brctl 呼吁所做的那统统。但和 Linux bridge 毫不是一回事,它不必要进修 MAC 地点,也不必要 STP,因此效能比起行使 Linux bridge 好上许多。

Bridge 模式有个弱点:假如父接口 down 掉,全部的 Macvlan 子接口也会所有 down 掉,同时子接口之间也将无法举办通信。

Private

此种模式相等于 VEPA 模式的加强模式,其完全阻止共享统一父接口的 Macvlan 假造网卡之间的通信,纵然设置了 Hairpin 让从父接口发出的流量返回到宿主机,响应的通信流量依然被扬弃。详细实现方法是扬弃广播/多播数据,这就意味着以太网地点理会 arp 将不行运行,除非手工探测 MAC 地点,不然通讯将无法在统一宿主机下的多个 Macvlan 网卡间睁开。之以是断绝广播流量,是由于以太网是基于广播的,断绝了广播,以太网将失去了依托。

Passthru

此种模式会直接把父接口和响应的MacVLAN接口绑缚在一路,这种模式每个父接口只能和一个 Macvlan 假造网卡接口举办绑缚,而且 Macvlan 假造网卡接口担任父接口的 MAC 地点。

此种模式的利益是假造机和容器可以变动 MAC 地点和其余一些接口参。

4. Macvlan 和 Bridge 的行使场景

最后我们再来接头一下 Macvlan 和 Bridge 的各自行使场景。

行使 Macvlan:

  • 仅仅必要为假造机或容器提供会见外部物理收集的毗连。
  • Macvlan 占用较少的 CPU,同时提供较高的吞吐量。
  • 当行使 Macvlan 时,宿主机无法和 VM 或容器直接举办通信。

行使 Bridge:

  • 当在统一台宿主机上必要毗连多个假造机或容器时。
  • 对付拥有多个网桥的殽杂情形。
  • 必要应用高级流量节制,FDB的维护。

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读