VLAN 基础知识 | 划分案例详解

注:本文为 “VLAN 基础和 VLAN 划分案例” 相关文章的合辑

案例类型大同小异,仅对部分内容略作重排,未整理去重。


VLAN 基础知识

曹世宏的博客 于 2018-05-21 13:10:56 发布

VLAN 简介

定义:

VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的 LAN 在逻辑上划分成多个广播域的通信技术。VLAN 内的主机间可以直接通信,而 VLAN 间不能直接通信,从而将广播报文限制在一个 VLAN 内。

目的:

以太网是一种基于 CSMA/CD(Carrier Sense Multiple Access/Collision Detection)的共享通讯介质的数据网络通讯技术。当主机数目较多时会导致冲突严重、广播泛滥、性能显著下降甚至造成网络不可用等问题。通过交换机实现 LAN 互连虽然可以解决冲突严重的问题,但仍然不能隔离广播报文和提升网络质量。

在这种情况下出现了 VLAN 技术,可以把一个 LAN 划分成多个逻辑的 VLAN,每个 VLAN 是一个广播域,VLAN 内的主机间通信就和在一个 LAN 内一样,而 VLAN 间则不能直接互通,这样,广播报文就被限制在一个 VLAN 内。

作用:

  • 限制广播域:广播域被限制在一个 VLAN 内,节省了带宽,提高了网络处理能力。
  • 增强局域网的安全性:不同 VLAN 内的报文在传输时是相互隔离的,即一个 VLAN 内的用户不能和其它 VLAN 内的用户直接通信。
  • 提高了网络的健壮性:故障被限制在一个 VLAN 内,本 VLAN 内的故障不会影响其他 VLAN 的正常工作。
  • 灵活构建虚拟工作组:用 VLAN 可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活。

VLAN 的基本概念

VLAN 标签:

要使设备能够分辨不同 VLAN 的报文,需要在报文中添加标识 VLAN 信息的字段。IEEE 802.1Q 协议规定,在以太网数据帧的目的 MAC 地址和源 MAC 地址字段之后、协议类型字段之前加入 4 个字节的 VLAN 标签(又称 VLAN Tag,简称 Tag),用以标识 VLAN 信息。

VLAN 帧格式:

这里写图片描述

图:VLAN 数据帧格式

字段解释:

字段 长度 含义 取值
TPID 2Byte Tag Protocol Identifier(标签协议标识符),表示数据帧类型。 表示帧类型,取值为 0x8100 时表示 IEEE 802.1Q 的 VLAN 数据帧。如果不支持 802.1Q 的设备收到这样的帧,会将其丢弃。

各设备厂商可以自定义该字段的值。

当邻居设备将 TPID 值配置为非 0x8100 时,为了能够识别这样的报文,实现互通,必须在本设备上修改 TPID 值,确保和邻居设备的 TPID 值配置一致。
PRI 3bit Priority,表示数据帧的 802.1Q 优先级。 取值范围为 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。

设备利用 VLAN 标签中的 VID 来识别数据帧所属的 VLAN,广播帧只在同一 VLAN 内转发,这就将广播域限制在一个 VLAN 内。

常用设备收发数据帧的 VLAN 标签情况:

在一个 VLAN 交换网络中,以太网帧主要有以下两种格式:

  • 有标记帧(Tagged 帧):加入了 4 字节 VLAN 标签的帧。
  • 无标记帧(Untagged 帧):原始的、未加入 4 字节 VLAN 标签的帧。

常用设备中:

  • 用户主机、服务器、Hub 只能收发 Untagged 帧。
  • 交换机、路由器和 AC 既能收发 Tagged 帧,也能收发 Untagged 帧。
  • 语音终端、AP 等设备可以同时收发一个 Tagged 帧和一个 Untagged 帧。

为了提高处理效率,设备内部处理的数据帧一律都是 Tagged 帧。

链路类型和接口类型:

设备内部处理的数据帧一律都带有 VLAN 标签,而现网中的设备有些只会收发 Untagged 帧,要与这些设备交互,就需要接口能够识别 Untagged 帧并在收发时给帧添加、剥除 VLAN 标签。同时,现网中属于同一个 VLAN 的用户可能会被连接在不同的设备上,且跨越设备的 VLAN 可能不止一个,如果需要用户间的互通,就需要设备间的接口能够同时识别和发送多个 VLAN 的数据帧。

