1、技术背景

VLAN间通信

实际网络部署中一般会将不同IP地址段划分到不同的VLAN。

同VLAN且同网段的PC之间可直接进行通信,无需借助三层转发设备,该通信方式被称为二层通信。

VLAN之间需要通过三层通信实现互访,三层通信需借助三层设备。

二层跨vlan通信 vlan内二层互通_IP

常见的三层设备:路由器、三层交换机、防火墙等。

将二层交换机与路由器的三层接口互联,由三层设备进行路由转发来实现通信。 

二层跨vlan通信 vlan内二层互通_数据帧_02

2、使用路由器(物理接口、子接口)实现VLAN间通信

使用路由器物理接口

路由器三层接口作为网关,转发本网段前往其它网段的流量。

路由器三层接口无法处理携带VLAN Tag的数据帧,因此交换机上联路由器的接口需配置为Access。

路由器的一个物理接口作为一个VLAN的网关,因此存在一个VLAN就需要占用一个路由器物理接口。

路由器作为三层转发设备其接口数量较少,方案的可扩展性太差。

二层跨vlan通信 vlan内二层互通_三层交换机_03

使用路由器子接口

子接口(Sub-Interface)是基于路由器以太网接口所创建的逻辑接口,以物理接口ID+子接口ID进行标识,子接口同物理接口一样可进行三层转发。

子接口不同于物理接口,可以终结携带VLAN Tag的数据帧。

基于一个物理接口创建多个子接口,将该物理接口对接到交换机的Trunk接口,即可实现使用一个物理接口为多个VLAN提供三层转发服务。

子接口和母接口是同一个IP地址,所以需要vlan进行区分

二层跨vlan通信 vlan内二层互通_二层跨vlan通信_04

看下面示例:

二层跨vlan通信 vlan内二层互通_网络_05

单臂路由

 interface GigabitEthernet0/0/0.1        进入子接口G0/0/0.1
 dot1q termination vid 10                    允许子接口识别、封装VLAN10
 ip address 1.1.1.254 255.255.255.0  配置IP地址
 arp broadcast enable                         开启ARP广播功能

 子接口处理流程

交换机连接路由器的接口类型配置为Trunk,根据报文的VLAN Tag不同,路由器将收到的报文交由对应的子接口处理。

二层跨vlan通信 vlan内二层互通_三层交换机_06

子接口配置示例

二层跨vlan通信 vlan内二层互通_二层跨vlan通信_07

3、使用VLANIF技术实现VLAN间通信

三层交换机和VLANIF接口

只要是三层设备就能查路由。

傻瓜式交换机(无法管理)


可管理:

纯二层交换机(仅支持数据链路层功能,比如VLAN,access等接口配置);

三层交换机(带有部分网络层功能的设备,比如配置IP地址,路由协议等)。


三层交换机又分为:

弱三层交换机(支持相对较少的网络层功能);

强三层交换机(支持相对较多的网络层功能)。

交换机如何判断二层转发还是三层转发:

由于同网段之间互访,终端设备会自动将MAC地址封装进二层头部中,交换机收到该数据帧时,发现目标MAC地址不是自己,则记源转发(二层转发,不会剥离二层头部);

当跨网段访问时,终端设备会自动将网关MAC地址地址封装进二层头部中,交换机收到该数据帧时,发现目标MAC地址是自己,则认为该数据需要执行三层转发,剥离二层头部后,看三层IP信息,查询路由表,进行转发以及重新封装。

二层跨vlan通信 vlan内二层互通_网络_08

 vlanif接口是三层虚拟接口,和vlan一一对应,必须先有vlan,才能有vlan三层,vlanif可以配置IP地址,也可以运行路由协议。

[SW1]interface Vlanif 10  进入vlan 10的三层接口

VLANIF配置示例

二层跨vlan通信 vlan内二层互通_IP_09

 VLANIF转发流程

假设PC、三层交换机上都已存在相应的ARP或MAC表项。

PC1与PC2之间通信过程如下:

PC1通过本地IP地址、本地掩码、对端IP地址进行计算,发现目的设备PC2与自身不在同一个网段,判断该通信为三层通信,将去往PC2的流量发给网关。

PC1发送的数据帧:源MAC = MAC1,目的MAC = MAC2。

二层跨vlan通信 vlan内二层互通_IP_10

 交换机收到PC1发送的去往PC2的报文,经解封装发现目的MAC为VLANIF10接口的MAC地址,所以将报文交给路由模块继续处理。

路由模块解析发现目的IP为192.168.20.2,非本地接口存在的IP地址,因此需要对该报文三层转发。查找路由表后,匹配中VLANIF20产生的直连路由。

二层跨vlan通信 vlan内二层互通_网络_11

 因为匹配的为直连路由,说明已经到达最后一跳,所以交换机在ARP表中查找192.168.20.2,获取192.168.20.2的MAC地址,交由交换模块重新封装为数据帧。

交换模块查找MAC地址表以明确报文出接口、是否需要携带VLAN Tag。最终交换模块发送的数据帧:源MAC = MAC2,目的MAC = MAC3,VLAN Tag = None。

二层跨vlan通信 vlan内二层互通_网络_12

4、三层通信过程解析

网络拓扑

二层跨vlan通信 vlan内二层互通_网络_13

连接逻辑图

二层跨vlan通信 vlan内二层互通_IP_14

通信过程

二层跨vlan通信 vlan内二层互通_网络_15

二层跨vlan通信 vlan内二层互通_二层跨vlan通信_16

二层跨vlan通信 vlan内二层互通_三层交换机_17

二层跨vlan通信 vlan内二层互通_三层交换机_18

二层跨vlan通信 vlan内二层互通_网络_19

作业:

二层跨vlan通信 vlan内二层互通_三层交换机_20

解析:

二层跨vlan通信 vlan内二层互通_IP_21

 配置

二层跨vlan通信 vlan内二层互通_网络_22

vlan的标签实际上也是只能作用于同一广播域,跨网段通信标签不会被带出去!

思考题

1、通过子接口实现VLAN间通信时,交换机连接路由器的接口需要做哪些配置?

2、报文经过三层转发时,报文内容有哪些变化?