vlan通信原理

vlan通信原理
TheStoneFishvlan通信原理
一、vlan的作用
vlan(Virtual Local Area Network)是将一个物理的局域网在逻辑上划分成多个广播域的技术, 实现同一个个vlan的用户可以进行二层互访, 而不同vlan间的用户被二层隔离, 这样既可以隔离广播域, 又能提高网络的安全性。
作用 | 说明 | 应用场景 |
---|---|---|
网络隔离 | 将一个物理网络划分为多个逻辑网络,VLAN之间的流量相互隔离,增强网络的逻辑划分能力。 | 不同部门(如财务部、研发部、市场部)划分为不同VLAN,保证数据隔离。 |
减少广播风暴 | 限制广播域范围,减少广播流量在整个网络中的传播,提升网络性能。 | 在大型企业网络中,避免广播流量占用过多带宽,造成网络拥塞。 |
提高网络安全性 | VLAN之间通信需要路由器或三层交换机,便于对跨VLAN通信实施访问控制,防止未经授权的访问。 | 将访客网络和公司内网分配到不同VLAN,限制访客访问公司内部敏感数据。 |
简化网络管理 | 根据功能、位置或用户组划分网络,无需物理更改网络拓扑即可实现逻辑隔离和重新配置。 | 动态调整不同VLAN的配置,例如新增设备时,只需划分到相应的VLAN。 |
支持灵活扩展 | VLAN允许在不同交换机间跨越物理边界进行组网,方便网络的扩展和设备的灵活部署。 | 将多个楼层或办公区域划分为一个VLAN,方便管理和统一配置。 |
优化网络性能 | 减少广播域大小的同时,优化了数据流量的分发路径,从而提升网络整体性能和带宽利用率。 | 数据中心中,将高带宽流量和普通流量分配到不同的VLAN以优化资源利用。 |
二、vlan通信原理
1、vlan帧格式
字段 | 长度 | 含义 | 取值 |
---|---|---|---|
TPID | 2Byte | Tag Protocol Identifier(标签协议标识符),表示数据帧类型。 | 取值为0x8100时表示IEEE 802.1Q的VLAN数据帧。如果不支持802.1Q的设备收到这样的帧,会将其丢弃。各设备厂商可以自定义该字段的值。当邻居设备将TPID值配置为非0x8100时, 为了能够识别这样的报文,实现互通,必须在本设备上修改TPID值,确保和邻居设备的TPID值配置一致。 |
PRI | 3bit | Priority,表示数据帧的802.1p优先级。 | 取值范围为0~7,值越大优先级越高。当网络阻塞时,交换机优先发送优先级高的数据帧。 |
CFI | 1bit | Canonical Format Indicator(标准格式指示位),表示MAC地址在不同的传输介质中是否以标准格式进行封装,用于兼容以太网和令牌环网。 | CFI取值为0表示MAC地址以标准格式进行封装,为1表示以非标准格式封装。在以太网中,CFI的值为0。 |
VID | 12bit | VLAN ID,表示该数据帧所属VLAN的编号。 | VLAN ID取值范围是0~4095。由于0和4095为协议保留取值,所以VLAN ID的有效取值范围是1~4094。 |
2、接口类型对vlan的处理
pvid(port vlan id):端口pvid在没有配置的情况下默认为1
接口类型 | 对接收不带Tag的报文处理 | 对接收带Tag的报文处理 | 发送帧处理过程 |
---|---|---|---|
Access接口 | 接收该报文,并打上缺省的VLAN ID。 | 当VLAN ID与缺省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列表里时,接收该报文。当VLAN ID不在接口允许通过的VLAN ID列表里时,丢弃该报文。 | 当VLAN ID与缺省VLAN ID相同,且是该接口允许通过的VLAN ID时,去掉Tag,发送该报文。当VLAN ID与缺省VLAN ID不同,且是该接口允许通过的VLAN ID时,保持原有Tag,发送该报文。 |
Hybrid接口 | 打上缺省的VLAN ID,当缺省VLAN ID在允许通过的VLAN ID列表里时,接收该报文。打上缺省的VLAN ID,当缺省VLAN ID不在允许通过的VLAN ID列表里时,丢弃该报文。 | 当VLAN ID在接口允许通过的VLAN ID列表里时,接收该报文。当VLAN ID不在接口允许通过的VLAN ID列表里时,丢弃该报文。 | 当VLAN ID是该接口允许通过的VLAN ID时,发送该报文。可以通过命令设置发送时是否携带Tag。 |
QinQ接口 | QinQ接口是使用QinQ协议的接口。QinQ接口可以给帧加上双重Tag,即在原来Tag的基础上,给帧加上一个新的Tag,从而可以支持多达4094×4094个VLAN,满足网络对VLAN数量的需求。 |
3、vlanif
逻辑接口: VLANIF 是绑定在交换机的 VLAN 上的逻辑三层接口。
网关角色: VLANIF 接口通常配置一个 IP 地址,充当该 VLAN 的默认网关。
三层通信: VLANIF 主要用于实现 VLAN 间的数据通信,即三层路由功能。
物理承载: VLAN 流量必须通过物理接口在网络中传输, 路由器不支持交换端口, 那么将无法设置vlanif, 因为vlanif需要物理接口绑定vlan(access, trunk)进行支持。
vlanif是三层逻辑接口, 不对接口进行二层的处理, 在二层交给vlanif的时候已经被去除pvid了!
4、子接口(单臂路由)
vlanif在路由器上是不可用的因为路由器无法直接处理了vlan, 接口为三层接口, 所以只能通告子接口来处理vlan, 物理接口必须和子接口关联
子接口不需要像vlanif一样和vlan关联, 可以不创建vlan
实验(跨vlan通信)
子接口和物理接口共享mac地址!
1 | S1(config)#vlan 10 |
1 | R1(config)#int g0/0.10 |
在PC1上pingPC2流程:
PC1开始构建icmp包, 查看目标和自己是不是一个网段, 发现不是一个网段
查看自己的路由表有没有处理192.168.2.2的路由, 发现只有一条默认路由, 开始请求默认路由下一跳192.168.1.1的mac地址
发送到S1的Fa0/3端口, S1收到后查看这个请求包发现没有pvid, 添加上配置的端口pvid(vlan10)
S1发现是广播包通过mac地址表来转发到vlan10的所有端口, Fa0/3是vlan20的端口不进行转发, Fa0/1是trunk口并且允许了所有vlan所以只转发到Fa0/1, trunk口发现广播包是允许通过的pvid进行放行
交换机会记录下发过来的arp包的端口、vid、源mac地址
1 | S1#show mac-address-table |
R1收到arp包, 发现请求的mac地址是自己的接口g0/0
R1返回自己g0/0的mac地址给请求ip192.168.1.1
S1收到后会将R1发过来的arp包的端口、vid、源mac地址记录进mac地址表
1 | Vlan Mac Address Type Ports |
PC1收到arp包后写入arp表, 然后开始继续构建icmp包的第二层, 目标mac地址为网关地址
PC1发送icmp包, S1添加上pvid后发送给R1, R1接收到后发现pvid为10 去除pvid后转发给 g0/0.10处理
查看路由表后发现192.168.2.0/24属于直连路由g0/0.20, 发送给g0/0.20, 这个时候g0/0会重新封装icmp, 把源mac改为g0/0的mac地址, 然后目标mac改为192.168.2.2的mac地址
R1也不知道192.168.2.2的mac地址这个时候会发送arp请求192.168.2.2的mac地址, g0/0给它加上vlan20
PC2返回自己的mac地址, S1记录PC2的端口、vid、mac地址在mac地址表
R1收到后重新构建icmp包, 源mac为g0/0mac地址, 目标为192.168.2.2的mac地址, 由于路由器无法缓存icmp包所以这个包超时了
PC1重新发送icmp包,R1收到后重新封装, PC2收到后进行回应
R1收到后g0/0.10会把源mac改为g0/0的mac地址, 目标mac为192.168.1.2的mac地址
三、vlanif和子接口的区别
特性 | Vlanif 接口 | VLAN 子接口 |
---|---|---|
定义 | 三层逻辑接口,直接与 VLAN 绑定,用于提供三层功能。 | 在物理接口上划分的逻辑接口,通过 VLAN ID 识别流量。 |
适用设备 | 三层交换机(具备二层交换和三层路由功能)。 | 路由器或支持子接口的三层设备。 |
VLAN 的绑定方式 | 通过 VLAN ID 和 VLAN 配置绑定到对应的 VLAN。 | 通过 encapsulation dot1Q 和 VLAN 标签识别流量。 |
二层依赖性 | 必须依赖 VLAN 的配置(如 Access 或 Trunk 接口)。 | 不依赖 VLAN 配置,通过物理接口直接处理带标签的流量。 |
物理接口关系 | 不直接绑定物理接口,通过 VLAN ID 间接关联。 | 在物理接口上划分逻辑子接口,与物理接口直接关联。 |