写在开篇,是为了提醒自己,
- 要善始善终
- 莫着急,做好每一件小事
参考文献:
https://blog.csdn.net/dkfajsldfsdfsd/article/details/79525187
http://www.qingpingshan.com/m/view.php?aid=389184
学习这个的目的,是为了了解下面的内容:
https://github.com/containernetworking/plugins
一、 mavclan要知道的小知识点
macvlan并不创建网络,只创建虚拟网卡,
- macvlan会
共享物理网卡
所链接的外部网络
,实现的效果跟桥接模式是一样的。
macvlan 既不创建网络,主要有什么特性?或者说,macvlan的使用场景?
- macvlan主要是用来解决效率问题的。
- 也就是说macvlan是效率贵高的跨主机网络虚拟化解决方案之一。
- 适合在对网络性能要求极高的场景下。
-
网络虚拟化的目的?
就是在多租户场景下,在统一的底层网络之上,单独为每个租户
虚拟出自己的网络从而达到隔离
的目的。 -
macvlan属于什么解决方案呢?或者说,macvlan到底是干什么的,? 或者说,有什么用?
- macvlan是网卡虚拟化方案
- macvlan将一张物理网卡设置多个mac地址,就是一变多,一对多;类似于鸣人的影分身之术,
注意: 需要物理网卡,打开混杂模式
如何设置网卡为混杂模式
- 既然有了多个mac地址,就可以设置多个IP地址了,从而实现,一块物理网卡链接到交换机,变成多个虚拟网卡链接到交换机。
- macvlan是linux kernel提供的一种network driver类型,
如何查看当前内核是否加载了该driver呢?
- lsmod | grep macvlan (查看是否加载了)
- modprobe macvlan (手动加载macvlan驱动到内核)
- /drivers/net/macvlan.c (源码地址)
macvlan的工作模式?
- Bridge:属于同一个parent接口的macvlan接口之间挂到同一个bridge上,可以二层互通(经过测试,发现这些macvlan接口都无法与parent 接口互通)。
bridge mode
- VPEA:所有接口的流量都需要到外部switch才能够到达其他接口。
vpea mode
- Private:接口只接受发送给自己MAC地址的报文。
private mode
二、 测试
1. 基本练习测试,创建一个macvlan, 并分配一个ip(也就是链接到某一网络)
2. 测试在不同命名空间下,两个macvlan类型虚拟网卡,是否可以直接通信
- 创建两个虚拟网卡ens33.01, ens33.02
ip link add link ens33 name ens33.01 type macvlan mode bridge
ip link add link ens33 name ens33.02 type macvlan mode bridge
- 创建两个命名空间
ip netns add ns1
ip netns add ns2
- 将两个虚拟网卡ens33.01,ens33.02分别分配到ns1,ns2命名空间里
ip link set ens33.01 netns ns1
ip link set ens33.02 netns ns2
- 使用dhclient给虚拟网卡ens33.01, ens33.02分配IP
ip net exec ns1 dhclient ens33.01
ip net exec ns2 dhclient ens33.02
- 测试是否可以ping同宿主机
是否可以ping通本宿主机
- 测试ens33.01 与 ens33.02 之间是否可以互相ping通
是否可以ping通ns2命名空间下的ens33.02虚拟网卡?
3. 测试同一命名空间下的虚拟网卡,是否可以ping通么?
感觉很怪异,不知道为啥,同一个命名空间下的虚拟网卡,居然不通。
多年后重新测试,发现是可以的。


网友评论