以前写的文章,在简书发布一下吧。by alittlemc
[摘 要] VLAN技术是日常最常用的网络技术之。这种技术可以把一个LAN划分成多个逻辑的VLAN,每个VLAN是一个广播域,VLAN内的主机间通信就和在一个LAN内一样,而VLAN间则不能直接互通,广播报文就被限制在一个VLAN内。其可以实现限制广播域、增强局域网的安全性、提高了网络的健壮性、灵活构建虚拟工作组等特点。
[关键词] 网络工程;VLAN
VLAN技术
VLAN概述
VLAN(Virtual LAN)是一种虚拟局域网技术,它通过逻辑方式而不是物理方式对网络进行分割,将一个物理局域网在数据链路层上划分成多个虚拟的、逻辑上隔离的子网。每个VLAN形成一个独立的广播域,在不通过网络层转发的情况下,即使位于同一物理局域网内的两个VLAN也不能直接通信。
VLAN技术是基于交换机或路由器端口的,它可以将同一交换机或路由器中的端口划分到不同的VLAN中。可实现在物理局域网上运营多个逻辑上独立的虚拟局域网,并且提高了网络的安全性、可管理性和灵活性。
VLAN优势
通过VLAN技术,管理员可以根据具体需求,通过交换机物理端口、MAC地址、子网、协议划分、ACL策略等方式将终端设备划分到不同的VLAN中,实现针对不同群体的流量隔离和安全控制,从而降低了网络故障和攻击的风险。同时,VLAN技术还可以减少冗余的广播和多播数据流,即减小数据链路层广播域,同时节约交换机性能,抑制广播风暴,提高网络带宽的利用率。
VLAN相关知识
VLAN ID
VLAN ID是标识不同VLAN的唯一数字,其取值范围通常为1到4094。其中,VLAN ID 1是默认VLAN,默认情况下所有未配置为特定VLAN的接口都处于该VLAN中。
端口类型
常用的包括Access端口、Trunk端口和Hybrid端口三种工作模式,用于定义交换机端口的功能和特性。
VLAN主接口
在一个交换机上,每个VLAN只有一个VLAN主接口,即可以使该接口承载该VLAN所有数据流量。通常情况下,该接口的属性会影响整个VLAN的配置。
VLANIF虚拟接口
VLAN IF(Virtual Local Area Network Interface)是一种基于VLAN配置的虚拟出来的网络层接口,可以设置IP地址、掩码等,每一个VLAN都有且唯一与之对应的VLAN IF,其主要用作为VLAN网关,通过网络层的方式实现VLAN之间通信。
VLAN底层原理
以太网帧
通常来说,以太网帧可以分为UNTAG和TAG两种。UNTAG帧即终端设备可以识别的普通以太网帧。TAG帧则以IEEE 802.1Q标准,在以太网帧的基础上在源MAC地址(SA)和帧负载(Frame Load)之间添加一段4Byte的TAG字段。
表1 两种以太网帧
以太网帧 | 特点 |
---|---|
UNTAG帧(标准以太网帧) | 标准的以太网帧,主要用于终端设备通信 |
TAG帧(802.1Q帧) | 在以太网帧的基础上添加TAG字段,主要在网络设备之间通信 |
其中TAG帧的结构如图 1所示。TAG字段中最关键的内容是VLAN ID和CFI字段,通常所说VLAN多少,即为帧中的VLAN ID多少。
VLAN ID占用12bit,可以标记4096个ID,去除全0和全1的情况,所以VLAN范围为1-4094。
CFI占用1bit,用于区分不同的局域网标准,0代表以太网,1代表令牌环网(Token Ring)。
网络设备的处理
在VLAN技术中,通过能处理VALN的网络设备(如网管型交换机、支持划分VLAN的路由器、部分支持VLAN TAG终端等)对以太网帧中TAG字段的内容,依据指定的端口规则(如Access、Trunk、Hybrid)进行选择性的转发、丢弃、剔除或添加TAG,从而实现物理网络的逻辑隔离。
一般情况下,终端设备不识别TAG帧,需要交换机设备得支持下才可以正常使用网络。但是,凡事无例外,部分路由器、终端设备支持处理VLAN,傻瓜式交换机也是无法处理TAG帧,但是为了方便描述以下均能处理VALN的网络设备称之为二层网络设备。
PVID概念
PVID(Port Default VLAN ID)指的是端口缺省VLAN(端口默认VLAN ID),在实际上配置中,实际上是给端口配置PVID,PVID可以理解为个二层网络设备端口的一个参数,在处理以太网帧时使用。
ACCESS工作模式
ACCESS端口用于二层网络设备连接终端设备,在配置二层网络设备时,只需要配置PVID,用于生成VLAN ID为TAG的,不涉及ALLOWED LIST和TAG LIST、UNTAG LIST。
表2 ACCESS工作模式
对象\规则 | 接收规则 | 发送规则 |
---|---|---|
TAG帧 | 对比帧中VLAN ID与PVID是否相同,相同则接收,不相同则丢弃(部分傻瓜式交换机直接接收) | 将帧中TAG字段剔除后发送 |
UNTAG帧 | 将打上端口PVID后接收 | 不存在此情况 |
TRUNK工作模式
TRUNK端口用于二层网络设备之间的级联。在二层网络设备中,TRUNK端口可以设置多个允许通过的VLAN ID或范围,存放为ALLOW-PASS LIST。
表3 TRUNK工作模式
对象\规则 | 接收规则 | 发送规则 |
---|---|---|
TAG帧 | 对比帧中VLAN ID是否包含在ALLOW-PASS LIST中,包含VLAN ID为允许,则接收,不包含则丢弃 | 对比帧中VLAN ID与PVID是否相同,相同则剔除TAG字段发送,不相同直接发送 |
UNTAG帧 | 将打上端口PVID后接收 | 不存在此情况 |
HYBRID工作模式
HYBRID端口为华为设备私有的工作模式,且华为的二层网络设备就默认使用此模式。思科、锐捷等其他非华为设备不支持,不过可以进行类似的配置而实现部分功能,。HYBRID端口是一个创新的模式,HYBRID兼容了ACCESS和TRUNK的特点,接在二层网络设备和终端设备均可使用,其中收的操作是和TRUNK的接收操作是相同的,只不过HYBRID端口将TRUNK端口定义的允许通过列表ALLOW-PASS LIST称之为TAG LIST。而发送规则会有判断能否通过的两种情况,一种是允许通过的VLAN ID或范围,存放为TAGGED LIST,反之为不允许通过的VLAN ID或范围UNTAGGED LIST。
表4 HYBRID工作模式
对象\规则 | 接收规则 | 发送规则 |
---|---|---|
TAG帧 | 对比帧中VLAN ID是否包含在ALLOW-PASS LIST中,包含VLAN ID为允许,则接收,不包含则丢弃 | 对比帧中的VLAN ID,属于TAG LIST,直接发送;属于UNTAG LIST中则剔除TAG字段发送 |
UNTAG帧 | 将打上端口PVID后接收 | 不存在此情况 |
HYBRID和TRUNK模式从原理上很相似,在接收时一致。在发送时,因为TRUNK中PVID只有一个,HYBRID允许UNTAGGED LIST中多个VLAN ID帧直接剔除TAG发送,而TRUNK只会对和PVID相同的VLAN ID帧剔除TAG字段发送。
VLAN 配置
VLAN基础命令
创建VLAN
创建VLAN时的命令,可批量的创建连续或者不连续的,比如创建10、20、30、31、32、33、34、35。
华为类设备的配置如下:
vlan batch 10 20 30 to 35
思科类设备的配置如下:
vlan 10,20,30-35
三种端口配置模式
ACCESS模式
华为类设备的配置如下:
interface GigabitEthernet 0/0/1
port link-type access
port default vlan 10
思科类设备的配置如下:
interface GigabitEthernet 0/1
switchport mode access
switchport access vlan 10
TRUNK模式
华为类设备的配置如下:
interface GigabitEthernet 0/0/2
port link-type trunk
port trunk allow-pass vlan 10 to 20
# port trunk allow-pass vlan all
port default vlan 10
思科类设备的配置如下:
interface GigabitEthernet 0/2
switchport mode trunk
switchport trunk allowed vlan 10-20
# switchport trunk allowed vlan all
HYBRID模式
华为类设备的配置如下:
interface GigabitEthernet 0/0/3
port hybrid pvid vlan 10
port hybrid tagged vlan 20 30
#允许带vlan20 30的tag直接通过,对应trunk模式
port hybrid untagged vlan 10 100 200
#发送时将vlan10 100 200的tag字段剔除,对应access模式
思科类设备的配置如下:不过主要,思科类设备的native字段只能设置一个,所以不能像华为类设备中UNTAG LIST可以设置多个剔除。
interface GigabitEthernet 0/3
switchport mode trunk
switchport trunk native vlan 10
switchport trunk allowed vlan 10-20
VLAN IF配置
VLAN IF配置
VLAN IF配置也很简单,在创建VLAN后可以直接使用Interface 命令进入设置,思科设备需要需要开启三层路由功能。
华为类设备的配置如下:
interface vlanif 1
思科类设备的配置如下:
ip routing
interface vlan 1
同VLAN不同网段之间
同VLAN下不同网段之间路由是经常需要的问题,比如一期项目使用了10.10.10.0/24网段、二期使用10.10.20.0/24网段。
华为类设备的配置如下:
vlan 10
port-group group-member GigabitEthernet 0/0/1 to GigabitEthernet 0/0/3
port link-type access
port default vlan 10
interface vlanif 1
ip address 10.10.10.254 24
ip adderss 10.10.20.254 24 sub
ip adderss 10.10.31.254 22 sub
思科类设备的配置如下:
vlan 10
interface range GigabitEthernet 0/0/1-3
switchport mode access
switchport access vlan 10
interface vlan 10
ip address 10.10.10.254 24
ip adderss 10.10.20.254 24 secondary
ip adderss 10.10.31.254 22 secondary
不同VLAN不同网段之间
与同VLAN不同网段之间通信类似,区别在每个VLAN需要各设置VLANIF。
华为类设备的配置如下:
vlan batch 10 20
interface Vlanif10
ip address 10.10.10.254 255.255.255.0
ip address 10.10.31.254 255.255.252.0 sub
interface Vlanif20
ip address 10.10.20.254 255.255.255.0
interface GigabitEthernet0/0/1
port link-type access
port default vlan 10
interface GigabitEthernet0/0/2
port link-type access
port default vlan 20
interface GigabitEthernet0/0/3
port link-type access
port default vlan 10
思科类设备的配置如下:
vlan 10 20
interface Vlanif10
ip address 10.10.10.254 255.255.255.0
ip address 10.10.31.254 255.255.252.0 secondary
interface Vlanif20
ip address 10.10.20.254 255.255.255.0
interface GigabitEthernet0/0/1
switchport mode access
switchport access vlan 10
interface GigabitEthernet0/0/2
switchport mode access
switchport access vlan 20
interface GigabitEthernet0/0/3
switchport mode access
switchport access vlan 10
拓展阅读
注意,拓展阅读均来源与网络,不为笔者所著,原贴请见参考文献[1][2]项。
VLAN与子网
通过将IP地址的网络部分进一步划分为若干个子网,可以解决IP地址空间利用率低和两级IP地址不够灵活的问题。
与VLAN相类似的是,子网也可以隔离主机间的通信。属于不同VLAN的主机之间不能直接通信,属于不同的子网的主机之间也不能直接通信。但二者没有必然的对应关系。
表5 VLAN与子网差异
VLAN | 子网 | |
---|---|---|
区别 | 用于划分二层网络 | 用于划分三层网络 |
在配置VLANIF接口的基础上实现路由互通后,属于不同VLAN的用户才能互访 | 只要通过路由实现网络互通,属于不同子网的用户就能互访 | |
可划分4094个VLAN,VLAN内的设备数量不受限制 | 划分的网段数量会影响各个子网内的设备最大数 | |
联系 | 同一VLAN内,可以划分一或多个网段 | 同一子网内,可以划分一或多个VLAN |
QinQ
QinQ(802.1Q in 802.1Q)也被称之为VLAN Stacking或Double VLAN。(详细见https://info.support.huawei.com/info-finder/encyclopedia/zh/QinQ.html)
在标准以太网帧的基础上,802.1Q帧定义了4Byte用于存放Tag,其中VLAN ID占用12bit,即VLAN ID的范围1到4064。但是某些情况下一个需要大量的VLAN就可能不够用,QinQ在以太网帧中插入了两段tag信息,即可以实现存储4064x4064个。
参考文献:
- 华为IP知识百科-VLAN[EB/OL].[2023-05-22](https://info.support.huawei.com/info-finder/encyclopedia/zh/VLAN.html).
- 华为IP知识百科-QinQ[EB/OL].[2023-05-22](https://info.support.huawei.com/info-finder/encyclopedia/zh/QinQ.html).