目录

  • 总结整理
  • 1. VLAN 划分种类
  • 1.1. 静态 VLAN
  • 1.2. 动态 VLAN(常见三种)
  • 1.2.1. 基于 MAC 地址的 VLAN (MAC Based VLAN)
  • 1.2.2. 基于子网的 VLAN (Subnet Based VLAN)
  • 1.2.3. 基于用户的 VLAN (User Based VLAN)
  • 1.2.4. 小结
  • 2. 交换机端口
  • 2.1. Access Link(访问链接)
  • 2.1.1. 报文收发规则
  • 2.2. Trunk Link(汇聚链接)
  • 2.2.1. 报文收发规则
  • 2.3. Hybrid Link(混合链接)
  • 2.3.1. 报文收发规则
  • 2.4. 端口状态(Tagged Port 和 Untagged Port)
  • 3. 常见附加 VLAN 信息的方法
  • 4. VLAN 间路由
  • 4.1. 同一 VLAN 内的通信
  • 4.2. 不同VLAN间通信
  • 4.2.1. 交换机接路由器
  • 4.2.2. 三层交换机
  • 4.3. 流
  • 参考链接



总结整理

1. VLAN 划分种类

按照 VLAN 改变情况划分为静态和动态两大类。

1.1. 静态 VLAN

  • 静态 VLAN 又被称为基于端口的 VLAN (Port Based VLAN);
  • 静态 VLAN 不适合那些需要频繁改变拓补结构的网络。

1.2. 动态 VLAN(常见三种)

1.2.1. 基于 MAC 地址的 VLAN (MAC Based VLAN)

通过查询并记录端口所连计算机上网卡的 MAC 地址来决定端口的所属。

1.2.2. 基于子网的 VLAN (Subnet Based VLAN)

通过所连计算机的 IP 地址来决定端口所属 VLAN 的。

  • 是一种在 OSI 的第三层设定访问链接的方法;
  • 与基于 MAC 地址的 VLAN 相比,能够更为简便地改变网络结构。
1.2.3. 基于用户的 VLAN (User Based VLAN)

根据交换机各端口所连的计算机上当前登录的用户,来决定该端口属于哪个 VLAN。

  • 用户识别信息,一般是计算机操作系统登录的用户,属于 OSI 第四层以上的信息。
1.2.4. 小结
  • 决定端口所属 VLAN 时利用的信息在 OSI 中的层面越高,就越适于构建灵活多变的网络
  • 其中基于子网的 VLAN 和基于用户的 VLAN 有可能是网络设备厂商使用独有的协议实现的。

种类

说明

静态 VLAN

(基于端口的 VLAN)

将交换机的各端口固定指派给 VLAN

动态VLAN

基于 MAC 地址的 VLAN

根据各端口所连计算机的 MAC 地址设定

基于子网的 VLAN

根据各端口所连计算机的 IP 地址设定

基于用户的 VLAN

根据端口所连计算机上登录用户设定


2. 交换机端口

  • 以下端口 AccessTrunkHybrid 都是生产厂家对某种端口的称谓,并非IEEE802.1Q

2.1. Access Link(访问链接)

是指 “只属于一个 VLAN,且仅向该 VLAN 转发数据帧” 的端口,在大多数情况下访问链接所连的是客户机。

2.1.1. 报文收发规则
  • Access 端口和客户端网卡不会发送带 VLAN 标记的报文。
  • 发报文:
  • 情况:向客户端发送信息,或向同 VLAN 的 Access 端口发送信息。
  • 步骤:先将报文中的 VLAN 信息去掉,然后再直接发送。
  • 收报文:
  • 情况:从客户端接收信息,或从非 Access 端口或非客户端接收信息。
  • 步骤:先判断该报文中是否有 VLAN 标记信息,根据下面两种情况分别进一步做处理。
  • 如果没有 VLAN 标记,则打上该 Access 端口的 PVID 后继续转发;
  • 如果有 VLAN 标记,一般默认直接丢弃(某些高端交换机在收帧的 VLAN 标记和端口 PVID 相等时转发,否则丢弃;或者不管是否相同均直接转发)。

2.2. Trunk Link(汇聚链接)

能够转发多个不同 VLAN 的通信的端口,跨越多台交换机的 VLAN 。

  • 汇聚链路上流通的数据帧,都被附加了用于识别分属于哪个 VLAN 的特殊信息。
  • 只有当数据帧是一个广播帧、多播帧或是目标不明的帧时,才会被转发到所有属于标记的 VLAN 端口。
  • 通过汇聚链路时附加的 VLAN 识别信息,有可能支持标准的 IEEE 802.1Q 协议,也可能是 Cisco 产品独有的 ISL (Inter Switch Link)
  • 由于汇聚链接中 VLAN 数据较多,在设定汇聚链接时,最好支持 100Mbps 以上的传输速度
2.2.1. 报文收发规则
  • 默认情况下 Trunk 端口配置的是 VLAN 1(默认 VLAN)
  • 发报文:
  • 步骤:将要发送报文的 VLAN 标记与 Trunk 端口的 PVID 进行比较。
  • 如果与 PVID 相等,则从报文中去掉 VLAN 标记再发送;
  • 如果与 PVID 不相等,则直接发送。
  • 收报文:
  • 步骤:判断是否有 VLAN 信息。
  • 如果没有 VLAN 标记,则打上该 Trunk 端口的 PVID(视同该帧是来自 PVID 所对应的 VLAN 转发到 PVID 所对应的 VLAN 接口上);
  • 如果有 VLAN 标记,则判断该 Trunk 端口是否允许该 VLAN 的报文进入:
  • 如果允许,则直接转发;
  • 否则,丢弃。

