linux 虚拟网络_macvlan原理

linux 虚拟网络_macvlan原理      macvlan是Linux操作系统内核提供的网络虚拟化方案之一,更准确的说法是网卡虚拟化方案。它可以为一张物理网卡设置多个mac地址,相当于物理网卡施展了影分身之术,由一个变多个,同时要求物理网卡打开混杂模式。针对每个mac地址,都可以设置IP地址,本来是一块物理网卡连接到交换机,现在是多块虚拟网卡连接到交换机。macvlan应该很简单。1.环境准备         假设有一块物理…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

        macvlan是Linux操作系统内核提供的网络虚拟化方案之一,更准确的说法是网卡虚拟化方案。它可以为一张物理网卡设置多个mac地址,相当于物理网卡施展了影分身之术,由一个变多个,同时要求物理网卡打开混杂模式。针对每个mac地址,都可以设置IP地址,本来是一块物理网卡连接到交换机,现在是多块虚拟网卡连接到交换机。macvlan应该很简单。

1.环境准备 

        假设有一块物理网卡,名称是enp0s8,连接到网络192.168.187.0/24网段,就在enp0s8上实验macvlan。

2.创建macvlan

  • 首先将enp0s8网卡的启动方式由原来的dhcp改成manual,不需要再自动获取IP地址,因为对于混杂模式下的网卡,IP地址是没有意义的。修改/etc/network/interfaces,配置如下:
auto enp0s8
iface enp0s8 inet manual
  • 创建macvlan:
    ip link add link enp0s8 dev enp0s8macv.01 type macvlan
    ip link add link enp0s8 dev enp0s8macv.02 type macvlan
    ip link set enp0s8macv.01 up
    ip link set enp0s8macv.02 up
  • 手动分配IP地址:
    dhclient enp0s8macv.01
    dhclient enp0s8macv.02

    经过确认可以知道enp0s8macv.01与enp0s8macv.02都正确分配到了网段192.168.187.0/24中的地址。创建的虚拟网卡既可以给本地宿主机使用,也可以指定宿主机上创建的虚拟机。

3.macvlan作用

        从以上的创建步骤可以看出,macvlan并没有创建网络,只是虚拟了网卡,共享了物理网卡所连接的外部网络,它的效果与桥接模式是一样的。网络虚拟化的目的就是在多租户场景,在统一的低层网络之上,单独为每个租户虚拟出自己的网络从而达到隔离的目的。macvlan既然不创建网络,又有什么用处呢?答案是效率,它是效率最高的跨主机网络虚拟化解决方案之一。vlan与vxlan方案中涉及到的虚拟化设备:

1.tap设备,就是虚拟机的网卡。

2.bridge设备,宿主机内的网络。

3.vlan/vxlan设备。

而macvlan只涉及到一个虚拟设备macvlan。可以看出,macvlan方案涉及到的虚拟设备更少,数据包处理所经过的点就更少,效率就更高。macvlan会出现在一些对网络性能要求极高的场景下.

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/169384.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • navicat15 for mac激活码【2021.8最新】

    (navicat15 for mac激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月25日
    91
  • c语言cstdio什么意思,<iostream>与<cstdio>有什么区别?

    c语言cstdio什么意思,<iostream>与<cstdio>有什么区别?该楼层疑似违规已被系统折叠隐藏此楼查看此楼列个提纲:1.cstdio是面向“文件”的,或者不强调文件和非文件流的区别,默认流就是可以关联外部文件,至于文件的外延是啥就不管,扔给宿主环境了。从std::FILE这个名字以及printf/scanf接口描述基于fprintf/fscanf上就可以看出来。iostream头只是包含了一坨东西,封装标准输入输出流,和文件流(在)不通用。2.cstdio不…

    2025年5月31日
    1
  • cygwin 安装 apt-cyg

    cygwin 安装 apt-cyg

    2022年3月5日
    38
  • DDL和DML的含义与区别「建议收藏」

    1、DDL和DML的含义1、DML(DataManipulationLanguage)数据操作语言-数据库的基本操作,SQL中处理数据等操作统称为数据操纵语言,简而言之就是实现了基本的“增删改查”操作。包括的关键字有:select、update、delete、insert、merge2、DDL(DataDefinitionLanguage)数据定义语言-用于定义和管理SQL数据库中的所有对象的语言,对数据库中的某些对象(例如,database,table)进行管理。包括的关键字有:crea

    2022年4月17日
    114
  • 柚子快报 app 拼多多助力是真的吗_柚子说APP

    柚子快报 app 拼多多助力是真的吗_柚子说APP今天在这个平台发布了拼多多助力任务开始五个任务,还都是助力成功的,背后发的17任务,只有一个助力成功这是正常的嘛存不存在平台自己P图骗赏金

    2025年7月22日
    3
  • 菜单权限表sql语句「建议收藏」

    菜单权限表sql语句「建议收藏」selectm.*     fromt_menum     wherem.state=’1′      and((menu_type=1andexists        (select1          fromv_user_menub          wherem.menu_id…

    2025年6月13日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号