为了适应不同的连接和组网,设备定义了 Access 接口、Trunk 接口和 Hybrid 接口 3 种接口类型,以及接入链路(Access Link)和干道链路(Trunk Link)两种链路类型。

链路类型:

根据链路中需要承载的 VLAN 数目的不同,以太网链路分为:

  • 接入链路

    接入链路只可以承载 1 个 VLAN 的数据帧,用于连接设备和用户终端(如用户主机、服务器等)。通常情况下,用户终端并不需要知道自己属于哪个 VLAN,也不能识别带有 Tag 的帧,所以在接入链路上传输的帧都是 Untagged 帧。

  • 干道链路

    干道链路可以承载多个不同 VLAN 的数据帧,用于设备间互连。为了保证其它网络设备能够正确识别数据帧中的 VLAN 信息,在干道链路上传输的数据帧必须都打上 Tag。

接口类型:

根据接口连接对象以及对收发数据帧处理的不同,以太网接口分为:

  • Access 接口

    Access 接口一般用于和不能识别 Tag 的用户终端(如用户主机、服务器等)相连,或者不需要区分不同 VLAN 成员时使用。它只能收发 Untagged 帧,且只能为 Untagged 帧添加唯一 VLAN 的 Tag。

  • Trunk 接口

    Trunk 接口一般用于连接交换机、路由器、AP 以及可同时收发 Tagged 帧和 Untagged 帧的语音终端。它可以允许多个 VLAN 的帧带 Tag 通过,但只允许一个 VLAN 的帧从该类接口上发出时不带 Tag(即剥除 Tag)。

  • Hybrid 接口

    Hybrid 接口既可以用于连接不能识别 Tag 的用户终端(如用户主机、服务器等)和网络设备(如 Hub),也可以用于连接交换机、路由器以及可同时收发 Tagged 帧和 Untagged 帧的语音终端、AP。它可以允许多个 VLAN 的帧带 Tag 通过,且允许从该类接口发出的帧根据需要配置某些 VLAN 的帧带 Tag(即不剥除 Tag)、某些 VLAN 的帧不带 Tag(即剥除 Tag)。

Hybrid 接口和 Trunk 接口在很多应用场景下可以通用,但在某些应用场景下,必须使用 Hybrid 接口。比如一个接口连接不同 VLAN 网段的场景中,因为一个接口需要给多个 Untagged 报文添加 Tag,所以必须使用 Hybrid 接口。

缺省 VLAN:

缺省 VLAN 又称 PVID(Port Default VLAN ID)。前面提到,设备处理的数据帧都带 Tag,当设备收到 Untagged 帧时,就需要给该帧添加 Tag,添加什么 Tag,就由接口上的缺省 VLAN 决定。

接口收发数据帧时,对 Tag 的添加或剥除过程。

  • 对于 Access 接口,缺省 VLAN 就是它允许通过的 VLAN,修改缺省 VLAN 即可更改接口允许通过的 VLAN。
  • 对于 Trunk 接口和 Hybrid 接口,一个接口可以允许多个 VLAN 通过,但是只能有一个缺省 VLAN。接口的缺省 VLAN 和允许通过的 VLAN 需要分别配置,互不影响。

同类型接口添加或剥除 VLAN 标签的比较:

接口类型                 ~~~~~~~~~~~~~~~                 对接收不带 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。
  • 当接收到不带 VLAN 标签的数据帧时,Access 接口、Trunk 接口、Hybrid 接口都会给数据帧打上 VLAN 标签,但 Trunk 接口、Hybrid 接口会根据数据帧的 VID 是否为其允许通过的 VLAN 来判断是否接收,而 Access 接口则无条件接收。

  • 当接收到带 VLAN 标签的数据帧时,Access 接口、Trunk 接口、Hybrid 接口都会根据数据帧的 VID 是否为其允许通过的 VLAN(Access 接口允许通过的 VLAN 就是缺省 VLAN)来判断是否接收。

当发送数据帧时

  • Access 接口直接剥离数据帧中的 VLAN 标签。

  • Trunk 接口只有在数据帧中的 VID 与接口的 PVID 相等时才会剥离数据帧中的 VLAN 标签。

  • Hybrid 接口会根据接口上的配置判断是否剥离数据帧中的 VLAN 标签。

