华为VLAN原理精讲与配置


华为VLAN原理精讲与配置

[TOC]

VLAN数据帧

在一个VLAN交换网络中,以太网帧主要有以下两种形式:

  • 有标记帧 [Tagged帧]:IEEE 802.1Q协议规定,在以太网数据帧的目的MAC地址和源MAC地址字段之后、协议类型字段之前加入4个字节的VLAN标签(又称VLAN Tag,简称Tag)的数据帧
  • 无标记帧 [Untagged帧]:原始的、未加入4字节VLAN标签的数据帧

VLAN数据帧中的主要字段:

  • TPID:2字节,Tag Protocol Identifier [标签协议标识符],表示数据帧类型
    • 取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃
    • 各设备厂商可以自定义该字段的值。当邻居设备将TPID值配置为非0x8100时,为了能够识别这样的报文,实现互通,必须在本设备上修改TPID值,确保和邻居设备的TPID值配置一致
  • PRI:3 bit,Priority,表示数据帧的优先级,用于QoS
    • 取值范围为0~7,值越大优先级越高。当网络阻塞时,交换机优先发送优先级高的数据帧
  • CFI:1 bit,Canonical Format Indicator(标准格式指示位),表示MAC地址在不同的传输介质中是否以标准格式进行封装,用于兼容以太网和令牌环网
    • CFI取值为0表示MAC地址以标准格式进行封装,为1表示以非标准格式封装
    • 在以太网中,CFI的值为0
  • VID:12 bit,VLAN ID,表示该数据帧所属VLAN的编号。
    • VLAN ID取值范围是0~4095。由于0和4095为协议保留取值,所以VLAN ID的有效取值范围是1~4094
    • 交换机利用VLAN标签中的VID来识别数据帧所属的VLAN,广播帧只在同一VLAN内转发,这就将广播域限制在一个VLAN内

如何识别带VLAN标签的数据帧:数据帧的Length/Type = 0x8100

注意:计算机无法识别Tagged数据帧,因此计算机处理和发出的都是Untagged数据帧;为了提高处理效率,交换机内部处理的数据帧一律都是Tagged帧

VLAN的划分方式

VLAN的划分包括如下5种方法:

  • 基于接口划分:根据交换机的接口来划分VLAN
    • 网络管理员预先给交换机的每个接口配置不同的PVID,当一个数据帧进入交换机时,如果没有带VLAN标签,该数据帧就会被打上接口指定PVID的标签,然后数据帧将在指定VLAN中传输。
  • 基于MAC地址划分:根据数据帧的源MAC地址来划分VLAN
    • 网络管理员预先配置MAC地址和VLAN ID映射关系表,当交换机收到的是Untagged帧时,就依据该表给数据帧添加指定VLAN的标签,然后数据帧将在指定VLAN中传输。
  • 基于IP子网划分:根据数据帧中的源IP地址和子网掩码来划分VLAN
    • 网络管理员预先配置IP地址和VLAN ID映射关系表,当交换机收到的是Untagged帧,就依据该表给数据帧添加指定VLAN的标签,然后数据帧将在指定VLAN中传输
  • 基于协议划分:根据数据帧所属的协议(族)类型及封装格式来划分VLAN
    • 网络管理员预先配置以太网帧中的协议域和VLAN ID的映射关系表,如果收到的是Untagged帧,就依据该表给数据帧添加指定VLAN的标签,然后数据帧将在指定VLAN中传输
  • 基于策略划分:根据配置的策略划分VLAN,能实现多种组合的划分方式,包括接口、MAC地址、IP地址等
    • 网络管理员预先配置策略,如果收到的是Untagged帧,且匹配配置的策略时,给数据帧添加指定VLAN的标签,然后数据帧将在指定VLAN中传输

基于接口的VLAN划分

划分原则:

将VLAN ID配置到交换机的物理接口上,从某一个物理接口进入交换机的、由终端计算机发送的Untagged数据帧都被划分到该接口的VLAN ID所表明的那个VLAN

特点:

这种划分原则简单而直观,实现容易,是目前实际的网络应用中最为广泛的划分VLAN的方式

当计算机接入交换机的端口发生了变化时,该计算机发送的帧的VLAN归属可能会发生变化

缺省VLAN,PVID (Port VLAN ID)

  • 每个交换机的接口都应该配置一个PVID,到达这个端口的Untagged帧将一律被交换机划分到PVID所指代的VLAN
  • 取值范围:1~4094,默认情况下,PVID的值为1

基于MAC地址的VLAN划分

