容器网络专题

Posted leleyao

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了容器网络专题相关的知识,希望对你有一定的参考价值。

本期重点  macvlan

没有 macvlan 之前 我们可以通过网卡别名给网卡绑定多个ip  eth0 eth0.1 等等,但是这些网卡都有一个共同的mac 地址这个是无法改变的。

Macvlan接口可以看作是物理以太网接口的虚拟子接口。Macvlan允许用户在主机的一个网络接口上配置多个虚拟的网络接口,每个Macvlan接口都有自己的区别于父接口的MAC地址,并且可以像普通网络接口一样分配IP地址。因此,使用Macvlan技术带来的效果是一块物理网卡上可以绑定多个IP地址,每个IP地址都有自己的MAC地址。

Macvlan的主要用途是网络虚拟化(包括容器和虚拟机)。另外,有一些比较特殊的场景,例如,keepalived使用虚拟MAC地址。

Macvlan 必须和宿主网卡处在同一个广播域中,即同一个网段。

Macvlan支持5种模式,分别是bridge、VEPA、Private、Passthru和Source模式。

bridge 模式

该模式类似Linux bridge,是Macvlan最常用的模式,比较适合共享同一个父接口的Macvlan网卡进行直接通信的场景。在bridge模式下,拥有相同父接口的两块Macvlan虚拟网卡可以直接通信,不需要把流量通过父接口发送到外部网络,广播帧将会被洪泛到连接在“网桥”上的所有其他子接口和物理接口。网桥带双引号是因为实际上并没有网桥实体的产生,而是指在这些网卡之间数据流可以实现直接转发,这有点类似于Linux网桥。但Macvlan的bridge模式和Linux网桥不是一回事,它不需要学习MAC地址,也不需要生成树协议(STP),因此性能要优于Linux网桥。

技术图片

 

 VEPA 模式

VEPA(Virtual Ethernet Port Aggregator,虚拟以太网端口聚合)是默认模式。所有从Macvlan接口发出的流量,不管目的地址是什么,全部“一股脑”地发送给父接口——即使流量的目的地是共享同一个父接口的其他Macvlan接口。在二层网络下,由于生成树协议的原因,两个Macvlan接口之间的通信会被阻塞,这时就需要接入的外部交换机支持hairpin,把源和目的地址都是本地Macvlan接口地址的流量,发给相应的接口。在VEPA模式下,从父接口收到的广播包会洪泛给所有的子接口。

Private 模式

Private模式类似于VEPA模式,但又增强了VEPA模式的隔离能力,其完全阻止共享同一父接口的Macvlan虚拟网卡之间的通信。即使配置了hairpin,让从父接口发出的流量返回宿主机,相应的通信流量依然被丢弃

Passthru 模式

Passthru模式翻译过来就是直通模式。在这种模式下,每个父接口只能和一个Macvlan网卡捆绑,并且Macvlan网卡继承父接口的MAC地址。

 

Source模式

 

在这种模式下,寄生在物理设备上,Macvlan设备只接收指定的源Mac地址的数据包,其他数据包一概丢弃。

 

 

测试通信链路

ip link add eth0.1   link  eth0 type macvlan mode bridge
ip -d link show eth0.1
ip link set eth0.1 up

 

以上是关于容器网络专题的主要内容,如果未能解决你的问题,请参考以下文章

VCN专题 | NSX高级负载均衡助推企业应用的容器化转型

测试开发专题-目录

Spring源码分析专题——目录

java网络多线程专题

VSCode自定义代码片段14——Vue的axios网络请求封装

VSCode自定义代码片段14——Vue的axios网络请求封装