因此,Access 接口发出的数据帧肯定不带 Tag,Trunk 接口发出的数据帧只有一个 VLAN 的数据帧不带 Tag,其他都带 VLAN 标签,Hybrid 接口发出的数据帧可根据需要设置某些 VLAN 的数据帧带 Tag,某些 VLAN 的数据帧不带 Tag。

VLAN 通信

VLAN 内互访:

同一 VLAN 内用户互访(简称 VLAN 内互访)会经过如下三个环节。

  • 用户主机的报文转发

    源主机在发起通信之前,会将自己的 IP 与目的主机的 IP 进行比较,如果两者位于同一网段,会获取目的主机的 MAC 地址,并将其作为目的 MAC 地址封装进报文;如果两者位于不同网段,源主机会将报文递交给网关,获取网关的 MAC 地址,并将其作为目的 MAC 地址封装进报文。

  • 设备内部的以太网交换

    设备

    • 如果目的 MAC 地址 + VID 匹配自己的 MAC 表且三层转发标志置位,则进行三层交换,会根据报文的目的 IP 地址查找三层转发表项,如果没有找到会将报文上送 CPU,由 CPU 查找路由表实现三层转发。

    • 如果目的 MAC 地址 + VID 匹配自己的 MAC 表但三层转发标志未置位,则进行二层交换,会直接将报文根据 MAC 表的出接口发出去。

    • 如果目的 MAC 地址 + VID 没有匹配自己的 MAC 表,则进行二层交换,此时会向所有允许 VID 通过的接口广播该报文,以获取目的主机的 MAC 地址。

  • 设备之间交互时,VLAN 标签的添加和剥离

    设备内部的以太网交换都是带 Tag 的,为了与不同设备进行成功交互,设备需要根据接口的设置添加或剥除 Tag。不同接口 VLAN 标签添加和剥离情况不同。

从以太网交换原理可以看出,划分 VLAN 后,广播报文只在同一 VLAN 内二层转发,因此同一 VLAN 内的用户可以直接二层互访。根据属于同一 VLAN 的主机是否连接在不同的设备,VLAN 内互访有两种场景:同设备 VLAN 内互访和跨设备 VLAN 内互访。

同设备 VLAN 内互访:

如下图所示,用户主机 Host_1 和 Host_2 连接在同台设备上,属于同一 VLAN2,且位于相同网段,连接接口均设置为 Access 接口。
(假设 Router 上还未建立任何转发表项)。

在这里插入图片描述

  1. Host_1 判断目的 IP 地址跟自己的 IP 地址在同一网段,于是发送 ARP 广播请求报文获取目的主机 Host_2 的 MAC 地址,报文目的 MAC 填写全 F,目的 IP 为 Host_2 的 IP 地址 10.1.1.3。
  2. 报文到达 Router 的接口 IF_1,发现是 Untagged 帧,给报文添加 VID=2 的 Tag(Tag 的 VID = 接口的 PVID),然后根据报文的源 MAC 地址、VID 和报文入接口(1-1-1, 2, IF_1)生成 MAC 表。
  3. 根据报文目的 MAC 地址 + VID 查找 Router 的 MAC 表,没有找到,于是在所有允许 VLAN2 通过的接口(本例中接口为 IF_2)广播该报文。
  4. Router 的接口 IF_2 在发出 ARP 请求报文前,根据接口配置,剥离 VID=2 的 Tag。
  5. Host_2 收到该 ARP 请求报文,将 Host_1 的 MAC 地址和 IP 地址对应关系记录 ARP 表。然后比较目的 IP 与自己的 IP,发现跟自己的相同,就发送 ARP 响应报文,报文中封装自己的 MAC 地址 2-2-2,目的 IP 为 Host_1 的 IP 地址 10.1.1.2。
  6. Router 的接口 IF_2 收到 ARP 响应报文后,同样给报文添加 VID=2 的 Tag。
  7. Router 根据报文的源 MAC 地址、VID 和报文入接口(2-2-2, 2, IF_2)生成 MAC 表,然后根据报文的目的 MAC 地址 + VID(1-1-1, 2)查找 MAC 地址表,由于前面已记录,查找成功,向出接口 IF_1 转发该 ARP 响应报文。
  8. Router 向出接口 IF_1 转发前,同样根据接口配置剥离 VID=2 的 Tag。
  9. Host_1 收到 Host_2 的 ARP 响应报文,将 Host_2 的 MAC 地址和 IP 地址对应关系记录 ARP 表。