划分原则:

  • 交换机内部建立并维护了一个MAC地址与VLAN ID的对应表
  • 当交换机接收到计算机发送的Untagged帧时,交换机将分析帧中的源MAC地址,然后查询MAC地址与VLAN ID的对应表,并根据对应关系把这个帧划分到相应的VLAN中

特点:

  • 这种划分实现稍微复杂,但灵活性得到了提高
  • 当计算机接入交换机的端口发生了变化时,该计算机发送的帧的VLAN归属不会发生变化
  • 但这种类型的VLAN划分安全性不是很高,因为恶意计算机很容易伪造MAC地址

以太网二层接口类型

Access接口

**Access接口:**Access接口一般用于和不能识别Tag的用户终端 [如用户主机、服务器等] 相连,或者不需要区分不同VLAN成员时使用

  • Access接口特点:仅允许VLAN ID与接口PVID相同的数据帧通过
  • Access接口接收数据帧:
    • 当Access接口从链路上收到一个Untagged帧,交换机会在这个帧中添加上VID为PVID的Tag,然后对得到的Tagged帧进行转发操作(泛洪、转发、丢弃)
    • 当Access接口从链路上收到一个Tagged帧,交换机会检查这个帧的Tag中的VID是否与PVID相同。如果相同,则对这个Tagged帧进行转发操作;如果不同,则直接丢弃这个Tagged帧
  • Access接口发送数据帧:
    • 当一个Tagged帧从本交换机的其他接口到达一个Access接口后,交换机会检查这个帧的Tag中的VID是否与PVID相同:
      • 如果相同,则将这个Tagged帧的Tag进行剥离,然后将得到的Untagged帧从链路上发送出去
      • 如果不同,则直接丢弃这个Tagged帧

Trunk接口

Trunk接口一般用于连接交换机、路由器、AP以及可同时收发Tagged帧和Untagged帧的语音终端

Trunk接口特点:

  • Trunk接口仅允许VLAN ID在允许通过列表中的数据帧通过
  • Trunk接口可以允许多个VLAN的帧带Tag通过,但只允许一个VLAN的帧从该类接口上发出时不带Tag

Trunk接口接收数据帧:

  • 当Trunk接口从链路上收到一个Untagged帧,交换机会在这个帧中添加上VID为PVID的Tag,然后查看PVID是否在允许通过的VLAN ID列表中
    • 如果在,则对得到的Tagged帧进行转发操作
    • 如果不在,则直接丢弃得到的Tagged帧
  • 当Trunk接口从链路上收到一个Tagged帧,交换机会检查该帧的Tag中的VID是否在允许通过的VLAN ID列表中
    • 如果在,则对这个Tagged帧进行转发操作
    • 如果不在,则直接丢弃这个Tagged帧

Trunk接口发送数据帧:

  • 当一个Tagged帧从本交换机的其他接口到达一个Trunk接口后,如果这个帧的Tag中的VID不在允许通过的VLAN ID列表中,则该Tagged帧会被直接丢弃
  • 当一个Tagged帧从本交换机的其他接口到达一个Trunk接口后,如果这个帧的Tag中的VID在允许通过的VLAN ID列表中,则会比较该Tag中的VID是否与接口的PVID相同:
    • 如果相同,则交换机会对这个Tagged帧的Tag进行剥离,然后将得到的Untagged帧从链路上发送出去
    • 如果不同,则交换机不会对这个Tagged帧的Tag进行剥离,而是直接将它从链路上发送出去

Hybrid接口接口发送与接收

华为设备默认的接口类型是Hybrid

对于Hybrid接口,除了要配置PVID外,还存在两个允许通过的VLAN ID列表,一个是Untagged VLAN ID列表,另一个是Tagged VLAN ID列表,其中VLAN 1默认在Untagged VLAN列表中。这两个允许通过列表中的所有VLAN的帧都是允许通过这个Hybrid接口的

Hybrid接口特点:

  • Hybrid接口仅允许VLAN ID在允许通过列表中的数据帧通过
  • Hybrid接口可以允许多个VLAN的帧带Tag通过,且允许从该类接口发出的帧根据需要配置某些VLAN的帧带Tag、某些VLAN的帧不带Tag
  • 与Trunk最主要的区别就是,能够支持多个VLAN的数据帧,不带标签通过

Hybrid接口接收数据帧:

  • 当Hybrid接口从链路上收到一个Untagged帧,交换机会在这个帧中添加上VID为PVID的Tag,然后查看PVID是否在Untagged或Tagged VLAN ID列表中
    • 如果在,则对得到的Tagged帧进行转发操作
    • 如果不在,则直接丢弃得到的Tagged帧
  • 当Hybrid接口从链路上收到一个Tagged帧,交换机会检查这个帧的Tag中的VID是否在Untagged或Tagged VLAN ID列表中
    • 如果在,则对这个Tagged帧进行转发操作
    • 如果不在,则直接丢弃这个Tagged帧

