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

Linux 虚拟网卡技术:Macvlan

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

 1. Macvlan 简介

在 Macvlan 呈现之前,我们只能为一块以太网卡添加多个 IP 地点,却不能添加多个 MAC 地点,由于 MAC 地点正是通过其环球独一性来标识一块以太网卡的,即便你行使了建设 ethx:y 这样的方法,你会发明全部这些“网卡”的 MAC 地点和 ethx 都是一样的,本质上,它们照旧一块网卡,这将限定你做许多二层的操纵。有了 Macvlan 技能,你可以这么做了。

Linux 假造网卡技能:Macvlan

Macvlan 应承你在主机的一个收集接口上设置多个假造的收集接口,这些收集 interface 有本身独立的 MAC 地点,也可以设置上 IP 地点举办通讯。Macvlan 下的假造机可能容器收集和主机在统一个网段中,共享统一个广播域。Macvlan 和 Bridge 较量相似,但由于它省去了 Bridge 的存在,以是设置和调试起来较量简朴,并且服从也相对高。除此之外,Macvlan 自身也美满支持 VLAN。

统一 VLAN 间数据传输是通过二层互访,即 MAC 地点实现的,不必要行使路由。差异 VLAN 的用户单播默认不能直接通讯,假如想要通讯,还必要三层装备做路由,Macvlan 也是云云。用 Macvlan 技能假造出来的假造网卡,在逻辑上和物理网卡是对等的。物理网卡也就相等于一个互换机,记录着对应的假造网卡和 MAC 地点,当物理网卡收到数据包后,会按照目标 MAC 地点判定这个包属于哪一个假造网卡。这也就意味着,只要是从 Macvlan 子接口发来的数据包(可能是发往 Macvlan 子接口的数据包),物理网卡只吸取数据包,不处理赏罚数据包,以是这就引出了一个题目:本机 Macvlan 网卡上面的 IP 无法和物理网卡上面的 IP 通讯!关于这个题目的办理方案我们下一节再接头。

我们先来看一下 Macvlan 技能的流程表示图:

Linux 假造网卡技能:Macvlan

简朴来说,Macvlan 假造网卡装备是寄生在物理网卡设惫亓?。发包时挪用本身的发包函数,查找到寄生的物理装备,然后通过物理装备发包。收包时,通过注册寄生的物理装备的 rx_handler 回调函数,处理赏罚数据包。

2. Macvlan vs Bridge

说到 Macvlan,就不得不提 Bridge,由于你可以把 Macvlan 当作一个简朴的 Bridge。但他们之间照旧有很大的区此外。

Bridge

Bridge 现实上就是一种旧式互换机,他们之间并没有很大的不同。Bridge 与互换机的区别在与市场,而不在与技能。互换机对收集举办分段的方法与 Bridge 沟通,互换机就是一个多端口的网桥。确切地说,高端口密度的 Bridge 就称为局域网互换机。

Linux 假造网卡技能:Macvlan

Bridge 有以下特点:

  • Bridge 是二层装备,仅用来处理赏罚二层的通信。
  • Bridge 行使 MAC 地点表来抉择怎么转发帧(Frame)。
  • Bridge 会从 host 之间的通信数据包中进修 MAC 地点。
  • 可所以硬件装备,也可所以纯软件实现(譬喻:Linux Bridge)。

以下是一个在 Linux 主机上,多个 VM 行使 bridge 彼此通信的状况:

Linux 主机中可以通过呼吁行器材 brctl 来查察 Bridge 的设置,该器材可以通过安装软件包 bridge-utils 来得到。

  1. $ brctl show 
  2.  
  3. bridge name  bridge id          STP enabled  interfaces 
  4. br0          8000.080006ad34d1  no           eth0 
  5.                                              veth0 
  6. br1          8000.080021d2a187  no           veth1 
  7.                                              veth2 

Bridge 有也许会碰着二层环路,若有必要,你可以开启 STP 来防备呈现环路。

Macvlan

Macvlan 有以下特点:

  • 可让行使者在统一张实体网卡上设定多个 MAC 地点。
  • 承上,带有上述设定的 MAC 地点的网卡称为子接口(sub interface);而实体网卡则称为父接口(parent interface)。
  • parent interface 可所以一个物理接口(eth0),可所以一个 802.1q 的子接口(eth0.10),也可所以 bonding 接口。
  • 可在 parent/sub interface 上设定的不可是 MAC 地点,IP 地点同样也可以被设定。
  • sub interface 无法直接与 parent interface 通信 (带有 sub interface 的 VM 或容器无法与 host 直接通信)。
  • 承上,若 VM 或容器必要与 host 通信,那就必需特殊成立一个 sub interface 给 host 用。
  • sub interface 凡是以 mac0@eth0 的情势来定名以利便区別。

(编辑:河北网)

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

热点阅读