后续 Host_1 与 Host_2 的互访,由于彼此已学习到对方的 MAC 地址,报文中的目的 MAC 地址直接填写对方的 MAC 地址。

此组网场景下,当同一 VLAN 的用户处于不同网段时,主机将在报文中封装网关的 MAC 地址,可借助 VLANIF 技术(需配置主从 IP 地址)实现互访。

跨设备 VLAN 内互访:

如下图,用户主机 Host_1 和 Host_2 连接在不同的设备上,属于同一个 VLAN2,且位于相同网段。为了识别和发送跨越设备的数据帧,设备间通过干道链路连接。

在这里插入图片描述

当用户主机 Host_1 发送报文给用户主机 Host_2 时,报文的发送过程如下(假设 Router_1 和 Router_2 上还未建立任何转发表项)。

  1. 经过与同设备 VLAN 内互访的步骤 1~2 一样的过程后,报文被广播到 Router_1 的 IF_2 接口。
  2. Router_1 的 IF_2 接口在发出 ARP 请求报文前,因为接口的 PVID=1(缺省值),与报文的 VID 不相等,直接透传该报文到 Router_2 的 IF_2 接口,不剥除报文的 Tag。
  3. Router_2 的 IF_2 接口收到该报文后,判断报文的 Tag 中的 VID=2 是接口允许通过的 VLAN,接收该报文。
  4. 经过与同设备 VLAN 内互访的步骤 3~6 一样的过程后,Router_2 将向其出接口 IF_2 转发 Host_2 的 ARP 响应报文,转发前,因为接口 IF_2 为 Trunk 接口且 PVID=1(缺省值),与报文的 VID 不相等,直接透传报文到 Router_1 的 IF_2 接口。
  5. Router_1 的 IF_2 接口收到 Host_2 的 ARP 响应报文后,判断报文的 Tag 中的 VID=2 是接口允许通过的 VLAN,接收该报文。后续处理同同设备 VLAN 内互访的步骤 7~9 一样。

可见,干道链路除可传输多个 VLAN 的数据帧外,还起到透传 VLAN 的作用,即干道链路上,数据帧只会转发,不会发生 Tag 的添加或剥离。

VLAN 间互访:

划分 VLAN 后,由于广播报文只在同 VLAN 内转发,所以不同 VLAN 的用户间不能二层互访,这样能起到隔离广播的作用。但实际应用中,不同 VLAN 的用户又常有互访的需求,此时就需要实现不同 VLAN 的用户互访,简称 VLAN 间互访。

同 VLAN 间互访一样,VLAN 间互访也会经过用户主机的报文转发、设备内部的以太网交换、设备之间交互时 VLAN 标签的添加和剥离三个环节。同样,根据以太网交换原理,广播报文只在同一 VLAN 内转发,不同 VLAN 内的用户则不能直接二层互访,需要借助三层路由技术或 VLAN 转换技术才能实现互访。

VLAN 间互访技术:

华为提供了多种技术实现 VLAN 间互访,常用的两种技术为 VLANIF 接口和 Dot1q 终结子接口。

  • VLANIF 接口

    VLANIF 接口是一种三层的逻辑接口。在 VLANIF 接口上配置 IP 地址后,设备会在 MAC 地址表中添加 VLANIF 接口的 MAC 地址 + VID 表项,并且为表项的三层转发标志位置位。当报文的目的 MAC 地址匹配该表项后,会进行三层转发,进而实现 VLAN 间的三层互通。

    VLANIF 配置简单,是实现 VLAN 间互访最常用的一种技术。但每个 VLAN 需要配置一个 VLANIF,并在接口上指定一个 IP 子网网段,比较浪费 IP 地址。

  • Dot1q 终结子接口

    子接口也是一种三层的逻辑接口。跟 VLANIF 接口一样,在子接口上配置 Dot1q 终结功能和 IP 地址后,设备也会添加相应的 MAC 表项并置位三层转发标志位,进而实现 VLAN 间的三层互通。

    Dot1q 终结子接口适用于通过一个三层以太网接口下接多个 VLAN 网络的环境。由于不同 VLAN 的数据流会争用同一个以太网主接口的带宽,网络繁忙时,会导致通信瓶颈。