Hybrid接口发送数据帧:

  • 当一个Tagged帧从本交换机的其他接口到达一个Hybrid接口后,如果这个帧的Tag中的VID既不在Untagged VLAN ID列表中,也不在Tagged VLAN ID列表中,则该Tagged帧会被直接丢弃
  • 当一个Tagged帧从本交换机的其他接口到达一个Hybrid接口后,如果这个帧的Tag中的VID在Untagged VLAN ID列表中,则交换机会对这个Tagged帧的Tag进行剥离,然后将得到的Untagged帧从链路上发送出去
  • 当一个Tagged帧从本交换机的其他接口到达一个Hybrid接口后,如果这个帧的Tag中的VID在Tagged VLAN ID列表中,则交换机不会对这个Tagged帧的Tag进行剥离,而是直接将它从链路上发送出去

二、三层接口对比

二层接口(Layer2 Interface) 三层接口(Layer3 Interface)
二层接口不能配置IP地址 三层接口可以配置IP地址
二层接口不具备MAC地址 三层接口具备MAC地址
当二层接口收到数据帧时,设备在其MAC地址表中查询该帧的目的MAC地址,找到匹配的MAC地址表项后按照该表项的指示转发帧;如果没有找到匹配的MAC地址表项,则将帧进行泛洪 三层接口收到数据帧后,如果数据帧的目的MAC地址与设备的本地MAC地址相同,则将数据帧解除封装,然后在路由表中查询数据包的目的IP地址,找到匹配的路由表项后按照该表项的指示转发包;如果没有找到匹配的表项,则将包丢弃
典型的二层接口如二层交换机的物理接口;大部分三层交换机的物理接口缺省为二层接口。 典型的三层接口如路由器的三层接口。某些三层交换机的物理接口可以切换成三层模式。此外除了物理三层接口,还存在逻辑三层接口或者网络设备上的逻辑子接口
二层接口并不隔离广播域,当二层接口收到广播帧时,会将数据帧进行泛洪 三层接口隔离广播域,当三层接口收到广播帧时,缺省不会进行泛洪,而是直接终结

基于端口划分VLAN的基础配置命令:

1. 创建VLAN:

[Huawei] vlan vlan-id
[Huawei] vlan batch { vlan-id1 [ to vlan-id2 ] } &<1-10>
# vlan-id:指定VLAN ID。整数形式,取值范围是1~4094。
# batch:指定批量创建VLAN。
# vlan-id1 to vlan-id2:指定批量创建的VLAN ID,其中:
# vlan-id1表示第一个VLAN的编号。
# vlan-id2表示最后一个VLAN的编号。vlan-id2的取值必须大于等于vlan-id1,与vlan-id1确定一个VLAN范围
# 如果不指定to vlan-id2参数,则只创建vlan-id1所指定的VLAN
# vlan-id1和vlan-id2是整数形式,取值范围是1~4094

Access接口的基础配置命令:

1. 配置接口类型:

[Huawei-GigabitEthernet0/0/1] port link-type { access | dot1q-tunnel | hybrid | trunk }
- 在接口视图下,配置接口的链路类型

2. 配置Access接口的缺省VLAN:

[Huawei-GigabitEthernet0/0/1] port default vlan vlan-id 
#	命令用来配置接口的缺省VLAN并同时加入这个VLAN

Trunk接口的基础配置命令:

1.配置接口类型:

[Huawei-GigabitEthernet0/0/1] port link-type trunk

2.配置Trunk接口加入指定VLAN:

[Huawei-GigabitEthernet0/0/1] port trunk allow-pass vlan { { vlan-id1 [ to vlan-id2 ] } | all }
#	在接口视图下,配置Trunk类型接口加入的VLAN
参数 参数说明 取值范围
vlan-id1 表示第一个VLAN的编号 取值范围是1~4094
to vlan-id2 最后一个VLAN的编号 在1~40954的基础上取值必须大于等于vlan-id1的取值

3.配置Trunk接口的缺省VLAN

[Huawei-GigabitEthernet0/0/1] port trunk pvid vlan vlan-id
#	在接口视图下,配置Trunk类型接口的缺省VLAN。

Hybrid接口的基础配置命令:

1.配置接口类型:

[Huawei-GigabitEthernet0/0/1] port link-type hybrid	#在接口视图下,配置接口的链路类型为Hybrid

