目录
Vlan的作用(Vlan工作于OSI参考模型的第二层)
Vlan(Virtual Local Area Network)虚拟局域网,将一个物理的LAN在逻辑上划分为多个广播域,在交换机上实现广播域隔离(增强局域网的安全性、限制广播风暴、简化网络管理)
Vlan实现广播域隔离的原理——Vlan标签又称为tag
Vlan通过将二层数据帧打上Vlan标签(打上Vlan标签也就是封装Vlan),正常情况下,不同Vlan Tag的数据包是无法二层直接互访的,以此来实现广播域的隔离
可以理解为一个Vlan对应一个广播域,同一Vlan内的主机可以二层直接通信,不同Vlan间的主机无法二层直接通信
Vlan生成方式
静态Vlan :交换机上的端口以手动方式分配给Vlan(常用方式)
动态Vlan :配置VMPS服务器,可以根据连接到交换机端口的设备的源MAC地址,动态将端口分配给Vlan(即将MAC地址与Vlan绑定)
语音Vlan :将端口配置到语音模式,可以使端口支持连接到该端口的IP电话
Vlan有两种封装模式,一种是ISL协议(思科私有的协议),一种是802.1Q(业界标准协议)
两者能够执行相同的任务,只是两者的帧格式不一样
ISL 协议成为交换链路内协议,是通过使用ISL协议头和协议尾封装整个第2层的以太帧实现Vlan封装的;正因为此,ISL 被认为是一种能在交换机间传送第2层任何类型的帧或上层协议的独立协议(即 不仅可以为以太网数据帧打Vlan标签,还可以对ATM等数据帧打Vlan标签)
CRC表示循环冗余校算法,FEC表示帧校验序列(存放通过CRC校验得到的值 32位,4字节)
DA:40位的目的地址,该地址是一个多播地址
为0x01-00-0C-00-00或0x03-00-0c-00-00(用于告诉对端此数据包采用ISL格式)?
Type:帧类型,代表被封装的帧的类型
0000 以太网 0001 令牌环 0010 FDDI 0011 ATM User:用户自定义的(默认为0000)
对于以太网数据帧而言,低二位代表数据包的优先级
XX00 一般优先级 XX01 第 1 优先级 XX10 优先级 2 XX11 最高优先级 SA:源地址
是ISL数据包的源地址,应设置为传输帧的交换机端口的 MAC地址(接收设备可能忽略帧的SA字段)
LEN:长度
存储原始数据包的实际大小,不包括DA、TYPE、USER、SA、LEN、FCS字段,总共18字节
所以LEN字段的值+18字节就是数据包的总长度
AAAA03(SNAP):子网访问协议SNAP和逻辑链路控制LLC
AAAA03字段为一个24位的常量值0xAAAA03
HSA:源地址的高位,可以知道交换机设备制造商
24位值,表示SA字段的前3个地址,必须包含值0x00-00-0C(思科私有协议)
Vlan:目标虚拟 LAN ID
数据包的Vlan,用于区分不同Vlan上的帧;是一个15位的值
BPDU:与STP联动
INDX:索引
显示数据包送出交换机时的源端口索引,只用于诊断目的
接收时会忽略
RES:保留用于令牌环和FDDI
IEEE802.1Q协议规定,通过在以太网帧的源目的MAC字段之后、协议类型之前加入4字节的802.1Q Tag实现Vlan封装的
由于以太网数据帧发生了变化,所以设备在进行数据帧发送时会对发送的数据帧重新计算FCS
由于抓包软件的问题,封装顺序不明显;实际的Tag封装在源MAC和Type之间的
Type:标识上层协议类型(0x0800标识上层协议为IPv4)
PRI:表示数据帧的优先级
DEI:标识MAC地址的格式(0表示为规范格式)
VlD:Vlan标识符(0表示没有Vlan标签,但是设置了以太网帧的优先级,一般在QOS中出现)
注意事项
一个端口可以属于多个Vlan,但是只有一个PVID(PVID是华为的叫法,思科的叫法为本帧Vlan)
PVID:端口的Vlan ID号
接口接收报文的方向指的是报文从接口进入交换机的方向
接口发送报文的方向指的是报文从交换机通过接口发送出去的方向
二层Vlan接口可以分为三种接口模式
Access接口:一般用于PC和交换机相连接口
Trunk接口:一般用于交换机之间互联接口、交换机单臂路由场景下与路由器连接的端口
Hybrid接口:根据实际需求使用(一般不用此接口)
注意事项
PC和路由器的物理接口无法接收带标签的数据包
Mac地址表也会有vlan信息(转发时也要看目的MAC和vlan tag的信息)
路由器的虚拟接口(物理子接口)只接收带对应Vlan标签的数据包
在配置时只能配置PVID(华为说法,思科说法为本帧Vlan)
特点:只可以发送一个UnTag的帧
接口接收帧时处理动作
- 接口收到带Tag帧,如果该Tag与PVID一致则允许其进入交换机内部;如果该Tag与PVID不一致则丢弃
- 接口收到带UnTag帧;允许其进入交换机内部,并打上PVID
接口发送帧时处理动作
- 如果要发送的此帧带Tag,并且该Tag与PVID一致时,剥离掉此Tag,并允许此帧从交换机内部通过此接口发送出去;如果该Tag与PVID不一致,则禁止此帧从交换机内部通过此接口发送出去
- 如果要发送的此帧为UnTag,无此情况(进入到二层交换机的帧都带tag,默认tag1)
在配置时可以配置接口所属Vlan(允许通过的Vlan),也可以配置PVID
特点:只允许所属Vlan进入交换机和发出交换机
? ? ? ? ? ?允许多个带Tag的帧从交换机发出,只允许一个Untag的帧从交换机发出
接口接收帧时处理动作
- 接口收到带Tag帧,如果此Tag在接口所属Vlan中则允许其进入交换机内部;如果此Tag不在接口所属Vlan中则丢弃(无论Tag是否与PVID相同,只要此Tag不在允许通过的Vlan中都丢弃)
- 接口收到带UnTag帧,当PVID在接口所属Vlan中时,允许其进入交换机内部,并打上PVID;当PVID不在接口所属Vlan中时则丢弃
接口发送帧时处理动作
- 要发送的此帧带Tag,此Tag不在接口所属Vlan中,则禁止此帧从交换机内部通过此接口发送出去
- 要发送的此帧带Tag,此Tag在接口所属Vlan中,并且该Tag与PVID一致,则剥离此Tag标签,并允许此帧从交换机内部通过此接口发送出去;此Tag在接口所属Vlan中,并且该Tag与PVID不一致,则允许此帧从交换机内部通过此接口发送出去
- 如果要发送的此帧为UnTag,无此情况(进入到二层交换机的帧都带tag,默认tag1)
可以配置PVID,也可以配置接口所属Vlan(包括Untag Vlan ID列表和Tag Vlan ID列表)
特点:只允许所属Vlan进入交换机和发出交换机
? ? ? ? ? ?允许多个带Tag的帧从交换机发出,允许多个Untag的帧从交换机发出
接口接收帧时处理动作
同Trunk接口接收帧时的处理动作,只不过接口所属Vlan范围扩大了,只要在Untag Vlan ID列表或Tag Vlan ID列表中的任意一个都可以
- 接口收到带Tag帧,如果此Tag在接口所属Vlan中;则允许其进入交换机内部
- 接口收到带Tag帧,如果此Tag不在接口所属Vlan中;则丢弃(无论Tag是否与PVID相同,只要此Tag不在允许通过的Vlan中都丢弃)
- 接口收到带UnTag帧,当PVID在接口所属Vlan中时,允许其进入交换机内部,并打上PVID;当PVID不在接口所属Vlan中时则丢弃
接口发送帧时处理动作
- 要发送的此帧带Tag,此Tag不在接口所属Vlan中,则禁止此帧从交换机内部通过此接口发送出去
- 要发送的此帧带Tag,此Tag在接口所属Vlan中,如果是在Untag Vlan ID列表中时,则剥离此Tag标签,并允许此帧从交换机内部通过此接口发送出去
- 要发送的此帧带Tag,此Tag在接口所属Vlan中,如果是在Tag Vlan ID列表中,则允许此帧从交换机内部通过此接口发送出去
- 如果要发送的此帧为UnTag,无此情况(进入到二层交换机的帧都带tag,默认tag1)
一般来说,不同的Vlan为不同的网段,如果为不同网段不同Vlan下的通信,实现方式有以下三种
1、在交换机上配置三层Vlan接口(也就是Vlanif接口--是一个虚拟接口,与Vlan对应)
2、通过单臂路由实现,交换机只需要为二层交换机(通过在路由器上的某个物理接口创建多个虚拟的子接口,每个子接口都有对应的Vlan编号,该接口只能接受对应Vlan编号的数据)
3、为每一个Vlan使用一根网线来完成通信(不推荐)
如果不同的Vlan为相同网段,可以通过修改二层端口的接口类型来实现互通