通过 VLANIF 接口实现 VLAN 间互访,必须要求 VLAN 间的用户都只能处于不同的网段(因为相同网段,主机会封装目的主机的 MAC 地址,设备判断进行二层交换,二层交换只在同 VLAN 内,广播报文无法到达不同的 VLAN,获取不到目的主机的 MAC 地址,也就无法实现互通)。现网中,也存在不同 VLAN 相同网段的组网需求,此时可通过 VLAN 聚合实现。

VLAN 聚合(又称 Super VLAN)通过引入 Super-VLAN 和 Sub-VLAN,将一个 Super-VLAN 和多个 Sub-VLAN 关联,多个 Sub-VLAN 共享 Super-VLAN 的 IP 地址作为其网关 IP,实现与外部网络的三层互通;并通过在 Sub-VLAN 间启用 Proxy ARP,实现 Sub-VLAN 间的三层互通,进而即节约 IP 地址资源,又实现 VLAN 间的三层互通。

VLAN 聚合通常用于多个 VLAN 共用一个网关的组网场景。

同设备 VLAN 间互访:

如下图:互访的源主机 Host_1 和目的主机 Host_2 连接在同一台设备 Router 上,分别属于 VLAN2 和 VLAN3,并位于不同的网段。在 Router 上分别创建 VLANIF2 和 VLANIF3 并配置其 IP 地址,然后将用户主机的缺省网关设置为所属 VLAN 对应 VLANIF 接口的 IP 地址。

这里写图片描述

当用户主机 Host_1 发送报文给用户主机 Host_2 时,报文的发送过程如下(假设 Router 上还未建立任何转发表项)。

  1. Host_1 判断目的 IP 地址跟自己的 IP 地址不在同一网段,因此,它发出请求网关 MAC 地址的 ARP 请求报文,目的 IP 为网关 IP 10.1.1.1,目的 MAC 为全 F。
  2. 报文到达 Router 的接口 IF_1,Router 给报文添加 VID=2 的 Tag(Tag 的 VID = 接口的 PVID),然后将报文的源 MAC 地址 + VID 与接口的对应关系(1-1-1, 2, IF_1)添加进 MAC 表。
  3. Router 检查报文是 ARP 请求报文,且目的 IP 是自己 VLANIF2 接口的 IP 地址,给 Host_1 应答,并将 VLANIF2 接口的 MAC 地址 3-3-3 封装在应答报文中,应答报文从 IF_1 发出前,剥掉 VID=2 的 Tag。同时,Router 会将 Host_1 的 IP 地址与 MAC 地址的对应关系记录到 ARP 表。
  4. Host_1 收到 Router 的应答报文,将 Router 的 VLANIF2 接口的 IP 地址与 MAC 地址对应关系记录到自己的 ARP 表中,并向 Router 发送目的 MAC 为 3-3-3、目的 IP 为 Host_2 的 IP 地址 10.2.2.2 的报文。
  5. 报文到达 Router 的接口 IF_1,同样给报文添加 VID=2 的 Tag。
  6. Router 根据报文的源 MAC 地址 + VID 与接口的对应关系更新 MAC 表,并比较报文的目的 MAC 地址与 VLANIF2 的 MAC 地址,发现两者相等,进行三层转发,根据目的 IP 查找三层转发表,没有找到匹配项,上送 CPU 查找路由表。
  7. CPU 根据报文的目的 IP 去找路由表,发现匹配了一个直连网段(VLANIF3 对应的网段),于是继续查找 ARP 表,没有找到,Router 会在目的网段对应的 VLAN3 的所有接口发送 ARP 请求报文,目的 IP 是 10.2.2.2。从接口 IF_2 发出前,根据接口配置,剥掉 VID=2 的 Tag。
  8. Host_2 收到 ARP 请求报文,发现请求 IP 是自己的 IP 地址,就发送 ARP 应答报文,将自己的 MAC 地址包含在其中。同时,将 VLANIF3 的 MAC 地址与 IP 地址的对应关系记录到自己的 ARP 表中。
  9. Router 的接口 IF_2 收到 Host_2 的 ARP 应答报文后,给报文添加 VID=3 的 Tag,并将 Host_2 的 MAC 和 IP 的对应关系记录到自己的 ARP 表中。然后,将 Host_1 的报文转发给 Host_2,发送前,同样剥离报文中的 Tag。同时,将 Host_2 的 IP、MAC、VID 及出接口的对应关系记录到三层转发表中。

