VLAN
1. 简介
- 虚拟局域网(Virtual Local Area Network,VLAN),是将局域网从逻辑上划分为一个个网段,从而实现虚拟工作组的一种交换技术。
- 每个网段内所有主机间的通讯和广播仅限于该VLAN内,广播帧不会被转发到其他网段,VLAN间不能进行直接通信,从而实现了对广播域的分割和隔离。
1.1. VLAN产生背景
- 网桥、集线器或交换机构成的整个物理局域网同属于一个广播域,任何一个广播帧或多播帧都将被光波导整个局域网的每一台主机
- 在网络通讯中,广播信息是普遍存在的,这些广播帧将占用大量网络带宽,导致网络速度和通讯效率下降,增加网络主机处理广播信息的负荷
- 蠕虫病毒泛滥,为防止网络阻塞和瘫痪,需要进行有效的广播域隔离
1.2. VLAN作用
- 限制广播域:广播域被限制在一个VLAN内,节省了带宽,提高了网络处理能力。
- 增强局域网的安全性:不同VLAN内的报文在传输时是相互隔离的,即一个VLAN内的用户不能和其它VLAN内的用户直接通信。
- 提高网络的健壮性:故障被限制在一个VLAN内,本VLAN内的故障不会影响其他VLAN的正常工作。
- 灵活构建虚拟工作组:用VLAN可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。
2. 静态VLAN与动态VLAN
2.1. 静态VLAN
明确指定个端口所属VLAN的设定方法,也称为基于端口的VLAN。
特点:是将交换机按端口进行分组,每组定义一个VLAN,属于同一个VLAN的端口,可来自一台或多台交换机(即可跨多台交换机设置VLAN)。
2.2. 动态VLAN
根据每个端口所连的计算机,动态设置端口所属VLAN的设定方法。
划分依据 | 说明 | 优点 | 缺点 |
---|---|---|---|
基于端口 | 根据以太网交换机的端口来划分 | 定义VLAN成员时非常简单(只要将所有的端口都指定一下就可以了) | 如果VLAN A的用户离开了原来的端口,到了一个新的交换机的某个端口,那么就必须重新定义。 |
基于MAC地址 | 根据端口所连计算机的网卡MAC地址,决定该端口所属的VLAN。 eg.MAC地址为”00-0C-6E-E1-1B-36”的计算机被设置为属于VLAN2,则该计算机连接的交换机端口会被自动划归为VLAN2。 |
当用户物理位置移动时,即从一个交换机换到其他的交换机时,VLAN不用重新配置,可以认为这种根据MAC地址的划分方法是基于用户的VLAN | 初始化时,所有的用户都必须进行配置,若用户数量较大则配置量非常大。 此外这种划分的方法也导致了交换机执行效率的降低,因为在每一个交换机的端口都可能存在很多个VLAN组的成员,这样就无法限制广播包了。 |
基于子网 | 根据每个主机的网络层地址划分的。虽然这种划分方法是根据网络地址,比如IP地址,但它不是路由,与网络层的路由毫无关系 | 用户的物理位置改变了,不需要重新配置所属的VLAN。 此外无需附加的帧标签来识别VLAN,可减少网络的通信量 |
效率低,因为检查每一个数据包的网络层地址是需要消耗处理时间的,一般的交换机芯片都可以自动检查网络上数据包的以太网帧头,但要让芯片能检查IP帧头,需要更高的技术,同时更费时 |
基于协议 | 根据报文的协议类型和封装格式进行VLAN的划分。 如:IP、IPX、AppleTalk协议族;Ethernet II,802.3,802.3/802.2 LLC, 802.3/802.2 SNAP等封装格式 |
一个交换机换到其他的交换机时,VLAN不用重新配置 | 初始化时,所有的用户都必须进行配置,配置量大、执行效率低、无法限制广播包 |
2.3. 动静态VLAN对比
静态VLAN | 动态VLAN | |
---|---|---|
划分方式 | 基于端口 | 基于MAC地址、子网、用户 |
特点 | 需人为设定,需设定的端口数目较多,工作量大 | 自动设定,灵活,省事 |
3. 802.1Q VLAN帧格式
3.1. 传统以太网帧格式
目的MAC地址 | 源MAC地址 | 长度或类型 | 数据 | FCS | |
---|---|---|---|---|---|
区段大小(bytes)) | 6 | 6 | 2 | 46~1500 | 4 |
3.2. 802.1Q帧格式
目的MAC地址 | 源MAC地址 | 802.1Q Tag | 长度或类型 | 数据 | FCS | |
---|---|---|---|---|---|---|
区段大小(bytes)) | 6 | 6 | 4 | 2 | 46~1500 | 4 |
其中802.1Q Tag中又细分了TPID、PRI、CFI和VID4个字段,四个字段说明如下:
字段 | 长度(bits) | 名称 | 说明 |
---|---|---|---|
TPID | 16 | Tag Protocol ID,表示这个帧是否带标签 | 如果该值取0x8100,则表示这个帧是带Tag的帧,相反表示其是传统不带Tag标签的帧; 该帧与传统的以太网帧中该位置的Type/Length字段兼容 |
PRI | 3 | Priority,表示帧的优先级 | 取值范围为0~7,值越大优先级越高,在交换机阻塞时,优先发送优先级较高的帧 |
CFI | 1 | 标准格式指示位 | - |
VID | 12 | VLAN Identifier,表示该帧所属的VLAN | VLAN的有效取值范围为1~4094(0和4095为保留取值) |
4. VLAN间的通信
可使用路由器或三层交换机为VLAN设置路由,在三层交换机中划分VLAN,以支持VLAN间的相互通讯。
4.1. 同VLAN内主机的跨域通讯
- 在交换机端口各拿num(VLAN)个端口级联,专门用于对应VLAN的主机跨交换机通讯
- 让交换机间的互联链路汇集到一条链路上(汇聚链路、主干链路),该链路的端口被称为汇聚连接端口,该链路允许各VLAN的通讯流过
4.2. 不同接口类型下的VLAN间通信流程
交换机上的端口分为三种一种是接入层端口直连设备的,叫做Access;一种是交换机和交换机之间的端口负责汇聚的叫做Trunk,还有一种是Access与Trunk混合的模式,叫做Hybrid。
接口类型 | 不带Tag报文处理 | 带Tag报文处理 | 发送帧处理流程 |
---|---|---|---|
Access接口 | 接收该报文,并打上缺省的VLAN ID | 当VLAN ID与缺省VLAN ID相同(合法)时,接收该报文; 不合法时丢弃该报文 |
先剥离帧的PVID Tag,然后再发送 |
Trunk接口 | 打上缺省的VLAN ID,当缺省VLAN ID在允许通过的VLAN ID列表里(合法)时,接收该报文; 不合法时丢弃该报文 |
当VLAN ID在接口允许通过的VLAN ID列表里(合法)时,接收该报文; 不合法时丢弃该报文 |
若不是接口允许通过的VLAN ID时,则丢弃该报文。 当VLAN ID与缺省VLAN ID相同(合法)时,去掉Tag,发送该报文。 不合法时保持原有Tag,发送该报文 |
Hybrid接口 | 打上缺省的VLAN ID,当缺省VLAN ID在允许通过的VLAN ID列表里(合法)时,接收该报文。 不合法时丢弃该报文 |
当VLAN ID在接口允许通过的VLAN ID列表里(合法)时,接收该报文; 不合法时丢弃该报文 |
当VLAN ID是该接口允许通过的VLAN ID时,发送该报文。 可以通过命令设置发送时是否携带Tag |
4.3. Tag/Untag报文的处理原则
背景:在交换机内部,为快速高效的处理,报文都是带tag转发的。(交换机上很多会配置多个VLAN,不同VLAN的流量仅能靠tag标签区分)
4.3.1. 报文进入switch时
在接收报文时,交换机的主要职责是——根据tag/untag属性和端口属性决定是否允许该报文进入该端口:
- 报文属性为untag:允许报文进入该端口,并打上PVID的VLAN tag(与端口属性无关)
- 报文属性为tag,且此交换机端口为Access端口:若端口允许该报文tag标明的VLAN通过,接收并处理报文;若不允许则丢弃报文
- 报文属性为tag,且此交换机端口为Trunk/Hybrid端口:若端口允许该报文tag标明的VLAN通过,接收并处理报文;若不允许则丢弃报文
4.3.2. 报文出switch时
在转发报文时,主要职责是——根据出端口属性决定是否携带tag转发报文:
- 出端口为Access端口:不带tag转发(将标签剥离)
- 出端口为Trunk端口:若报文所在的VLAN和PVID相同,则报文不带tag转发;否则带tag转发
- 出端口为Hybrid端口:根据报文所在的VLAN配置是/否为tag,决定是/否带tag转发
相关文章