VLAN and VLAN Security

VLAN

VLAN 即虚拟局域网,通过端口与 VLAN 的绑定(或其他方式),在逻辑上划分局域网

划分后ARP 等请求广播包将在同一 VLAN 下进行传播

VLAN 的产生原因

Backdrop:局域网过大时,广播域过大,导致 ARP 这种广播请求包需要遍历整个广播域,这一现象被称为广播风暴

因此需要分割广播域

解决方法:使用路由器将网络分段;VLAN 技术

广播遇到三层设备就会截止

VLAN 的优势

与传统 LAN(局域网)相比

1、隔离广播域,抑制广播报文

2、减少移动和改变的代价

3、创建虚拟工作组,超越传统网络的工作方式

4、增强通讯的安全性

5、增强网络的健壮性(缩小了广播域,缩小了攻击范围)

VLAN 实现方式

基于端口的 VLAN;基于 MAC 的 VLAN;基于协议的 VLAN;基于子网的 VLAN

基于端口的 VLAN

基于端口的 VLAN

需要配置 VLAN 表:端口与所属 VLAN 映射表

优势:操作简单

劣势:与端口绑定,并未与主机绑定,主机迁移后容易发生错误

基于 MAC 的 VLAN

基于 MAC 的 VLAN

需要配置 VLAN 表:MAC 与所属 VLAN 映射表

优势:当用户物理位置移动时,即从一个交换机换到其他的交换机时,VLAN不用重新配置,故认为这种根据 MAC 地址的划分方法是基于用户的 VLAN

劣势:初始化时,所有的用户都必须进行配置,如果用户很多,配置的工作量是很大的;并且同一端口下可能存在属于不同 VLAN 的多个主机,则该端口不能隔离广播包了

基于协议的 VLAN

基于协议的 VLAN

需要配置 VLAN 表:协议类型与 VLAN 的映射表(不常见)

根据二层数据帧中的协议字段进行 VLAN 的划分

基于子网的 VLAN

基于子网的 VLAN

需要配置 VLAN 表:IP 网络与 VLAN 的映射表

优势:用户可以在网络内部自由移动而不用重新配置自己的工作站

劣势:效率低,检查每一个数据包的网络层地址是很费时的,并且同一个端口下可能存在多个VLAN 的成员,无法隔离广播包

VLAN 的可跨越性

image-20210923160359426

1、VLAN 数据可以跨越多台交换机被转递

2、不同 VLAN 的信息必须通过三层路由处理才能转发到这个端口上

3、二层的广播只能在一个 VLAN 下进行

二层交换机与三层交换机

二层交换技术对于网络层或者高层协议来说是透明的

优势:数据交换是靠硬件来实现的,其速度相当快

它不处理网络层的IP地址,不处理高层协议的诸如TCP、UDP的端口地址,它只需要数据包的物理地址即MAC地址

劣势:它不能处理不同 IP 子网(包括VLAN)之间的数据交换

识别不了 IP 协议等

路由器的优缺点

优势:选择最佳路由、负荷分担、链路备份及和其他网络进行路由信息的交换等

劣势:转发效率较低(处理大量的跨越 IP 子网的数据包)

因此要想利用二层交换率高这一优点,又要处理三层IP数据包的转发,三层交换技术就诞生了

三层交换机的优点

在网络模型中的第三层实现了数据包的高速转发,可以理解为:二层交换技术 + 三层转发技术的结合 = 三层交换机

本质是二层交换机的升级扩充

优势:一次路由,多次转发;对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现

三层交换技术的出现,解决了局域网中网段划分之后,网段中子网必须依赖路由器进行管理的局面,解决了传统路由器低速、复杂所造成的网络瓶颈问题。

工作原理

1、收到一个数据包,查看包的目的 MAC 是自己,但是 IP 不是自己

2、查找硬件转发表

3、如果没查到表项,交由路由进程处理(一旦交由cpu处理,必然会消耗cpu资源)

4、路由进程将按照 IP 层那一套,查看路由表,查找下一跳的 IP 地址,在通过 ARP 找出此地址对应的 MAC 地址

5、转发前三层交换机修改 IP 包头的 ttl 值 + 修改原 mac 地址改为自己出口 mac 地址 + 建立交换机硬件转发表,包括目的IP地址,目的IP地址(下一跳)对应的mac地址,mac地址对应的vlan,以及对应的端口

这样当一下包过来的时候,交换机就会 查看硬件转发表直接转发而不会再经过路由表的查询了,也即是交换机的一次路由,多次交换的原理

VLAN 的链路类型与端口类型

image-20210930133649605

默认情况下,交换机所有端口都是Access-Link端口,并属于VLAN-1

接入链路

Access link,交换机与主机之间,通常只涉及一个 VLAN

这个端口不能直接接收其它 VLAN 的信息,也不能直接向其它 VLAN 发送信息。不同VLAN 的信息必须通过三层路由处理才能转发到这个端口上。

默认情况下,交换机所有端口都是Access-Link端口,并属于VLAN-1

干道链路

Trunk link,交换机之间 / 交换机路由器之间,可以承载多个 VLAN,因此数据帧在干道链路上传输时,交换机必须要识别数据帧是属于哪个 VLAN 的以转入正确的 Access Link

负责传输多个VLAN的数据,Trunk-Link端口默认为1

端口类型

Access 端口:用于接用户计算机的端口,只能属于一个 VLAN

Trunk 端口:用于交换机之间连接的端口,可以属于多个 VLAN

