一、VLAN协议
1、协议的应用
802.1Q协议,即Virtual Bridged Local Area Networks协议,主要规定了VLAN的实现。
2、协议结构
每一个支持802.1Q协议的主机,在发送数据包时,都在原来的以太网桢头中的源地址后增加了一个4字节的802.1Q桢头(TPID+TCI),之后接原来以太网的长度或类型域。
- TPID:值为8100,当Ethernet包头中的EtherType的值也为8100时,判断出下层协议也为VLAN(0x8100)
- User Priority:定义用户优先级,包括8个优先级别。主要用于当交换机阻塞时,优先发送哪个数据包。
- CFI:以太网交换机中,规范格式指示器总被设置为0。由于兼容特性,CFI 常用于以太网类网络和令牌环类网络之间,如果在以太网端口接收的帧具有 CFI,那么设置为1,表示该帧不进行转发,这是因为以太网端口是一个无标签端口。
- VLAN ID:这是一个12位的域,指明VLAN的ID,一共4096个(在4096可能的 VID 中,VID=0 用于识别帧优先级。 4095(FFF)作为预留值,所以 VLAN配置的最大可能值为4094),每个支持802.1Q协议的主机发送出来的数据包都会包含这个域,以指明自己属于哪一个VLAN。
二、VLAN交换机端口的三种链路类型
1、以太网端口有三种链路类型:access、trunk、hybird
- Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口
- Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口
- Hybrid类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机
Hybrid端口和Trunk端口在接收数据时,处理方法是一样的,唯一不同之处在于发送数据时:Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。
2、缺省VLAN
Access端口只属于1个VLAN,所以它的缺省VLAN就是它所在的VLAN,不用设置;Hybrid端口和Trunk端口属于多个VLAN,所以需要设置缺省VLAN ID.缺省情况下,Hybrid端口和Trunk端口的缺省VLAN为VLAN 1;如果设置了端口的缺省VLAN ID,当端口接收到不带VLAN Tag的报文后,则将报文转发到属于缺省VLAN的端口;当端口发送带有VLAN Tag的报文时,如果该报文的VLAN ID与端口缺省的VLAN ID相同,则系统将去掉报文的VLAN Tag,然后再发送该报文。
注:对于华为交换机缺省VLAN被称为“Pvid Vlan”, 对于思科交换机缺省VLAN被称为“Native Vlan”
3、交换机接口出入数据处理过程
1)Acess端口收报文:收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则直接丢弃(缺省)
2)Acess端口发报文:将报文的VLAN信息剥离,直接发送出去
3)trunk端口收报文:收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有判断该trunk端口是否允许该VLAN的数据进入:如果可以则转发,否则丢弃
4)trunk端口发报文:比较端口的PVID和将要发送报文的VLAN信息,如果两者相等则剥离VLAN信息,再发送,如果不相等则直接发送
5)hybrid端口收报文:收到一个报文,判断是否有VLAN信息,如果没有则打上端口的PVID,并进行交换转发,如果有则判断该hybrid端口是否允许该VLAN的数据进入;如果可以则转发,否则丢弃(此时端口上的untag配置是不用考虑的,untag配置只对发送报文时起作用)
6)hybrid端口发报文:1.判断该VLAN在本端口的属性(disp interface 即可看到该端口对哪些VLAN是untag, 哪些VLAN是tag);2.如果是untag则剥离VLAN信息,再发送,如果是tag则直接发送
注:在同一个三层交换机(或路由器)上建立几个VLAN,默认情况下,这些VLAN是互通的,如果不想让它通,必须要做ACL进行限制。
1. 在旧版的思科交换机上,必须要先运行ip routing,开启路由功能,然后在这个交换机上所有的VLAN间是可能互访的,这种路由叫直连路由!
2. 在新版的思科交换机上,默认就是开启路由功能的,只要正确配置了interface vlan 的IP(即SVI)地址就可以。
3. 在华为等一些厂家的设备也是默认开启的。如果想让他们不能互相访问,反而需要做ACL限制互访,和开放特定的访问。
vlan协议及端口类型