至此,Host_1 完成对 Host_2 的单向访问。Host_2 访问 Host_1 的过程与此类似。这样,后续 Host_1 与 Host_2 之间的往返报文,都先发送给网关 Router,由 Router 查三层转发表进行三层转发。

跨设备 VLAN 间互访:

由于 VLANIF 接口的 IP 地址只能在设备上生成直连路由,当不同 VLAN 的用户跨多台设备互访时,除配置 VLANIF 接口的 IP 地址外,还需要配置静态路由或运行动态路由协议。

如下图所示,互访的源主机 Host_1 和目的主机 Host_2 连接在不同的设备 Router_1 和 Router_2 上,分别属于 VLAN2 和 VLAN3,并位于不同的网段。在 Router_1 上分别创建 VLANIF2 和 VLANIF4,配置其 IP 地址为 10.1.1.1 和 10.1.4.1;在 Router_2 上分别创建 VLANIF3 和 VLANIF4,配置其 IP 地址为 10.1.2.1 和 10.1.4.2,并在 Router_1 和 Router_2 上分别配置静态路由。Router_1 上静态路由的目的网段是 10.1.2.0/24,下一跳是 10.1.4.2;Router_2 上静态路由的目的网段是 10.1.1.0/24,下一跳是 10.1.4.1。

这里写图片描述

当用户主机 Host_1 发送报文给用户主机 Host_2 时,报文的发送过程如下(假设 Router_1 和 Router_2 上还未建立任何转发表项)。

  1. 同设备 VLAN 间互访的步骤 1~6 一样,经过 “Host_1 比较目的 IP 地址 —>Host_1 查 ARP 表 —>Host_1 获取网关 MAC 地址 —>Host_1 将发给 Host_2 的报文送到 Router_1—>Router_1 查 MAC 表 —>Router_1 查三层转发表” 的过程,Router_1 上送 CPU 查找路由表。
  2. Router_1 的 CPU 根据报文的目的 IP 10.1.2.2 去找路由表,发现匹配了一个路由网段 10.1.2.0/24(VLANIF3 对应的网段),下一跳 IP 地址为 10.1.4.2,于是继续查找 ARP 表,没有找到,Router_1 会在下一跳 IP 地址对应的 VLAN4 的所有接口发送 ARP 请求报文,目的 IP 是 10.1.4.2。报文从 Router_1 的接口 IF_2 发出前,根据接口配置,直接透传该报文到 Router_2 的 IF_2 接口,不剥除报文的 Tag。
  3. ARP 请求报文到达 Router_2 后,发现目的 IP 为 VLANIF4 接口的 IP 地址,给 Router_1 回应,填写 VLANIF4 接口的 MAC 地址。
  4. Router_2 的 ARP 响应报文从其 IF_2 接口直接透传到 Router_1,Router_1 接收后,记录 VLANIF4 的 MAC 地址与 IP 地址的对应关系到 ARP 表项。
  5. Router_1 将 Host_1 的报文转发给 Router_2,报文的目的 MAC 修改为 Router_2 的 VLANIF4 接口的 MAC 地址,源 MAC 地址修改自己的 VLANIF4 接口的 MAC 地址,并将刚用到的转发信息记录在三层转发表中(10.1.2.0/24,下一跳 IP 的 MAC 地址, 出口 VLAN, 出接口)。同样,报文是直接透传到 Router_2 的 IF_2 接口。
  6. Router_2 收到 Router_1 转发的 Host_1 的报文后,与同设备 VLAN 间互访的步骤 6~9 一样,经过 “查 MAC 表 —> 查三层转发表 —> 送 CPU—> 匹配直连路由 —> 查 ARP 表并获取 Host_2 的 MAC 地址 —> 将 Host_1 的报文转发给 Host_2” 的过程,同时将 Host_2 的 IP 地址、MAC 地址、出口 VLAN、出接口记录到三层转发表项。

VLAN Damping(抑制):

如果指定 VLAN 已经创建对应的 VLANIF 接口,当 VLAN 中所有接口状态变为 Down 而引起 VLAN 状态变为 Down 时,VLAN 会向 VLANIF 接口上报接口 Down 状态,从而引起 VLANIF 接口状态变化。

为避免由于 V

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值