13 VLAN 间通信

发布时间 2023-09-18 23:31:11作者: 搞笑一下

传统交换二层组网中,默认所有网络都处于同一个广播域,这带了诸多问题。VLAN(Virtual Local Area Network,虚拟局域网)技术的提出,满足了二层组网隔离广播域需求,使得属于不同VLAN的网络无法互访,但不同VLAN之间又存在着相互访问的需求。

多臂路由

路由器三层接口作为网关,转发本网段前往其它网段的流量。路由器三层接口无法处理携带VLAN Tag的数据帧,因此交换机上联路由器的接口需配置为Access。路由器的一个物理接口作为一个VLAN的网关,因此存在一个VLAN就需要占用一个路由器物理接口。使用路由器物理接口实现VLAN间通信,路由器的物理接口是十分宝贵的,不会采用此方式实现通信

image

单臂路由

子接口(Sub-Interface)是基于路由器以太网接口所创建的逻辑接口,以物理接口ID+子接口ID进行标识,子接口同物理接口一样可进行三层转发。子接口不同于物理接口,可以终结携带VLAN Tag的数据帧。基于一个物理接口创建多个子接口,将该物理接口对接到交换机的Trunk接口,即可实现使用一个物理接口为多个VLAN提供三层转发服务。使用路由器子接口,同样一般不采取

image

子接口处理流程

交换机连接路由器的接口类型配置为Trunk,根据报文的VLAN Tag不同,路由器将收到的报文交由对应的子接口处理。子接口需要配置终结的VLAN ID。路由器根据收到报文的VLAN ID选择对应的子接口处理(子接口接受携带VLAN Tag的报文)子接口发送报文时携带配置的termination vid

image

配置示例

[R1]interface GigabitEthernet0/0/1.10
[R1-GigabitEthernet0/0/1.10]dot1q termination vid 10  //配置终结VLAN号为10
[R1-GigabitEthernet0/0/1.10]ip address 192.168.10.254 24
[R1-GigabitEthernet0/0/1.10]arp broadcast enable      //开启ARP广播功能

逻辑口通信(VLANIF)

VLANIF接口是一种三层的逻辑接口,支持VLAN Tag的剥离和添加,因此可以通过VLANIF接口实现VLAN之间的通信。
VLANIF接口编号与所对应的VLAN ID相同,如VLAN 10对应VLANIF 10。

配置示例

[SW1]interface Vlanif 10
[SW1-Vlanif10]ip address 192.168.10.254 24
[SW1]interface Vlanif 20
[SW1-Vlanif20]ip address 192.168.20.254 24

三层交换机和VLANIF接口

交换模块根据VLAN标签转交给交换模块的对应接口,在转交时会剥离对应的标签,在路由模块将包给交换模块的接口时会打上对应的VLAN标签

VLANIF转发流程

假设PC、三层交换机上都已存在相应的ARP或MAC表项。PC1与PC2之间通信过程如下:PC1通过本地IP地址、本地掩码、对端IP地址进行计算,发现目的设备PC2与自身不在同一个网段,判断该通信为三层通信,将去往PC2的流量发给网关。PC1发送的数据帧:源MAC = MAC1,目的MAC = MAC2。

image

交换机收到PC1发送的去往PC2的报文,经解封装发现目的MAC为VLANIF10接口的MAC地址,所以将报文交给路由模块继续处理。路由模块解析发现目的IP为192.168.20.2,非本地接口存在的IP地址,因此需要对该报文三层转发。查找路由表后,匹配中VLANIF20产生的直连路由。

image

因为匹配的为直连路由,说明已经到达最后一跳,所以交换机在ARP表中查找192.168.20.2,获取192.168.20.2的MAC地址,交由交换模块重新封装为数据帧。交换模块查找MAC地址表以明确报文出接口、是否需要携带VLAN Tag。最终交换模块发送的数据帧:源MAC = MAC2,目的MAC = MAC3,VLAN Tag = None。

image