Hybrid 端口:交换机之间或用于交换机与用户的计算机,可以属于多个 VLAN,

hybrid 端口可以允许多个 VLAN 的报文不打标签,而 trunk 端口只允许缺省 VLAN 的报文不打标签

同一个交换机上 hybrid 端口和 trunk 端口不能并存

端口的缺省 ID

Access 端口只属于一个 VLAN,因此其缺省 ID 就是它所在的 VLAN

Trunk 端口属于多个 VLAN,所以需要设置缺省 VLAN ID,默认为 VLAN 1

如果报文的 VLAN ID 与 端口的缺省 ID 相同,则系统将去掉报文的 VLAN Tag,再发送报文;所以来自 Native VLAN 的数据帧通过 Trunk 链路时不重新封装,以原有的帧传输
华为交换机缺省VLAN被称为 “PvidVlan”,对于思科交换机缺省VLAN被称为 “Native Vlan”

VLAN 帧格式

Swith 配置 VLAN 后,会将收到的数据报加入 VLAN 头:交换机负责打标签和去标签,对于主机来说是透明的

image-20210930135517564

VLAN 转发原则

Access 端口

Access 端口收到帧时:计算机 → 交换机

该帧不包含 VLAN 信息(按理说不包含),将打上端口的 PVID (基于端口的Vlan ID);

该帧包含 VLAN 信息,检测 VLAN 信息与端口标签是否相同,如果相同直接转发;不相同则丢弃。

Access 端口发送帧时:交换机 → 计算机

只绑定一个 VLAN,因此剥离 VLAN 信息,发出的帧为普通以太网帧

Trunk 端口

Trunk 端口收到帧时:交换机 → 交换机

该帧不包含 VLAN 信息(特殊情况),则将报文转发(打标签)到属于缺省 VLAN 的端口

该帧包含 VLAN 信息(大多数情况),则不改变,直接转发

Trunk 端口发送帧时:交换机 → 交换机

当该帧的 VLAN 信息与端口的 PVID(缺省 Port-base VLAN ID) 不同时,直接转发;

当该帧的 VLAN 信息与端口的 PVID 相同时,则剥离VLAN信息,再发送

双标签跳跃攻击的关键点

VLAN安全威胁

主要介绍 跳跃攻击 与 VTP 攻击

双标签跳跃攻击

Target:实现跨 VLAN 通信

image-20210930140913396

攻击过程

1、攻击者使用双层标签,其外层标记为 Trunk 链路的 Native VLAN 号(也是攻击者所处的 VLAN),内层标记为目的 Vlan ID

2、Access 端口收到主机发来的带有 VLAN ID 的包,匹配一致后,转到 Trunk 端口准备发送

3、Trunk 端口收到包后,发现 VLAN ID 与 缺省 ID 一致,去除外侧 VLAN 后发送

4、Trunk 端口收到包后,该帧包含 VLAN 信息(大多数情况),则不改变,直接转发

5、Trunk 端口发送包,该帧的 VLAN 信息与端口的 PVID 不同时,直接转发到 Access 端口

4、Access 端口收到包后,将会查看到内层的 VLAN ID,就会直接转发了,转发到计算机

局限

1、有的交换机从 Access 接口收到带标签的帧,认为是非法的,会直接丢弃

2、双标签攻击只能实现单向攻击

由于是单向攻击,攻击者无法获得被攻击者的 MAC,因此攻击包只能是二层的广播或者组播帧

防御

1、设置 Trunk 缺省 VLAN ID 为不存在的 VLAN ID 即可;

2、Access 端口不允许带有 VLAN 标签的帧通过;

DTP 跳跃攻击

DTP,Dynamic Trunk Protocol,自动协商 Trunk 链路的缺省 ID

管理员可以手动指定交换机之间的链路是否形成 Trunk,也可以让交换机使用 DTP 自动协商

image-20210930141952004

Perpetrator 伪装成交换机,发送 DTP 包,将攻击者与交换机之间的链路协商为为 Trunk 链路,随后攻击者通过该链路,可以收发带任意 VLAN 标签的数据,从而实现访问任意 VLAN 的目的

特点:实现攻击者和被攻击者之间的双向访问,导致攻击者绕过防火墙直接访问目标主机

防范:关闭不需要开启的交换机接口;关闭 DTP;

VTP 攻击

VTP,VLAN Trunk Protocol,思科私有协议,帮助用户减少枯燥繁重的配置工作

原理:管理员在网络中设置一个或者多个 VTP Sever,然后在 VTP Sever 上面创建、删除、修改VLAN,VTP协议会将这些变化通告到其他交换机,这些交换机可以更新 VLAN 信息,实现管理的自动化

1、VLAN 信息的同步是通过 VTP 通告来实现的,VTP 通告只能在 Trunk 链路上传输

2、通告是以组播帧的方式发送的,通告中有一个字段称为修订号 Revision。每次添加删除或修改时,Revision都会递增

3、如果收到的Revision更高,则本交换机将根据此通告更新自身的信息。如果交换机收到更低的通告,会用自己的信息反向覆盖

4、攻击者发送高的Revision的VTP通告,就能把网络中的VLAN信息覆盖了。如果攻击者把网络中的全部VLAN信息删除了,整个网络的通信也就中断了

防范:关闭不需要开启的交换机接口;和用户计算机连接的接口要明确配置为 Access 模式。只要Trunk无法协商成功,VTP将无法工作;配置VTP密码,使攻击者发送的VTP消息被拒绝接收