2. 配置Hybrid接口加入指定VLAN:

[Huawei-GigabitEthernet0/0/1] port hybrid untagged vlan {{vlan-id1 [to vlan-id2]} | all}
#	在接口视图下,配置Hybrid类型接口加入的VLAN,这些VLAN的帧以Untagged方式通过接口
[Huawei-GigabitEthernet0/0/1] port hybrid tagged vlan {{vlan-id1 [to vlan-id2]} | all }
#	在接口视图下,配置Hybrid类型接口加入的VLAN,这些VLAN的帧以Tagged方式通过接口
参数 参数说明 取值范围
vlan-id1 vlan-id1表示第一个VLAN的编号 取值范围是1~4094
vlan-id2 to vlan-id2表示最后一个VLAN的编号 vlan-id2的取值必须大于等于vlan-id1的取值
all 指定Hybrid接口所属的所有VLAN

3.配置Hybrid接口的缺省VLAN:

[Huawei-GigabitEthernet0/0/1] port hybrid pvid vlan vlan-id
#	在接口视图下,配置Hybrid类型接口的缺省VLAN

基于MAC地址划分VLAN的配置命令:

1. 关联MAC地址与VLAN:

[Huawei-vlan10] mac-vlan mac-address mac-address [ mac-address-mask | mac-address-mask-length ] [ priority priority ]
参数 参数说明
mac-address 指定与VLAN关联的MAC地址
priority priority 指定MAC地址对应VLAN的802.1p优先级
mac-address-mask 指定MAC地址掩码
mac-address-mask-length 指定MAC地址掩码长度
all 指定与VLAN关联的所有MAC地址

2. 使能MAC地址与VLAN:

[Huawei-GigabitEthernet0/0/1] mac-vlan enable	#通过此命令使能接口的MAC VLAN功能

Vlan间通信方法:

使用路由器物理接口实现Vlan间通信

路由器三层接口作为网关,转发本网段前往其它网段的流量

  • 路由器三层接口无法处理携带VLAN Tag的数据帧,因此交换机上联路由器的接口需配置为Access
  • 路由器的一个物理接口作为一个VLAN的网关,因此存在一个VLAN就需要占用一个路由器物理接口
  • 路由器作为三层转发设备其接口数量较少,方案的可扩展性太差

通过路由器子接口实现Vlan间通信

子接口 [Sub-Interface] 是基于路由器以太网接口所创建的逻辑接口,以物理接口ID+子接口ID进行标识,子接口同物理接口一样可进行三层转发

  • 子接口不同于物理接口,可以终结携带VLAN Tag的数据帧

  • 基于一个物理接口创建多个子接口,将该物理接口对接到交换机的Trunk接口,即可实现使用一个物理接口为多个VLAN提供三层转发服务

1. 创建子接口:

interface interface-type interface-number.sub-interface number	#命令用来创建子接口
  • sub-interface number代表物理接口内的逻辑接口通道
  • 一般情况下,为了方便记忆,子接口ID与所要终结的VLAN ID相同
[R1] interface GigabitEthernet0/0/1.10

2. 配置子接口Dot1q终结的单层VLAN ID:

[R1-GigabitEthernet0/0/1.10] dot1q termination vid vid
# dot1q termination vid命令用来配置子接口Dot1q终结的单层VLAN ID
参数 参数说明 取值
vid 用户报文中的Tag的取值 整数形式,取值范围是1~4063
  • 缺省情况,子接口没有配置dot1q终结的单层VLAN ID。

3. 使能终结子接口的ARP广播功能:

[R1-GigabitEthernet0/0/1.10] arp broadcast enable	#命令用来使能终结子接口的ARP广播功能
  • 缺省情况下,终结子接口没有使能ARP广播功能。终结子接口不能转发广播报文,在收到广播报文后它们直接把该报文丢弃

  • 为了允许终结子接口能转发广播报文,可以通过在子接口上执行此命令。

三层交换机使用VLANIF技术实现VLAN间通信

VLANIF接口是三层逻辑接口,支持VLAN Tag的剥离和添加,因此可以通过VLANIF接口实现VLAN之间的通信

  • VLANIF接口编号与所对应的VLAN ID相同
[SW1] interface vlanif vlan-id  #用来创建VLANIF接口并进入到VLANIF接口视图
  • vlan-id表示与VLANIF接口相关联的VLAN编号
  • VLANIF接口的IP地址作为主机的网关IP地址,和主机的IP地址必须位于同一网段

文章作者: 十二惊惶
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 十二惊惶 !
  目录