不同VLAN间的通信原理
- VLAN
- access口
- trunk口
- 不同VLAN间通信原理
首先我们来看看什么是VLAN
VLAN
VLAN(Virtual Local Area Network)虚拟局域网,是将一个物理的局域网在逻辑上划分成多个广播域的技术。VLAN技术部署在数据链路层。
VLAN能够隔离广播域
广播域是指在网络中能够收到广播消息的范围
每个VLAN都有自己的广播域,广播消息只会在同一个VLAN内传播,不会跨越到其他VLAN中,这样就可以减少广播流量
VLAN通过tag来进行区分:
- VLAN ID
0
阻止任何携带了 VLAN tag 的数据包 - VLAN ID
4095
允许通过携带任何 VLAN tag 的数据包(trunk) - VLAN ID
1~4094
仅允许携带指定 VLAN ID tag 的数据包
交换机中的VLAN
路由器是基于三层IP地址信息来选择路由和转发数据的,其连接两个网段时可以有效抑制广播报文的转发,但成本较高
通过在交换机上配置VLAN,可以实现在同一个VLAN内的用户可以进行二层互访,而不同VLAN间的用户被二层隔离。这样既能够隔离广播域,又能够提升网络的安全性
交换机的接口可以配置VLAN ID,通过配置对应的逻辑接口VLANIF(Virtual LAN Interface 虚拟局域网接口)可以实现不同VLAN间的通信,具体方法一般是把VLANIF的IP配置为对应的网关
链路类型:用户主机和交换机之间的链路为接入链路,交换机与交换机之间的链路为干道链路
干道链路上通过的帧一般为带Tag的VLAN帧
PVID表示端口在缺省情况下所属的VLAN。缺省情况下,X7系列交换机每个端口的PVID都是1。
access口
Access端口是交换机上用来连接用户主机的端口,只能连接接入链路,只允许唯一的VLAN通过
- 接收数据: 收到不带tag的标数据帧,加上PVID;收到带tag的数据帧,检查VLAN ID是否与PVID相同,相同则接收
- 发送数据: 发送数据帧先剥离tag再发送,发送时端口PVID与VLAN ID不同,则连接该端口的主机不会受到该数据帧
trunk口
Trunk端口是交换机上用来和其他交换机连接的端口,它只能连接干道链路。Trunk端口允许多个VLAN的帧(带Tag标记)通过
- 接收数据: 收到不带tag的数据帧,添加该端口的PVID,然后检查是否在允许通过的VLAN ID列表中,存在则接收;收到带tag的数据帧则直接检查
- 发送数据: 发送数据帧时,VLAN ID与PVID相同,且是该端口允许通过的VLAN ID时,则去掉tag发送;不同且是该端口允许通过的VLAN ID时,保持原有tag发送
不同VLAN间通信原理
如图,Switch为交换机,PC 1和PC 2的IP地址是不同网段的,两台PC与交换机连接的接口为access口,PVID分别为10和20,交换机分别为其设置了对应的VLANIF,地址为两台PC对应的网关。
PC 1与PC 2通信的过程:
- PC 1发送数据包给Switch,PVID为10的access端口发现这个数据包是不带VLAN tag的,就给这个数据包加上自己的PVID 10的tag,接收
- 数据包传送到对应的VLANIF 10,VLANIF10接收到之后把MAC头和tag剥离
- 数据包由路由转发到下一跳,即VLANIF 20
- VLANIF 20接收到之后把数据包加上MAC头(目的MAC为PC 2的MAC,源MAC为自己的MAC)和VLAN ID为20的tag
- 数据包来到PVID为20的access端口,这个端口发现数据包携带的tag值与自己的PVID相同,剥离tag发送数据包
- PC 2接收到数据包