Vlan 详解


一.作用

将同一网段的物理网络分隔为多个逻辑网络,限制广播泛洪范围


二.实现机制

1.交换机端口类型

  访问链接(Access link)接口

只属于一个vlan,且仅向该vlan转发数据帧的端口。

接收数据:接收到报文时,如果有带有vlan tag,判断该tag与接收端口的pvid是否相同,相同则进入 vlan.不相同则直接丢弃。不tag的报文直接打上tag,进入交换机。

发送数据:带有vlan tag的报文,去掉报文vlan tag信息发送。不带vlan tag的情况不可能出现。


访问链接实现方式:

静态vlan:基于端口的vlan,指定相应端口属于哪个Vlan

动态vlan: 根据每个端口所连的客户端改变端口所属的vlan

基于mac的vlan(MAC based vlan):通过查询并记录客户端mac地址来确定端口所属vlan

基于子网的vlan(Subnet based vlan):通过查询客户端的IP来确定端口所属vlan

基于用户的vlan(User based vlan): 通过查询客户端登录的用户账户来确定端口所属vlan

  汇聚链接(trunk link) 接口

能够转发多个不同vlan数据帧的端口。

接收数据:接收到报文时,如果带有vlan tag则直接进入交换机,如果不带vlan tag则打上缺省vlan tag(native vlan),后进入交换机。

发送数据:带有vlan tag的报文判断是否与该端口的pvid相同,如果相同则去掉tag后发送,如果不同且该 接口允许该vlan pvid通过时,直接发送。不带vlan tag的情况不可能出

汇聚方式

  a.802.1q 经过IEEE认证的对数据帧添加vlan识别信息的协议

 在数据帧的源mac与类型之间添加4Bytes的vlan标识,具体内容为2字节的TPID(Tag Protocol IDentifier)和2字节的TCI(Tag Control Information),并重新生成CRC校验码,原CRC校验码删除.

 TPID字段在以太网报文中所处位置与不带VLAN Tag的报文中协议类型字段所处位置相同。TPID的值固定为0x8100,它标示网络帧承载的802.1Q类型,交换机通过它来确定数据帧内附加了基于IEEE 802.1Q的VLAN信息。而实质上的VLAN ID,是TCI中的12位元。由于总共有12位,因此最多可供识别4096个VLAN。


wKioL1jLsvXziU4pAABEDusOzWA147.jpg


  b.ISL,是Cisco产品私有的一种与IEEE 802.1Q类似的、用于在汇聚链路上附加VLAN信息的协议。

 ISL协议使用ISL包头(ISL Header)与重新计算的CRC校验码将原数据帧封装起来,因此也被称为封装型vlan。使用ISL后数据帧问部会新增26字节的ISL包头,数据帧尾部新增将ISL包头与原数据帧一起计算的4字节CRC校验码,原CRC校验码保留在源数据帧中。


wKiom1jLsyHTk8TEAABMiyNINPY891.jpg


三.vlan通信

  1.同一vlan内部通信

下图交换机中1口和4口属于同一vlan, pcA发送arp请求pcB的MAC地址,数据帧在交换机1口打上vlan2的标签,并且在vlan2内转发arp广播,数据帧拆掉vlan2标签,通过4口找到B的mac地址为B,并将与pcA和pcB相连的端口、MAC地址、所属vlan关联起来存放在交换机MAC地址列表中。

wKioL1jLtDbRCCwEAABXsRkNYUA799.jpg


  2.不同vlan之间通信

下图交换机中1口和4口属于vlan2和vlan3, 12口为trunk接口。pcA用目的IP与自己子网掩码匹配,确认与pcB不在同一网段。pcA发送arp请求routerC的MAC地址.交换机1口接收到arp后将数据帧打上vlan2标签,并将arp转发到vlan2所有接口和trunk口,通过trunk口获取routerC的MAC地址(路由器可以拆分vlan tag)。routerC检查路由表发现目的IP属于vlan3所在网段,将数据信息重新封装打上vlan3标签信息后,通过trunk口发送arp到vlan3网段查询,交换机12口转发arp到vlan3中所有接口,4口拆掉数据帧vlan标签发给pcB,通过与数据报文中目的IP比较找到B的mac地址为B,并将与pcA和pcB相连的端口、MAC地址、所属vlan关联起来存放在交换机MAC地址列表中。


注:此时路由器需要与两个vlan通信,必需配置单臂路由承载多vlan通信。(或使用多个接口与交换机相应vlan接口相连)


wKioL1jLtJPSEJhPAABzmuGb8Jw862.jpg


  3.三层交换机vlan通信

三层交换机在交换模块的基础上增加了路由模块,同一Vlan通信时只使用交换模块。不同vlan通信时,和使用汇聚链路连接路由器与交换机时的情形相同。

为了加快vlan的数据交换速度,三层交换机中使用被称为ASIC(ApplicationSpecified Integrated Circuit)的专用硬件芯片处理数据帧的交换操作,在很多机型上都能实现以缆线速度(Wired Speed)交换。

对于大量相同目的地址的数据传送,三层交换机提供一次路由、后续交换(CEF)的交换方式。即第一次传输数据通过路由条目找到目的主机后,构建一个高速交换缓存,后续数据通过高速缓存中转发端口号直接转发给目标所连接的端口。这样一来,就不需要再一次次经由内部路由模块中继,而仅凭交换机内部的缓存信息就足以判断应该转发的端口。交换机会对数据帧进行由路由器中继时相似的处理,例如改写MAC地址、IP包头中的TTL和Check Sum校验码信息等。

    高速缓存存储信息包括:

(1)目标IP地址

(2)源IP地址

(3)目标TCP/UDP端口号

(4)源TCP/UDP端口号

(5)接收端口号(交换机)

(6)转发端口号(交换机)

(7)转发目标MAC地址


wKioL1jLtO3SCmftAADDanuVFlE881.jpg