2.3. Hybrid Link(混合链接)

该类型是华为和 H3C 交换机的一种端口模式。 交换机上既可连接用户主机又可连接其他交换机的端口,它既可连接接入链路又可连接汇聚链路。

2.3.1. 报文收发规则
  • 发报文:
  • 情况:从交换机内部发送信息。
  • 步骤:先判断该报文中是否有 VLAN 标记信息。
  • 如果没有 VLAN 标记,则从报文中去掉 VLAN 标记再发送;
  • 如果有 VLAN 标记则直接发送。
  • 收报文:
  • 步骤:先判断该报文中是否有 VLAN 标记信息。
  • 如果没有 VLAN 标记,则打上该端口的 PVID 后继续转发;
  • 如果有 VLAN 标记,判断端口是否允许该 VLAN 帧进入:允许则转发,否则丢弃。

2.4. 端口状态(Tagged Port 和 Untagged Port)

  • 端口状态 Tagged Por 和 Untagged Port 并非是物理端口状态,而是指物理端口拥有某 VID 的状态
  • Tagged 帧即表示报文有某 VLAN 标记,Untagged 帧则表示没有。

端口类型

帧类型

Tagged 帧

Untagged 帧

帧方向

IN

OUT

IN

OUT

Tagged 端口

保持不变

根据 PVID 进行标记

Untagged 端口

丢弃

若 VID=PVID 则去掉标记

否则丢弃

根据 PVID 进行标记

保持不变


3. 常见附加 VLAN 信息的方法

  • IEEE802.1Q:被称作 标签型 VLAN (Tagging VLAN)
  • 附加的 VLAN 识别信息位于数据帧中 “发送源 MAC 地址” 与 “类别域 (Type Field)” 之间。
  • 需从新计算校验值:附加后从新计算 CRC 校验值,同理去除时也需如此。
  • ISL:被称为 封装型 VLAN (Encapsulated VLAN)
  • 只能用于 Cisco 网络设备之间的互联。
  • 每个数据帧头部都会被附加 26 字节的 “ISL 包头 (ISL Header)” ,并且在帧尾带上通过对包括 ISL 包头在内的整个数据帧进行计算后得到的 4 字节 CRC 值。
  • 无需从新计算校验值:附加后直接去除帧头和帧尾即可。

4. VLAN 间路由

4.1. 同一 VLAN 内的通信

  • 收发信双方同属一个 VLAN 之内的通信,一切处理均在交换机内完成。

4.2. 不同VLAN间通信

4.2.1. 交换机接路由器
  • 在路由器上定义对应各个 VLAN 的 “子接口 (Sub Interface)”。
  • 步骤:
  1. 客户端在发送数据帧之前,需要先用 ARP 获取路由器的 MAC 地址;
  2. 得到路由器的 MAC 地址 R 后,发送往 C 去的数据帧(其中数据帧的目标 MAC 地址是路由器 MAC 地址);
  3. 交换机收到数据帧后检索 MAC 地址列表中与接收端口同属一个 VLAN 的表项(包括汇聚链接端口);
  4. 在送往汇聚链接端口前,附加上 VLAN 识别信息;
  5. 路由器收到数据帧后,确认其 VLAN 识别信息,并交由负责相关 VLAN 的子接口接收;
  6. 根据路由器内部的路由表,判断该向哪里中继;
  7. 更改数据帧的目标 MAC 地址为最终目的的 MAC 地址,并附加了属于目的 VLAN 的识别信息;
  8. 交换机收到数据帧后,根据 VLAN 标识信息从 MAC 地址列表中检索属于其标记 VLAN 的表项,并转发。
4.2.2. 三层交换机
  • 本质上就是 “带有路由功能的(二层)交换机”。
  • 步骤:发送方 → 交换机 / 交换模块 → 路由器 / 路由模块 → 交换机 / 交换模块 → 接收方
  1. 针对目标 IP 地址,计算机判断出通信对象不属于同一个网络,因此向默认网关发送数据;
  2. 交换模块通过检索 MAC 地址列表后,判断需要通过内部汇聚链接;
  3. 将数据帧附加属于发送 VLAN 的识别信息,并转发给路由模块;
  4. 路由模块在收到数据帧时,先由数据帧附加的 VLAN 识别信息判断 VLAN 接口进行路由处理;
  5. 在通过汇聚链路时,这次数据帧被附加上属于目的 VLAN 的识别信息;
  6. 交换模块收到后检索目的 VLAN 的 MAC 地址列表,确认转发的端口;
  7. 若是访问链接端口则转发前会先将 VLAN 识别信息除去。

注意:

  • 加速 VLAN 间路由的手法多由各厂商独有的技术所实现,并且该功能的称谓也因厂商而异。例如,在 Cisco 的 Catalyst 系列交换机上,这种功能被称为 “多层交换 (Multi Layer Switching)”。
  • 除了三层交换机的内部路由模块,外部路由器中的某些机型也支持类似的高速 VLAN 间路由机制。

4.3. 流

  • 对于相同起始和终止 IP 地址的数据流,后继的数据不再需要路由器进行路由处理;通过省略反复进行的路由操作,可以进一步提高 VLAN 间路由的速度。
  • 通过在交换机上缓存路由结果,实现了以缆线速度 (Wired Speed) 接收发送方传输来数据的数据、并且能够全速路由、转发给接收方。

参考链接