系列综述:
💞目的:本系列是个人整理为了
学习VLAN相关知识
的,整理期间苛求每个知识点,平衡理解简易度与深入程度。🥰来源:材料主要源于 使用VMware组建VLAN网络实验环境 进行的,每个知识点的修正和深入主要参考各平台大佬的文章,其中也可能含有少量的个人实验自证。
🤭结语:如果有帮到你的地方,就点个赞和关注一下呗,谢谢🎈🎄🌷!!!
请先收藏!!!,后续继续完善和扩充👍(●'◡'●)
文章目录
VLAN基础知识
概述
- 广播帧和广播域
- 定义
- 广播帧:一种以太网数据帧,其
目的MAC地址全为1
(即FF:FF:FF:FF:FF:FF),表示该帧是发送给网络中所有设备
- 广播域:指网络中
一组相互接收广播消息的设备
,也即网络中所有能接收到同样广播消息的设备集合
- 广播帧:一种以太网数据帧,其
- 特点
- 共享信息:广播域内的所有设备共享接收到的广播帧
- 限制范围:通常
由路由器等设备限定边界
(路由器不会转发广播帧),防止广播扩散到其他网络 - 特殊地址:广播帧使用特殊的地址,目的MAC地址设置为1表示发送给网络中所有设备
- 网络性能:过多的广播流量会占用大量带宽,导致网络性能下降,甚至引起"广播风暴"
- 安全性:广播域内的设备可以相互监听和干扰,增加了潜在的安全风险
- 作用:
- 网络管理:常用于
网络设备的发现和信息收集等任务
。例如,当一台新设备加入网络时,它可能会发送一个广播帧来询问网络中的其他设备,以便了解网络结构和配置。 - 地址解析:在IP网络中,ARP(地址解析协议)使用广播帧来
将IP地址解析为MAC地址
。当一个设备需要发送数据给另一个设备,但只知道目标设备的IP地址时,它会发送一个ARP请求的广播帧,询问拥有该IP地址的设备的MAC地址。 - 服务通告:某些服务和应用程序使用广播帧来
通告自身的存在
。例如,网络打印机或文件服务器可能会定期发送广播帧,以便让网络中的其他设备知道它们可以提供服务。 - 故障诊断:在网络故障诊断中,广播帧可以用来
测试网络连通性
。例如,使用Ping命令发送到广播地址可以帮助确定网络中哪些设备是活动的。 - 数据传输:在某些网络协议中,如UDP(用户数据报协议),广播帧被用来向多个接收者同时发送数据。
- 安全性和攻击:广播帧也可能被用于
网络攻击
,如广播风暴攻击,其中恶意设备发送大量广播帧以消耗网络资源,导致网络拥塞甚至瘫痪。
- 网络管理:常用于
- 定义
- 广播域分割
- 原因:若整个网络只有一个广播域,一旦发出广播信息,就会传遍整个网络,并对域中主机带来额外的负担
- 解决方法:路由器能够
通过网络接口(LAN Interface)分割广播域
,但通常路由器接口数量有限
- 实例:ARP协议中在一个广播域中广播导致的网络带宽和大量设备的无用开销,如下:
- VLAN技术
- 背景:路由器进行广播域的分割不够灵活,而二层交换机只能构建单一的广播域
- 作用:VLAN技术能够将
一台物理交换机逻辑上划分成多个广播域
- 优缺点:利用VLAN技术有
网络构成灵活多变
这个优点,同时也伴随着网络构成复杂化
这个缺点
- VLAN原理
- 未设置VLAN的二层交换机:任何广播帧都会被转发给
除接收端口外的所有其他端口
(Flooding) - 设置VLAN的二层交换机:VLAN通过
限制广播帧转发的范围
分割了广播域,如图所示,通常不同颜色的VLAN使用VLAN ID
进行区分 - 本质:将一台物理交换机在逻辑上分割成了数台交换机,如果未做其他处理,VLAN间是无法通信的。
- 未设置VLAN的二层交换机:任何广播帧都会被转发给
- VLAN间的通信
- 问题:同一台物理交互机上,不同VLAN间居然无法进行直接通信
- 解决:通过
VLAN间路由
实现VLAN间的通信的数据中继服务,可以使用普通的路由器或三层交换机
- VLAN标识信息
- 作用:使得设备能够分辨汇聚链接发送的不同VLAN的数据帧
- 原理:IEEE 802.1Q协议规定,在以太网数据帧的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN标签(又称VLAN Tag,简称Tag)
- 字段解释
字段 | 长度 | 含义 | 取值 |
---|---|---|---|
TPID | 2Byte | Tag Protocol Identifier(标签协议标识符),表示数据帧类型。 | 表示帧类型,取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。各设备厂商可以自定义该字段的值。当邻居设备将TPID值配置为非0x8100时,为了能够识别这样的报文,实现互通,必须在本设备上修改TPID值,确保和邻居设备的TPID值配置一致。 |
PRI | 3bit | Priority,表示数据帧的802.1Q优先级。 | 取值范围为0~7,值越大优先级越高。当网络阻塞时,设备优先发送优先级高的数据帧。 |
CFI | 1bit | Canonical Format Indicator(标准格式指示位),表示MAC地址在不同的传输介质中是否以标准格式进行封装,用于兼容以太网和令牌环网。 | CFI取值为0表示MAC地址以标准格式进行封装,为1表示以非标准格式封装。在以太网中,CFI的值为0。 |
VID | 12bit | VLAN ID,表示该数据帧所属VLAN的编号。 | VLAN ID取值范围是0~4095。由于0和4095为协议保留取值,所以VLAN ID的有效取值范围是1~4094。 |
- 根据
设备工作OSI层次
的VLAN技术类型划分- L2(Layer 2):主要是
二层交换机
,工作在OSI模型的第二层(数据链路层),根据MAC地址转发帧,以实现网络内部的通信。 - L3(Layer 3):主要是
路由器
,工作在OSI模型的第三层(网络层),负责在不同网络之间传输数据包,并根据IP地址进行路由选择。 - L3s(Layer 3 Switching):主要是
三层交换机
,工作在OSI模型的第三层(网络层),L3s交换机包含了l2交换模块和l3路由模块,通过交换模块在数据链路层进行VLAN划分,通过路由模块在网络层进行VLAN间的路由,有助于减少网络延迟,并提高大型网络的效率。
- L2(Layer 2):主要是
L2(Layer 2)交换机
- 基本概念
- 定义:交换机是一种用于电信号转发的网络设备,能够为连接的设备提供数据交换服务。工作在数据链路层,能够识别帧中的MAC地址信息,根据这些信息将数据帧转发到正确的端口。
- 作用:
- 数据转发:交换机能够根据数据帧中的MAC地址,将数据转发到正确的目的地。
- 网络隔离:通过VLAN(虚拟局域网)技术,交换机可以将一个物理网络划分为多个逻辑网络,提高安全性。
- 带宽管理:交换机可以为不同的端口分配不同的带宽,优化网络资源的使用
- 原理
- MAC地址表:交换机学习并建立MAC地址表,用于决定如何转发数据帧。
- 交换策略:当交换机会缓存收到的数据帧,检查帧的目的MAC地址和内容完整性,并根据MAC地址表决定是直接转发到特定端口,还是广播到所有端口。
- 交换机器的端口类型
- 访问链接(Access Link):
只属于一个VLAN,且仅向该VLAN转发数据帧
的端口,设备插入后即固定其VLAN - 汇聚链接(Trunk Link):通过对数据帧实现
VLAN识别信息的附加
,从而通过一个端口能够实现不同VLAN间通信的转发
- 访问链接(Access Link):
- 访问链接的类型
- 静态VLAN
- 定义:基于端口的VLAN(PortBased VLAN),
明确指定各端口属于哪个VLAN
的设定方法 - 缺点:配置操作在大量设备的网络中繁杂无比,不适合那些需要
频繁改变拓扑结构
的网络。
- 定义:基于端口的VLAN(PortBased VLAN),
- 动态VLAN
- 定义:根据每个端口所连的设备信息,随时改变端口所属的VLAN
- 特点:决定端口所属VLAN时利用的信息在OSI中的层面越高,就越适于构建灵活多变的网络。
- 静态VLAN
- 根据
OSI参照模型
决定端口所属的动态VLAN类型- 基于MAC地址的VLAN(MAC Based VLAN):基于
OSI的第二层
设定访问链接,通过查询并记录端口所连设备网卡上的MAC地址
来决定端口的所属,即该设备无论连接哪个端口都会被划分到指定VLAN中,但是网卡变更
可能导致连接失败。
- 基于子网的VLAN(Subnet Based VLAN):基于
OSI的第三层
设定访问连接,通过所连计算机的IP地址,来决定端口所属VLAN的,只要它的IP地址不变,就仍可以加入原先设定的VLAN。
- 基于用户的VLAN(User Based VLAN):基于
OSI第四层以上
设定访问连接,根据交换机各端口所连的计算机上的登录用户,来决定该端口属于哪个VLAN
- 基于MAC地址的VLAN(MAC Based VLAN):基于
- 如何实现跨越交换机间的VLAN信息转发
- 原因:如果对
不同交换机间相同VLAN
进行接口并联,会极大降低交换机端口的利用效率和扩展性
- 解决方法:通过
汇聚链接
让交换机间互联的网线集中到一根上,可认为所有交互机设备的拥有一个共享VLAN域
- 原因:如果对
L3(Layer 3)VLAN间路由
- 概述
- 原因:由于VLAN技术隔离二层广播域的同时,也限制了不同VLAN间的二层通信能力,导致连接在同一台交换机上的设备,只要所属的VLAN不同就无法实现直接通信。
- 解决:VLAN间路由
通过三层路由转发或交换机
实现了不同VLAN间的数据包转发
不同VLAN间不通过路由就无法通信
的原因- 在LAN内的通信,必须在数据帧头中指定通信目标的MAC地址。而TCP/IP协议通过ARP获取MAC地址
- ARP获取MAC地址的方法是广播。VLAN对广播域进行了划分,所以导致无法解析MAC地址,进行直接通信。
- 在同一VLAN下设备的通信
- 不同VLAN下设备的通信(
发送方------交换机------路由器------交换机------接收方
)- 发送方---交换机:设备A根据目标IP判断与本机不在同一网段,向所属的交换机VLAN内广播ARP请求获取默认网关的MAC地址。
- 交换机---路由器:计算机A收到ARP响应获得路由器MAC地址R后,将数据帧发往路由器。由于路由器所连的
汇聚链路端口被所有VLAN共享使用
,所以交换机会根据MAC地址向路由器端口6转发附加VLAN 红 识别信息
的数据帧 - 路由器---交换机:路由器收到数据帧后,确认其所属VLAN,并交由负责对应的VLAN子接口接收。路由器根据内部路由表更改数据帧的目标MAC地址为计算机C的MAC地址,向交换器对应VLAN发送
附加VLAN 蓝 识别信息
的数据帧 - 交换机---接收方:交换机收到路由器发送的数据帧后,根据VLAN识别信息检索后,去除VLAN识别信息通过端口3转发给接收方
L3s(Layer 3 Switching)三层交换机
- VLAN间路由的路由器速度瓶颈问题
- 流量集中:VLAN间路的流量会集中到
路由器和交换机互联的汇聚链路部分
,可能导致路由器成为整个网络的瓶颈。 - 处理较慢:相比交换机的专用数据帧硬件处理芯片,路由器通常
基于软件处理
,即使以缆线速度接收到数据包,也无法在不限速的条件下转发出去,因此会成为速度瓶颈
- 流量集中:VLAN间路的流量会集中到
- 三层交换机(Layer 3 Switch)
- 本质:
增加路由功能的二层交换机
,由于具备第三层路由功能,所以被称为"三层交换机" - 优化
- 内置链接:在三层交换机中内置路由模块,并通过
内部汇聚链路
实现与交换模块的数据帧交换,从而确保相当大的带宽 - 硬件路由:相比传统路由的软件处理,三层交换机的路由模块使用
ASIC硬件处理路由
,从而实现高速路由
- 内置链接:在三层交换机中内置路由模块,并通过
- 作用:通过识别IP地址实现不同VLAN之间的直接通信,从而不需要依赖外部路由器实现同一个设备上处理VLAN内的交换和VLAN间的路由,从而减少网络延迟和提高数据传输效率
- 本质:
- VLAN间路由的加速
- 背景:在经过VLAN路由的数据帧传递过程中,并不是所有的数据都需要经过路由器(或路由模块)
- 作用:三层交换机进行VLAN间路由时,通过查询缓存的第一次流的路由信息,实现同一流的后续数据
绕过内部路由模块,从交换机内部直达转发端口
- 示例
- 当使用FTP传输大文件时,由于MTU(最大传输单元)的限制,IP协议会将数据分割成小块进行传输,并在接收方重新组合
- 被分割的数据块具有相同的发送目标标识,如源IP地址、源端口号、目的IP和目的端口号
- 流的初始数据被正确路由后,后续数据应遵循相同的路由路径。后续数据不再需要路由器进行路由处理,通过省略重复的路由操作,可以提高VLAN间路由的速度。
- 传统型路由器存在的意义
- WAN连接:三层交换机大多数机型只配有LAN(以太网)接口,所以连接WAN通常还是需要路由器
- 网络安全:用户可以通过路由器构建更为安全可靠的网络,如基于IPSec构建VPN(VirtualPrivate Network)、利用RADIUS进行用户认证等等。
- 异构支持:路由器支持除TCP/IP协议外的多种网络协议
IP VLAN
概述
- 概述
- 定义:基于
网络层IP地址
进行流量分离
的VLAN技术,需要Linux内核版本>=4.2才能稳定实现(docker对接之前版本时存在bug) - 用途:主要用于大型企业或数据中心,以提高网络的灵活性和安全性。
- 定义:基于
- 原理
- 核心:从一个主机接口虚拟出多个虚拟网络接口,但是所有的IPVLAN虚拟子接口都有相同的 mac地址,但可以配置不同的IP地址
- 注意:当使用DHCP协议分配ip时,需要配置唯一的ClientID字段作为机器的标识, 所以如果使用IPVLAN则应该使用IP作为设备的唯一标识,而不是使用mac地址
- 作用
- IP子网隔离:IP VLAN能够在
一个物理交换机
上创建多个拥有独立IP子网的虚拟局域网(VLAN)
,从而实现网络的逻辑分割。 - 跨交换机通信:支持跨不同物理交换机的VLAN间通信,扩展了网络的覆盖范围
- 灵活性:可以根据业务需求灵活地调整VLAN配置,适应动态变化的网络环境。
- IP子网隔离:IP VLAN能够在
- 特点
- 从一个主机接口虚拟出多个虚拟网络接口,但是所有的IPVLAN虚拟子接口都有相同的 mac地址,但可以配置不同的IP地址
- 在IP层进行流量分离而不是基于MAC地址,因此,你可以看到,同属于一块宿主以太网卡的所有IPVLAN虚拟网卡的MAC地址都是一样的,因为宿主以太网卡根本不是用MAC地址来分流IPVLAN虚拟网卡的流量的。具体的流程如下图所示:
- 工作原理
- VLAN Tagging:在以太网帧中插入VLAN标签(如IEEE 802.1Q标签),用于标识帧属于哪个VLAN。
- 子网划分:在IP层面上,每个VLAN被分配一个独立的IP子网,实现网络的逻辑隔离。
- 路由功能:交换机需要具备路由功能,以便在不同VLAN间转发带有VLAN标签的帧。
- VLAN间路由:通过在交换机上配置VLAN间路由,实现不同VLAN间的通信。
- VLAN管理:网络管理员可以通过管理VLAN的IP子网来控制网络流量和访问权限。
- 配置步骤
- 创建VLAN:在交换机上创建VLAN,并为每个VLAN分配一个唯一的ID。
- 分配IP子网:为每个VLAN分配一个独立的IP子网。
- 配置VLAN接口:在交换机上配置VLAN接口,并为每个接口分配相应的IP地址。
- 配置VLAN间路由:设置VLAN间路由规则,以允许不同VLAN间的通信。
- 安全和访问控制:通过ACL(访问控制列表)等安全措施,控制不同VLAN间的访问权限。
- 类型
- 共性:ipvlan的不同工作模式不可混用。一个父接口选择一种模式后,依附于它的所有虚拟子接口都会运行在这个模式下
- L2模式:IPVLAN工作在数据链路层,类似于一个交换机
- 内部转发:
父接口(物理接口)
作为交换机来转发同一个网络下的所有子接口(虚拟接口)
的数据 - 外部路由:如果需要
发送到其他网络
,报文会通过父接口的路由
转发出去。
- 内部转发:
- L3模式:IPVLAN工作在网络层,类似于路由器的功能。
- 在各个虚拟网络和主机网络之间进行不同网络报文的路由转发工作
- 只要父接口相同,即使虚拟机/容器不在同一个网络,也可以互相通信,因为IPVLAN会在中间做报文的转发工作。
- 在L3模式下,不支持广播和多播流量
- L3s模式:L3s模式与L3模式类似,区别在于启用了iptables(conn-tracking)
- IPVLAN支持NAT和状态跟踪功能,因此被称为L3对称(L3s),性能可能略低于L3模式,但如果你选择L3s模式而不是普通的L3模式,通常是为了让conn-tracking工作
- IPVLAN支持NAT和状态跟踪功能,因此被称为L3对称(L3s),性能可能略低于L3模式,但如果你选择L3s模式而不是普通的L3模式,通常是为了让conn-tracking工作
- 选择ipvlan还是macvlan?ipvlan和macvlan两个虚拟网络模型提供的功能,看起来差距并不大,那么什么时候需要用到ipvlan呢?要回答这个问题,我们先来看看macvlan存在的不足:1、需要大量mac地址。每个虚拟接口都有自己的mac地址,而网络接口和交换机支持的mac地址个数是有限的,在mac地址过多的情况下会造成严重的性能损失2、无法和802.11(wireless)网络一起工作
- ipvlan route show :查看l3的网络路由连接创建情况
- ip link show:查看网络连接的详细情况
sudo ip netns exec netA ip link show
:查看netA的网络情况- 虚拟机桥接模式(https://blog.csdn.net/a__int__/article/details/111208626)
- 桥接模式的虚拟机IP必须与主机在同一网段且子网掩码、网关与DNS也要与主机网卡一致。
- 在虚拟机A上,使用ip link命令创建一个IPVLAN接口,假设物理接口为eth0,IPVLAN接口命名为ipvA,并设置模式为L3:sudo ip link add ipvA link eth0 type ipvlan mode l3
网桥Bridge
- 早期的两端口二层通信设备
- Bridge 实际上就是一种旧式交换机,他们之间并没有很大的差别。Bridge 与交换机的区别在与市场,而不在与技术。交换机对网络进行分段的方式与 Bridge 相同,交换机就是一个多端口的网桥。
macVLAN
- 概述
- 背景:在macvlan出现之前,通常使用接口别名
ethx:y
,但是实际上还是共享同一个物理网卡的MAC地址
,即在数据链路层(Layer 2)上是不可区分的,从而导致所有流量仍通过同一个MAC地址进行 - 定义:MacVLAN是一种MAC虚拟网络接口创建技术,
- 背景:在macvlan出现之前,通常使用接口别名
定义
Macvlan 是一种 Linux 内核技术,它允许你创建虚拟网络接口,这些接口在 MAC 层面表现得就像物理接口一样。它们拥有自己独立的 MAC 地址,并且可以直接连接到外部网络。
作用:在一个主机网络接口
上配置多个MAC独立的虚拟网络子接口
类比:物理网卡也就相当于一个交换机,记录着对应的虚拟网卡和 MAC 地址,当物理网卡收到数据包后,会根据目的 MAC 地址判断这个包属于哪一个虚拟网卡。
问题:只要是从 Macvlan 子接口发来的数据包(或者是发往 Macvlan 子接口的数据包),物理网卡只接收数据包,不处理数据包,所以这就引出了一个问题:本机 Macvlan 网卡上面的 IP 无法和物理网卡上面的 IP 通信
Macvlan 下的虚拟机或者容器网络和主机在同一个网段中,共享同一个广播域
特点
- 独立的MAC地址:每个 Macvlan 接口都有自己唯一的 MAC 地址。
- 二层网络:Macvlan 接口工作在数据链路层(Layer 2),这意味着它们可以直接与同一局域网中的设备通信,就像物理接口一样。
- 无需NAT:与某些虚拟网络技术不同,Macvlan 不需要网络地址转换(NAT),因为每个接口都有全局唯一的IP地址。
- 网络隔离:每个 Macvlan 接口都提供了一定程度的网络隔离。
- 支持混杂模式:Macvlan 接口可以配置为混杂模式,以捕获所有经过的数据包。
- 适用于多种用途:适合于需要独立MAC地址的场景,如虚拟化、容器网络、测试环境等。
原理
Macvlan 通过在 Linux 内核中创建虚拟网络接口来实现。这些接口共享物理网络接口的硬件资源,但是每个虚拟接口都有自己的 MAC 地址。当数据包到达物理接口时,内核会根据数据包的 MAC 地址将其转发到正确的虚拟接口。
性质
- 桥接模式:Macvlan 可以工作在桥接模式下,其中物理接口作为桥接的一部分,虚拟接口直接连接到外部网络。
- 私有模式:在私有模式下,Macvlan 接口之间的通信需要通过物理接口进行,它们不可以直接相互通信。
- VEPA/VSMP:一些高级配置允许 Macvlan 接口在虚拟交换机中工作,如 VEPA(Vendor-Specific Path Bridging)和 VSMP(Virtual Standard Multi-Path)。
- 安全性:由于每个接口都有独立的 MAC 地址,Macvlan 提供了一定程度的安全性,因为每个接口的数据包都是隔离的。
- 性能:Macvlan 通常具有很好的性能,因为它直接利用了物理网络硬件,并且避免了像NAT这样的额外处理。
- 配置简单 :Macvlan 的配置相对简单,可以直接通过 Linux 的
ip
命令或网络管理工具进行配置。
总的来说,Macvlan 是一种强大的网络虚拟化技术,它提供了一种在单个物理主机上模拟多个独立网络接口的方法,这些接口在 MAC 层面上表现得就像独立的物理设备一样。
ipvlan可以ping通:https://blog.csdn.net/mr1jie/article/details/129173405
两个vlan可以ping通,在这两个vlan之上能够通过ipvlan实现通信https://blog.csdn.net/qq_38609565/article/details/127349648
少年,我观你骨骼清奇,颖悟绝伦,必成人中龙凤。 不如点赞·收藏·关注一波