vlan技术背景

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

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

  • VLAN之间需要通过三层通信实现互访,三层通信需借助三层设备。
    在这里插入图片描述

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

  • 将二层交换机与路由器的三层接口互联,由三层设备进行路由转发来实现通信。
    在这里插入图片描述

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

使用路由器物理接口

在这里插入图片描述

  • 路由器三层接口作为网关,转发本网段前往其它网段的流量。
  • 路由器三层接口无法处理携带VLAN Tag的数据帧,因此交换机上联路由器的接口需配置为Access。
  • 路由器的一个物理接口作为一个VLAN的网关,因此存在一个VLAN就需要占用一个路由器物理接口。
  • 路由器作为三层转发设备其接口数量较少,方案的可扩展性太差。

在二层交换机上配置VLAN,每个VLAN单独使用一个交换机接口与路由器互联。

路由器使用两个物理接口,分别作为VLAN 10及VLAN 20内PC的默认网关,使用路由器的物理接口实现VLAN之间的通信。

使用路由器子接口

在这里插入图片描述

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

R1使用一个物理接口(GE0/0/1)与交换机SW1对接,并基于该物理接口创建两个子接口:GE0/0/1.10及GE0/0/1.20,分别使用这两个子接口作为VLAN 10及VLAN 20的默认网关。

由于三层子接口不支持VLAN报文,当它收到VLAN报文时,会将VLAN报文当成是非法报文而丢弃。因此,需要在子接口上将VLAN Tag剥掉,也就是需要VLAN终结(VLAN Termination)。

子接口处理流程

  • 交换机连接路由器的接口类型配置为Trunk,根据报文的VLAN Tag不同,路由器将收到的报文交由对应的子接口处理。
    在这里插入图片描述

子接口终结VLAN的实质包含两个方面:

对接口接收到报文,剥除VLAN标签后进行三层转发或其他处理。

对接口发出的报文,又将相应的VLAN标签添加到报文中后再发送。

子接口配置示例
在这里插入图片描述

  • interface interface-type interface-number.sub-interface number命令用来创建子接口。sub-interface number代表物理接口内的逻辑接口通道。一般情况下,为了方便记忆,子接口ID与所要终结的VLAN ID相同。
  • dot1q termination vid命令用来配置子接口Dot1q终结的单层VLAN ID。缺省情况,子接口没有配置dot1q终结的单层VLAN ID。arp broadcast enable命令用来使能终结子接口的ARP广播功能。缺省情况下,终结子接口没有使能ARP广播功能。终结子接口不能转发广播报文,在收到广播报文后它们直接把该报文丢弃。为了允许终结子接口能转发广播报文,可以通过在子接口上执行此命令。

三层交换机和VLANIF接口
在这里插入图片描述

  • 二层交换机(Layer 2 Switch)指的是只具备二层交换功能的交换机。
  • 三层交换机(Layer 3 Switch)除了具备二层交换机的功能,还支持通过三层接口(如VLANIF接口)实现路由转发功能。
  • VLANIF接口是一种三层的逻辑接口,支持VLAN Tag的剥离和添加,因此可以通过VLANIF接口实现VLAN之间的通信。
  • VLANIF接口编号与所对应的VLAN ID相同,如VLAN 10对应VLANIF 10。

VLANIF配置示例
在这里插入图片描述

基础配置:

[SW1]vlan batch 10 20

[SW1] interface GigabitEthernet 0/0/1

[SW1-GigabitEthernet0/0/1] port link-type access

[SW1-GigabitEthernet0/0/1] port default vlan 10

[SW1] interface GigabitEthernet 0/0/2

[SW1-GigabitEthernet0/0/2] port link-type access

[SW1-GigabitEthernet0/0/2] port default vlan 20

配置Vlanif:

[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

  • interface vlanif vlan-id命令用来创建VLANIF接口并进入到VLANIF接口视图。vlan-id表示与VLANIF接口相关联的VLAN编号。VLANIF接口的IP地址作为主机的网关IP地址,和主机的IP地址必须位于同一网段。
VLANIF转发流程 (1)

在这里插入图片描述

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

VLANIF转发流程 (2)
在这里插入图片描述

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

VLANIF转发流程 (3)
在这里插入图片描述

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

网络拓扑

在这里插入图片描述

通信过程

  1. PC1发送数据包:PC1要访问Internet上的服务器(2.3.4.5),首先将数据包发送到默认网关192.168.10.254,即SW2的VLANIF10接口。
  2. SW2处理数据包
  • SW2接收到数据包后,根据VLAN标签(VLAN 10)将其转发到VLANIF10接口。
  • VLANIF10接口检查目的IP地址(2.3.4.5),发现是外部地址,于是将数据包转发到R1。
  1. R1处理数据包
  • R1接收到数据包后,进行NAT转换,将内部私有IP地址(192.168.10.2)转换为公有IP地址(1.2.3.4)。
  • R1根据路由表将数据包转发到ISP。
  1. ISP转发数据包:ISP接收到数据包后,根据目的IP地址(2.3.4.5)将其转发到服务器。
  2. 服务器响应:服务器接收到数据包后,处理请求并生成响应数据包,将响应数据包发送回ISP。
  3. 反向NAT转换
  • ISP将响应数据包转发到R1。
  • R1进行反向NAT转换,将公有IP地址(1.2.3.4)转换为内部私有IP地址(192.168.10.2),并将数据包转发到SW2。
  1. SW2转发响应数据包
  • SW2接收到响应数据包后,根据VLAN标签(VLAN 10)将其转发到PC1。
  1. PC1接收响应数据包:PC1接收到服务器的响应数据包,完成通信过程。

连接逻辑图
在这里插入图片描述

  • NAPT(Network Address Port Translation,网络地址端口转换):将IP数据报文头中的IP地址、端口号转换为另一个IP地址、端口号的过程,主要用于实现内部网络(私有IP地址)访问外部网络(公有IP地址)的功能,NAPT支持多个内部地址映射到同一个公有地址上,可以实现使用一个公有地址支持内网多个内部地址同时访问外部网络。

通信过程 (1)
在这里插入图片描述

假设所有设备上都已存在相应的ARP或MAC表项。

通信过程 (2)
在这里插入图片描述

通信过程 (3)
在这里插入图片描述

通信过程 (4)
在这里插入图片描述

通信过程 (5)
在这里插入图片描述

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

将接口配置为Trunk或者Hybrid,放通终端对应的VLAN(携带VLAN-Tag)。

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

源目IP在转发过程中保持不变(无NAT场景),但是源目MAC会改变,三层转发时每经过一个三层设备进行三层转发,源目MAC都会发生变化。

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