macvlan 一种虚拟网卡解决方案

写在开篇,是为了提醒自己,

  1. 要善始善终
  2. 莫着急,做好每一件小事

参考文献:
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会共享物理网卡所链接的外部网络,实现的效果跟桥接模式是一样的。
  1. macvlan 既不创建网络,主要有什么特性?或者说,macvlan的使用场景?
  • macvlan主要是用来解决效率问题的。
  • 也就是说macvlan是效率贵高的跨主机网络虚拟化解决方案之一。
  • 适合在对网络性能要求极高的场景下。
  1. 网络虚拟化的目的?
    就是在多租户场景下,在统一的底层网络之上,单独为每个租户虚拟出自己的网络从而达到隔离的目的。

  2. macvlan属于什么解决方案呢?或者说,macvlan到底是干什么的,? 或者说,有什么用?

  • macvlan是网卡虚拟化方案
  • macvlan将一张物理网卡设置多个mac地址,就是一变多,一对多;类似于鸣人的影分身之术, 注意: 需要物理网卡,打开混杂模式
    如何设置网卡为混杂模式
  • 既然有了多个mac地址,就可以设置多个IP地址了,从而实现,一块物理网卡链接到交换机,变成多个虚拟网卡链接到交换机。
  1. macvlan是linux kernel提供的一种network driver类型, 如何查看当前内核是否加载了该driver呢?
  • lsmod | grep macvlan (查看是否加载了)
  • modprobe macvlan (手动加载macvlan驱动到内核)
  • /drivers/net/macvlan.c (源码地址)
  1. macvlan的工作模式?
  • Bridge:属于同一个parent接口的macvlan接口之间挂到同一个bridge上,可以二层互通(经过测试,发现这些macvlan接口都无法与parent 接口互通)。
    bridge mode
  • VPEA:所有接口的流量都需要到外部switch才能够到达其他接口。
    vpea mode
  • Private:接口只接受发送给自己MAC地址的报文。
    private mode

二、 测试

1. 基本练习测试,创建一个macvlan, 并分配一个ip(也就是链接到某一网络)

创建虚拟网卡ens33.01

激活虚拟网卡ens33.01

分配IP地址

删除虚拟网卡ens33.01 ip link delete 网卡名字

2. 测试在不同命名空间下,两个macvlan类型虚拟网卡,是否可以直接通信

  1. 创建两个虚拟网卡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   
创建虚拟网卡
  1. 创建两个命名空间
ip netns add ns1  
ip netns add ns2  
创建命名空间
  1. 将两个虚拟网卡ens33.01,ens33.02分别分配到ns1,ns2命名空间里
ip link set ens33.01 netns ns1    
ip link set ens33.02 netns ns2   

给虚拟网卡分配命名空间

在命名空间中,尝试执行命令

  1. 使用dhclient给虚拟网卡ens33.01, ens33.02分配IP
ip net exec ns1 dhclient ens33.01   
ip net exec ns2 dhclient ens33.02   

给虚拟网卡分配IP

查看分配的IP

  1. 测试是否可以ping同宿主机
    是否可以ping通本宿主机
  2. 测试ens33.01 与 ens33.02 之间是否可以互相ping通
    是否可以ping通ns2命名空间下的ens33.02虚拟网卡?

3. 测试同一命名空间下的虚拟网卡,是否可以ping通么?

创建虚拟网卡,分配IP

测试网络是否通

感觉很怪异,不知道为啥,同一个命名空间下的虚拟网卡,居然不通。

推荐阅读更多精彩内容

  • 1、简述osi七层模型和TCP/IP五层模型 OSI模型: 开放系统互联标准,该模型是由国际标准化组织(ISO)定...
    打怪基本靠蒙阅读 61评论 0 0
  • 虚拟化技术概览KVM简介KVM的管理操作 一、虚拟化技术概览 (一)虚拟化技术类型: 主机虚拟化:xen, kvm...
    哈喽别样阅读 629评论 0 0
  • 简述osi七层模型和TCP/IP五层模型 osi七层模型: osi七层模型主要分为:(1)应用层(Applicat...
    家有猪宝_阅读 112评论 1 0
  • linux虚拟网络 neutron的使命 ‘实现服务和相关库以提供按需、可伸缩和技术无关的网络抽象’ tap 操作...
    thread_red阅读 660评论 0 0
  • “妈妈,说话温柔一点” “酱紫我的耳朵不舒服了” 老娘觉得在他面前从来没有大声喝斥或者叫嚷,内心谨记华德福的理念。...
    薇薇董阅读 22评论 0 0