前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >VLAN及Trunk,重要!看瑞哥如何讲的明明白白!

VLAN及Trunk,重要!看瑞哥如何讲的明明白白!

作者头像
网络技术联盟站
发布于 2020-11-04 07:34:36
发布于 2020-11-04 07:34:36
21K00
代码可运行
举报
运行总次数:0
代码可运行
  • VLAN 的基本概念
  • Access 类型的接口
  • Trunk 类型的接口
  • 接口类型小结
    • 1. 以太网交换机的二层接口类型
    • 2. Access口接收帧
    • 3. Access口发送帧
    • 4. Trunk口接收帧
    • 5. Trunk口发送帧
    • 6. Hybrid口接收帧
    • 7. Hybrid口发送帧
  • VLAN 及 Trunk 的基础配置
    • 1. VLAN相关的基础配置命令
    • 2. VLAN基础配置示例
    • 3. VLAN及Trunk基础实验
  • Hybrid 接口的配置
    • 1. Hybrid接口用于连接终端PC
    • 2. Hybric接口用于连接交换机
    • 3. 基于IP地址识别VLAN的功能
  • QinQ
  • 二层接口、三层接口、以及 PVID、VLAN-ID 等概念杂谈

VLAN 的基本概念

对于一台二层交换机来说,缺省时整机的所有接口属于一个广播域。这意味着,只要连接到这个交换机的PC都配置在同一个IP子网内,即可直接进行互相访问,而且更重要的一点是,处于同一个广播域内的某个节点只要发送一个广播数据帧,在这个广播域内的所有其他节点都会收到这个数据帧,并且耗费资源来处理(即使它可能并不需要这个数据帧)。当这个广播域变得特别大(交换机上连接的用户数量特别多)时网络就非常有可能被大量的广播消耗掉大量资源。

另一方面,实际的网络中经常存在这样的需求:连接在同一个交换机上的用户有可能是不同的业务单元或者部门的,用户希望对它们进行隔离,或者以独立的网络单元进行管理。

基于上述需求,引入了VLAN的概念,所谓VLAN,也即Virtual LAN,是一个虚拟的、逻辑的LAN,通过VLAN技术,可以在交换机上,根据接口等信息进行VLAN的划分,从而实现设备的隔离。

在上图中,用户在交换机上创建了2个VLAN,然后将相应的接口添加到指定的VLAN中——将接口1、2添加到了VLAN10,将接口23、24添加到了VLAN20。这样一来,接口1、2所连接的PC就加入了VLAN10,它俩处于同一个LAN、同一个广播域内,这些PC只要配置同一个网段的IP地址,就能够直接进行互访了(我们将这种通信称为二层互通)。而接口23、24处于VLAN20,即处于另一个LAN、另一个广播域。属于VLAN20的PC之间能够直接进行互访。不同的VLAN之间,用户是被隔离的(除非借助路由设备,此时,这种这种通信行为就是三层通信了),当然,一个VLAN内的广播数据帧并不会被泛洪到另一个VLAN,因为它们属于不同的广播域。

有了VLAN技术,网络设计将更加灵活。VLAN是一个虚拟的LAN,不受地理环境的限制。我们可以根据实际的业务需要,灵活地进行VLAN的规划,例如将不同的业务部门规划到不同的VLAN中。另外,VLAN还可以跨交换机实现,因此VLAN的成员,例如业务PC,所处的位置就非常灵活了。

下面做一个小结:
  1. 一个VLAN中所有设备都在同一广播域内,不同的VLAN为不同的广播域;
  2. 相同的VLAN内的用户可以直接进行通信,这种通信被称为二层通信,而不同的VLAN之间互相隔离,广播数据不能跨越VLAN传播,因此不同VLAN之间的设备一般无法直接互访,需通过具备三层路由功能的设备(例如路由器、三层交换机或防火墙等)实现相互通信;
  3. 一个VLAN一般使用一个逻辑子网(或者说一个IP子网);
  4. VLAN中成员多基于交换机的接口分配,此时划分VLAN就是将交换机的接口分配到特定的VLAN中;另外,华为交换机也支持基于IP地址划分VLAN等其他VLAN划分方式。
  5. VLAN工作于OSI参考模型的第二层;
  6. VLAN是交换机的一个非常基本的工作机制。

Access 类型的接口

交换机的物理接口缺省都是二层接口,所谓的二层接口,简单的说就是不能直接配置IP地址、不能隔绝广播、无法直接处理IP数据包三层头部的接口,这种接口只能根据数据帧的头部信息进行帧处理。在华为的交换机上,二层接口的链路类型(Link type)有:Access、Trunk和hybrid三种,以S9300交换机为例,其接口缺省为hybrid类型。

VLAN是二层交换机的一个底层技术,二层交换机工作的方方面面都可能与VLAN有关系,包括接口的工作。我们需要根据实际需要,将交换机的接口设置为适当的类型。

Access类型的接口只能加入一个VLAN,这种类型的接口一般用于连接PC、服务器等终端设备,或者连接路由器、防火墙等设备,如下图所示。Access接口只能发送不带标记的数据帧(也就是untagged帧),通常也只接收untagged帧。

Trunk 类型的接口

在一台交换机上,可以创建多个VLAN以便对应不同的业务,然后基于交换机的接口,将不同的接口划分给不同的VLAN。

如果分别在两台交换机上部署了VLAN,并且做了统一性的VLAN规划,这时两台交换机对接的时候就需要谨慎,因为这两台交换机之间互联的链路需要承载多个VLAN的数据,如果某个特定VLAN的数据从一台交换机发送出来,经过交换机之间的链路到达另一台交换机,后者如何判定这个数据到底应该放入哪一个VLAN呢?

这里就需要一种“标记”手段。在将数据送出这个互联接口前,给数据做上相应的标记(Tag)来标记这个数据是从哪一个VLAN跑出来的(如上图所示),这样,对端交换机在收到这个数据之后,就能够根据前者对数据所做的标记来识别数据究竟是属于哪一个VLAN的。此时,我们称两台交换机之间的互联链路为一段干道链路。这里提到的“标记”手段,常被称为干道协议,一个众所周知的公有标准是802.1q,或者叫Dot1q,由于是公有标准,因此所有的交换机厂商都遵循该标准。

Dot1q针对数据帧的处理方式很简单,就是在原始的以太网数据帧头中插入一个Dot1q的字段,同时重新做CRC校验。在插入的Dot1q字段中,就有VLAN-ID字段用来指示这个数据帧所属的VLAN,我们将没有携带Dot1q Tag的数据帧称为原始以太网数据帧或无标记帧(Untagged Frame),将携带了Dot1q Tag字段的数据帧称为标记帧(Tagged Frame),如下图所示:

接口类型小结

1. 以太网交换机的二层接口类型

华为交换机的二层接口支持三种链路类型(Link type),当接口工作在二层模式时,必须使用这三种类型中的一种:

1) Access:

Access接口常用于连接PC、服务器或其他终端,或路由器等设备。Access接口只能加入一个VLAN,一旦加入特定VLAN后,该接口所连接的设备也就加入了该VLAN。

2) Trunk:

Trunk接口一般用于交换机之间连接的端口,trunk口可以加入多个VLAN,可以接收和发送多个VLAN的Tagged帧。当交换机的接口连接的对端设备(例如路由器或防火墙)的接口部署了以太网子接口,那么在这种场景下,交换机的接口也需配置为trunk类型(或者Hybrid类型)。

3) Hybrid:

可以用于交换机之间连接,也可以用于接用户的计算机,hybrid口可以属于多个VLAN,可以接收和发送多个VLAN的Tagged帧。可根据需求灵活设置特定VLAN的数据帧在发送时是否打标记(Trunk接口只能设置一个VLAN在发送数据帧时不打标记,而hybrid接口则可设置多个VLAN在发送数据帧时不打标记)。

接下来,我们看看各种类型的接口在收、发数据帧时的特点。

❝注:本节中,所谓的接口接收帧的行为,指的是一个数据帧从外部进入交换机接口的过程,而发送帧的行为则是交换机将一个数据帧从交换机内部发送出去的行为。值得注意的是,所有的数据帧在交换机内部都是携带Tag的,这有助于交换机区分数据帧所属的VLAN。

2. Access口接收帧

  1. 如果该帧是Untagged帧,则接收帧并打上接口的PVID(也就是该Access接口的default vlan或缺省VLAN);
  2. 如果该帧是Tagged帧,则当其VLAN-ID与接口PVID相同时,接收该帧,否则丢弃。

❝注意:上图中,白色的大方框指的是交换机内部。

无论是Access、Trunk还是Hybrid类型的接口,都会有一个PVID属性与接口绑定,PVID也即缺省VLAN-ID(是一个具体的VLAN),对于Access接口而言,PVID就是接口视图下port default vlan命令所指定的VLAN-ID,也就是该接口加入的VLAN。而Trunk接口也拥有PVID(缺省时为VLAN1),并且可以通过命令修改,Hybric接口同理。

3. Access口发送帧

在发送数据帧时,剥离其Tag,发出的帧为原始以太网帧,也就是Untagged帧

由于Access接口通常用于连接终端设备,而终端设备通常是只能够识别Untagged帧的,因此Access接口在发送数据帧时,始终是不会携带标记的。

4. Trunk口接收帧

若收到的数据帧是Untagged帧,则为数据帧打上接口PVID的标记,然后,如果PVID在接口允许通行(Allow-pass)的VLAN列表里,则接收该帧,若PVID不在允许通行的VLAN列表里,则丢弃。

缺省时,Trunk接口的PVID为1,而且VLAN1缺省已经在允许通行的VLAN列表中。

若收到的数据帧是Tagged帧,且其VLAN-ID在接口允许通行的VLAN列表里,则接收该帧。否则丢弃。

5. Trunk口发送帧

若该帧的VLAN-ID与接口PVID相同,且该VLAN在允许通行的VLAN列表中,则去掉Tag,发送数据帧。

若该帧的VLAN-ID与接口PVID不同,且该VLAN在允许通行的VLAN列表中,则保持原有Tag,发送该Tagged帧,而如果数据帧的VLAN-ID不在允许通行的VLAN列表中,则禁止从该接口发出。

6. Hybrid口接收帧

若数据帧是Untagged帧,则将其打上PVID的Tag,然后,若PVID在接口允许通行的VLAN列表里则接收,否则丢弃。

若数据帧是Tagged帧,且其VLAN-ID在接口允许通行的VLAN列表里则接收该帧,否则丢弃。

7. Hybrid口发送帧

当该帧的VLAN-ID是接口允许通行的VLAN时,发送该帧,此时可以通过命令设置发送时是否携带Tag。

VLAN 及 Trunk 的基础配置

1. VLAN相关的基础配置命令

在交换机上创建VLAN10并进入VLAN10的配置视图:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Quidway] vlan 10
[Quidway-vlan10]

(可选)在特定的VLAN视图下添加VLAN描述:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Quidway-vlan10] description TechVLAN

将特定的接口配置为access类型,并加入特定VLAN。下面以将GE0/0/1配置为access类型并加入 VLAN10为例:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Quidway] interface gigabitEthernet0/0/1
[Quidway-GigabitEthernet0/0/1] port link-type access
[Quidway-GigabitEthernet0/0/1] port default vlan 10

将特定接口配置为trunk类型,然后配置trunk接口允许通行的VLAN:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Quidway] interface gigabitEthernet0/0/24
[Quidway-GigabitEthernet0/0/24] port link-type trunk
[Quidway-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20  #将VLAN1020添加到该接口允许通过的VLAN列表

❝注意:缺省的情况下除了VLAN1之外,所有的VLAN的流量都不允许通过Trunk接口。

(可选)配置Trunk接口的PVID。PVID所对应VLAN的流量从trunk接口发送出去时不会打Tag(也就是以Untagged帧发送),另外,如果Trunk接口收到Untagged帧,也认为是属于PVID所对应的VLAN。缺省时PVID是1。以下将GE0/0/24接口(该接口已经被配置为Trunk类型)的PVID修改为99:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[Quidway-gigabitEthernet0/0/24] port trunk pvid vlan 99

2. VLAN基础配置示例

在交换机上创建VLAN10及VLAN20,将PC1(所在接口)划入VLAN10,将PC2划入VLAN20。SW1的配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#创建VLAN10VLAN20,使用batch关键字可批量创建vlan:
[SW1] vlan batch 10 20
#将GE0/0/1配置为access类型,并加入vlan10:
[SW1] interface gigabitEthernet0/0/1
[SW1-GigabitEthernet0/0/1] port link-type access
[SW1-GigabitEthernet0/0/1] port default vlan 10
#将GE0/0/2配置为access类型,并加入vlan20:
[SW1] interface gigabitEthernet0/0/2
[SW1-GigabitEthernet0/0/2] port link-type access
[SW1-GigabitEthernet0/0/2] port default vlan 20

完成配置后,在SW1上可进行相应的查看:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[SW1] display vlan
The total number of vlans is : 3
--------------------------------------------------------------------------------
U: Up; D: Down; TG: Tagged; UT: Untagged;
MP: Vlan-mapping; ST: Vlan-stacking;
#: ProtocolTransparent-vlan; *: Management-vlan;
--------------------------------------------------------------------------------
VID Type Ports
--------------------------------------------------------------------------------
1 common UT: GE0/0/3(D) GE0/0/4(D) GE0/0/5(D) GE0/0/6(D)
GE0/0/7(D) GE0/0/8(D) GE0/0/9(D) GE0/0/10(D)
GE0/0/11(D) GE0/0/12(D) GE0/0/13(D) GE0/0/14(D)
GE0/0/15(D) GE0/0/16(D) GE0/0/17(D) GE0/0/18(D)
GE0/0/19(D) GE0/0/20(D) GE0/0/21(D) GE0/0/22(D)
GE0/0/23(D) GE0/0/24(D)
10 common UT: GE0/0/1(U)
20 common UT: GE0/0/2(U)
VID Status Property MAC-LRN Statistics Description
--------------------------------------------------------------------------------
1 enable  default enable disable VLAN 0001
10 enable default enable disable VLAN 0010
20 enable default enable disable VLAN 0020

另外,使用display port vlan命令也能查看每个接口的link type以及所加入的VLAN等信息。

3. VLAN及Trunk基础实验

在SW1、SW2上创建VLAN10及VLAN20,将交换机连接PC的接口配置为Access类型并添加到如图所示的VLAN。然后,将两台交换机互联的接口配置为Trunk类型,并放通相应的VLAN,使得相同VLAN内的PC能够直接通信。

SW1的配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#创建VLAN10VLAN20[SW1] vlan batch 10 20
#将GE0/0/1配置为access类型,并加入VLAN10[SW1] interface gigabitEthernet0/0/1
[SW1-GigabitEthernet0/0/1] port link-type access
[SW1-GigabitEthernet0/0/1] port default vlan 10
#将GE0/0/2配置为access类型,并加入VLAN20[SW1] interface gigabitEthernet0/0/2
[SW1-GigabitEthernet0/0/2] port link-type access
[SW1-GigabitEthernet0/0/2] port default vlan 20
#将GE0/0/24口配置为trunk类型,并且放行VLAN10VLAN20[SW1] interface gigabitEthernet0/0/24
[SW1-GigabitEthernet0/0/24] port link-type trunk
[SW1-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20

SW2的配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[SW2] vlan batch 10 20
[SW2] interface gigabitEthernet0/0/1
[SW2-GigabitEthernet0/0/1] port link-type access
[SW2-GigabitEthernet0/0/1] port default vlan 10
[SW2] interface gigabitEthernet0/0/2
[SW2-GigabitEthernet0/0/2] port link-type access
[SW2-GigabitEthernet0/0/2] port default vlan 20
[SW2] interface gigabitEthernet0/0/24
[SW2-GigabitEthernet0/0/24] port link-type trunk
[SW2-GigabitEthernet0/0/24] port trunk allow-pass vlan 10 20

完成上述配置后,同一个VLAN内的用户就能够互相通信了,例如PC1可以ping通PC3,而PC2也能够ping通PC4。但是不同的VLAN之间是无法互访的。

Hybrid 接口的配置

Hybrid是一种特殊的二层接口类型。与trunk类型的接口类似,hybrid类型的接口也能够承载多个VLAN的数据帧,而且它能够灵活的设置接口在发送数据帧时,是否携带tag。另一方面,hybrid类型的接口还能用于部署基于IP地址的VLAN划分。下面我们将针对几种使用场景,讲讲hrbrid接口的配置。

1. Hybrid接口用于连接终端PC

在上图中,PC1连接在SW1的GE0/0/1接口上,现在将SW1的GE0/0/1接口做如下配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[SW1] interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1] port link-type hybrid

以上命令将GE0/0/1接口配置为hybrid类型,以S5300交换机为例,接口缺省即为该类型,而且缺省将VLAN1设置为PVID(缺省VLAN),并且接口已经放通VLAN1(缺省就配置了port hybrid untaggedvlan 1)。因此在这个场景中,如果为SW1的Vlanif1配置一个192.168.10.0/24网段的IP地址,则PC1与SW1即可实现互通。此时PC1被认为属于VLAN1。

如果我们期望将PC1规划在VLAN10中,那么配置修改如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[SW1] interface GigabitEthernet 0/0/1
[SW1-GigabitEthernet0/0/1] port link-type hybrid
[SW1-GigabitEthernet0/0/1] port hybrid pvid vlan 10
[SW1-GigabitEthernet0/0/1] port hybrid untagged vlan 10
[SW1] interface Vlanif 10
[SW1-Vlanif10] ip address 192.168.10.3 24

上面配置中port hybrid pvid vlan 10命令用于将接口的PVID修改为10,这样当该接口收到PC1发送出来的untagged帧时,就会认为这些帧来自于VLAN10;

port hybrid untagged vlan 10命令则用于将该接口加入VLAN10,使得PC1所发送的数据帧能够进入GE0/0/1接口(被该接口接收)从而进入交换机,另外,这条命令还使得交换机在从GE0/0/1接口向外发送VLAN10的数据帧时,以untagged的方式发送。

因此完成上述配置后,PC1被认为属于VLAN10,并且能够ping通SW1的vlanif10接口IP地址:192.168.10.3。

值得注意的是,在PC1发送的数据帧进入交换机SW1之后,如果SW1将数据帧透传处理,那么该帧从GE0/0/15发出时,是否携带tag,则要根据GE0/0/15接口的配置而定。

2. Hybric接口用于连接交换机

在上图中,SW1及SW2分别连接着PC1及PC2,我们将两台交换机的GE0/0/1配置为access类型,并且都加入VLAN10。现在SW1的GE0/0/15被配置为trunk类型,并且放通了VLAN10:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[SW1-GigabitEthernet0/0/15] port link-type trunk
[SW1-GigabitEthernet0/0/15] port trunk allow-pass vlan 10

现在,来看看如果SW2的GE0/0/15接口采用hybrid类型该如何配置(纯粹为了讲解hybrid的配置而举例,通常我们会为链路两端的接口配置相同的类型)。

由于对端接口(SW1的GE0/0/15)以tagged的方式发送VLAN10的数据帧,因此SW2的GE0/0/15接口也必须将VLAN10以tagged的方式处理:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[SW2-GigabitEthernet0/0/15] port link-type hybrid
[SW2-GigabitEthernet0/0/15] port hybrid tagged vlan 10

port hybrid tagged vlan 10命令用于将GE0/0/15接口加入VLAN10,并且该VLAN的帧以Tagged方式通过接口。

现在考虑另一种情况,如下图所示:

SW1左侧连接着VLAN10、20以及1000,现在SW1的GE0/0/15做了如下配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[SW1-GigabitEthernet0/0/15] port link-type trunk
[SW1-GigabitEthernet0/0/15] port trunk allow-pass vlan 10 20 1000
[SW1-GigabitEthernet0/0/15] port trunk pvid vlan 1000

也即SW1在通过GE0/0/15往外发送数据帧时,对于VLAN10及VLAN20采用tagged帧的方式发送,而对于VLAN1000则采用untagged帧的方式发送,那么如果SW2采用hybrid接口与其对接,此时该接口的配置应该如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[SW2-GigabitEthernet0/0/15] port link-type hybrid
[SW2-GigabitEthernet0/0/15] port hybrid tagged vlan 10 20
[SW2-GigabitEthernet0/0/15] port hybrid pvid vlan 1000
[SW2-GigabitEthernet0/0/15] port hybrid untagged vlan 1000

3. 基于IP地址识别VLAN的功能

通常我们在划分VLAN时,是采用基于接口划分VLAN的方式,也就是通过命令,将交换机的接口加入某个特定的VLAN。某局点遇到个较为“特殊”的需求:在下图所示的网络中,SW2下挂着三台服务器,其中SW2连接Server1、Server2的接口是Access类型接口,而且接口加入了VLAN1;连接Server3的接口也是Access类型,但是加入了VLAN30。而SW2上联SW1的上行口则是Trunk类型接口,该接口放通了VLAN1及VLAN30,并且PVID为1。

如此一来,SW1将会在GE6/0/15接口上收到三种类型的流量,分别是源地址为10.10.10.0/24网段的无标记帧、源地址为10.10.20.0/24网段的无标记帧,以及VLAN30的标记帧。现在需求是,根据规划,将上述各个网段在核心交换机CoreSwitch上对应到不同的VLAN,并且实现服务器之间的相互通信。由于某种原因,SW2是无法被直接管理的,因此只能在SW1及CoreSwitch上完成配置。

实际的需求是,在SW1上完成相应的配置,使得其在GE6/0/15接口上收到源地址为10.10.10.0/24网段的数据时,将其识别为VLAN10的数据,收到源地址为10.10.20.0/24的数据时,将其识别为VLAN20的数据,而VLAN30的数据需为标记帧。因此需在SW1上部署基于IP地址的VLAN划分。当然,这个接口在发送VLAN10及VLAN20的数据帧时,不能打标记,而在发送VLAN30的数据帧时,则需要打标记。

SW1的配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[SW1] vlan batch 10 20 30
[SW1] vlan 10
[SW1-vlan10] ip-subnet-vlan ip 10.10.10.0 24 #配置子网与VLAN的对应关系:
[SW1] vlan 20
[SW1-vlan20] ip-subnet-vlan ip 10.10.20.0 24 #配置子网与VLAN的对应关系:
[SW1-GigabitEthernet6/0/15] port link-type hybrid
[SW1-GigabitEthernet6/0/15] port hybrid untagged vlan 10 20 #以无标记帧的方式发送VLAN1020的数据
[SW1-GigabitEthernet6/0/15] port hybrid tagged vlan 30 #以标记帧的方式发送VLAN30的数据
[SW1-GigabitEthernet6/0/15] ip-subnet-vlan enable #配置基于IP地址划分VLAN
[SW1] interface GigabitEthernet 6/0/22
[SW1-GigabitEthernet6/0/22] port link-type trunk
[SW1-GigabitEthernet6/0/22] port trunk allow-pass vlan 10 20 30

CoreSwitch的配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
[CoreSwitch] vlan batch 10 20 30
[CoreSwitch] interface Vlanif 10
[CoreSwitch-Vlanif10] ip address 10.10.10.254 255.255.255.0
[CoreSwitch] interface Vlanif 20
[CoreSwitch-Vlanif20] ip address 10.10.20.254 255.255.255.0
[CoreSwitch] interface Vlanif 30
[CoreSwitch-Vlanif30] ip address 10.10.30.254 255.255.255.0
[CoreSwitch] interface GigabitEthernet 6/0/22
[CoreSwitch-GigabitEthernet6/0/22] port link-type trunk
[CoreSwitch-GigabitEthernet6/0/22] port trunk allow-pass vlan 10 20 30

QinQ

在上图中,CE1及CE2两台交换机都部署了VLAN10。两台交换机分别接入了SW1及SW2。SW1及SW2是两台公网交换机,且连接着其他设备,为了保证CE1及CE2能够在VLAN10中实现二层通信,而且不与其他设备产生冲突,公网为该业务分配了外层VLAN160。

在SW1及SW2上部署QinQ使得CE1能够访问CE2。图中的交换机以S5700 V2R1C00版本为例。SW1的配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vlan batch 160
interface GigabitEthernet0/0/1
port link-type dot1q-tunnel
port default vlan 160
interface GigabitEthernet0/0/24
description Link to SW2
port link-type trunk
port trunk allow-pass vlan 160
qinq protocol 8100 #缺省情况下,外层VLAN Tag的TPID值为0x8100

SW2的配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vlan batch 160
interface GigabitEthernet0/0/1
port link-type dot1q-tunnel
port default vlan 160
interface GigabitEthernet0/0/24
description Link to SW1
port link-type trunk
port trunk allow-pass vlan 160
qinq protocol 8100 #缺省情况下,外层VLAN Tag的TPID值为0x8100

CE1的配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vlan batch 10
interface GigabitEthernet0/0/24
port link-type trunk
port trunk allow-pass vlan 10
interface Vlanif10
ip address 10.1.1.1 255.255.255.0

CE2的配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vlan batch 10
interface GigabitEthernet0/0/24
port link-type trunk
port trunk allow-pass vlan 10
interface Vlanif10
ip address 10.1.1.2 255.255.255.0

完成上述配置后,从CE1即可ping通10.1.1.2。在SW1及SW2之间可捕获如下ICMP Request报文:留意到该报文携带两层VLAN-Tag,其中外层VLAN-ID为160,而内层为10。

在不同的网络规划或不同厂商设备的QinQ报文中,VLAN-Tag的TPID字段可能被设置为不同的值。为了和现有网络规划兼容,设备提供了QinQ报文外层VLAN-Tag的TPID值可修改的功能。用户通过配置TPID的值,使得发送到公网中的QinQ报文携带的TPID值与当前网络配置相同,从而实现与现有网络的兼容。

再看另一个例子,拓扑如下图所示。网络中的需求是,CE1发往SW1的数据帧中,携带VLAN-Tag 10的流量增加一层VLAN-Tag,外层VLAN-Tag为160;携带VLAN-Tag 20的流量增加一层VLAN-Tag,外层VLAN-Tag为170。

SW1的配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vlan batch 160 170
interface GigabitEthernet0/0/1
qinq vlan-translation enable
port hybrid untagged vlan 160 170
port vlan-stacking vlan 10 stack-vlan 160
port vlan-stacking vlan 20 stack-vlan 170
interface GigabitEthernet0/0/24
description Link to SW2
port link-type trunk
port trunk allow-pass vlan 160 170
qinq protocol 8100

SW2的配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vlan batch 160 170
interface GigabitEthernet0/0/1
qinq vlan-translation enable
port hybrid untagged vlan 160 170
port vlan-stacking vlan 10 stack-vlan 160
port vlan-stacking vlan 20 stack-vlan 170
interface GigabitEthernet0/0/24
description Link to SW1
port link-type trunk
port trunk allow-pass vlan 160 170
qinq protocol 8100

CE1的配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vlan batch 10 20
interface GigabitEthernet0/0/24

port link-type trunk
port trunk allow-pass vlan 10 20
interface Vlanif10
ip address 10.1.1.1 255.255.255.0
interface Vlanif20
ip address 20.1.1.1 255.255.255.0

CE2的配置如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vlan batch 10 20
interface GigabitEthernet0/0/24
port link-type trunk
port trunk allow-pass vlan 10 20
interface Vlanif10
ip address 10.1.1.2 255.255.255.0
interface Vlanif20
ip address 20.1.1.2 255.255.255.0

二层接口、三层接口、以及 PVID、VLAN-ID 等概念杂谈

  • 二层接口,可以简单理解为只具备二层交换能力的接口,例如二层交换机的物理接口,或者三层交换机的物理接口(一般而言,这些接口缺省时为二层模式,某些款型具备切换为三层模式的能力)。
  • 二层接口不能直接配置IP地址,并且不直接终结广播帧(目的MAC地址为广播MAC地址FFFF-FFFF-FFFF的数据帧)。二层接口收到广播帧后,会将其从同属一个广播域(VLAN)的所有其他接口泛洪出去。
  • 三层接口维护IP地址与MAC地址。
  • 三层接口会终结广播帧,三层接口在收到广播帧后,不会进行泛洪处理。
  • 二层接口在收到单播帧后,会在MAC地址表中查询该数据帧的目的MAC地址,然后依据表项指引进行转发,如果没有任何表项匹配,则进行泛洪。三层接口在收到单播帧后,首先判断其目的MAC地址是否为本地MAC地址,如果是,则将数据帧解封装,并解析出报文目的IP地址,然后进行路由查询及转发。因此二层接口与三层接口在数据处理行为上也存在明显差异。
  • 二层接口有几种类型(这里说的是以太网二层接口):access、trunk、hybrid。三层接口则没有上述类型。
  • 三层接口有物理形态的,也有逻辑形态的,典型的物理接口如路由器的三层物理端口;逻辑接口如VLANIF,以及以太网子接口,例如GE0/0/1.1。等等。VLANIF与其关联的VLAN的VLAN-ID对应,而以太网子接口,通常也会绑定相应的VLAN-ID,从而与相应的VLAN对接。这两种典型的三层接口均可以直接配置IP地址。

此外:

  • 在以太网二层交换网络里,VLAN是一个非常基础的东西。每个VLAN都是一个逻辑的广播域,每个VLAN都使用对应的ID进行标识,这是VLAN-ID。
  • 接口缺省VLAN标识,即PVID(Port Default VLAN ID),指的是二层接口上的缺省VLAN-ID(每个二层接口上有且只有一个VLAN-ID作为PVID),也就是说,PVID必定是某一个具体VLAN的VLAN-ID。PVID的作用是,当这个二层接口收到了流量,并且该流量不携带任何802.1Q Tag(VLAN-ID信息),该接口便认为这些流量属于PVID对应的VLAN。当然,PVID还会影响接口发送数据帧,这里不再赘述。缺省情况下,所有接口的PVID均为VLAN1。
    • 对于Access接口,缺省VLAN就是它允许通过的VLAN,修改接口允许通过的VLAN即可更改接口的缺省VLAN。
    • 对于Trunk接口和Hybrid接口,一个接口可以允许多个VLAN通过,但是只能有一个缺省VLAN,修改接口允许通过的VLAN不会更改接口的缺省VLAN。
  • 三层接口未必一定对应VLAN-ID。例如路由器的三层物理接口,这种类型的接口无需配置VLAN-ID。
  • 在三层交换机上(路由器或防火墙等设备,也有支持VLANIF的款型),每个VLAN都有对应的VLANIF,VLANIF指的是VLAN对应的逻辑三层接口,这个三层接口在VLAN被创建后,可以直接赋予IP地址,且具备路由转发能力。一个VLAN对应一个VLANIF,VLAN与VLANIF的标识相同。VLAN内的终端设备,可以与该VLAN对应的VLANIF直接进行二层通信。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-11-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 网络技术联盟站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
ENVI 5.6中文版下载及安装,ENVI遥感图像分析软件功能介绍
Envi软件是一款功能强大、广泛应用于遥感图像处理和分析领域的软件。Envi软件包含多种独特功能,这些功能可以帮助用户更好地进行遥感图像处理和分析工作。在本文中,我们将通过实际案例,举例说明Envi软件的几个独特功能,并介绍其在实际应用中的价值。
优木软件
2023/05/06
8890
遥感图像处理ENVI软件安装包下载,ENVI 5.6中文版电脑下载安装
ENVI软件是由美国ITT公司开发的一款基于遥感技术的图像处理软件,其具有多种高级遥感图像分析和处理功能,被广泛应用于地球科学、生态环境等领域。本论文将介绍ENVI软件的特色功能和使用方法,并以一个实例来演示ENVI软件的使用流程,包括其数据输入、遥感图像分析和处理等环节的操作步骤。最后,我们将对ENVI软件的优点和不足进行探讨。
用户10413399
2023/04/18
1.2K0
卫星遥感影像处理分析软件ENVI 5.6中文版下载安装,ENVI软件下载
ENVI软件是一款广泛用于遥感影像处理和分析的可视化软件,具有多种功能和工具,如图像增强、特征提取、分类分析等。本文将介绍ENVI软件的主要功能及其应用领域,并通过实际案例进行举例说明,探讨其在遥感领域中的应用价值。
用户10413399
2023/04/14
8750
envi软件是干什么的?ENVI遥感图像处理,ENVI软件下载安装教程
ENVI是一款专业的遥感图像分析软件,可以帮助我们对卫星遥感图像进行各种复杂的分析和处理。如果你是一名遥感工作者或者需要处理遥感图像,那么ENVI将是你的不二选择。
用户10436734
2023/03/31
1.5K0
envi软件是干什么的?ENVI遥感图像处理,ENVI软件下载安装教程
【卫星遥感图像处理】ENVI 软件安装包下载及安装激活
ENVI 是一种专业的遥感影像处理软件,能够处理不同分辨率的遥感影像数据,并提供高级的遥感分析工具。该软件广泛应用于农业、林业、水资源、城市规划、环境监测等领域,为用户提供了高效、准确的遥感影像处理和分析服务。本文将从软件的独特竞争力和使用方法两个方面进行详细讨论,并结合实际案例进行说明。
用户10413399
2023/04/22
7350
ENVI软件下载,遥感数据分析软件ENVI 5.6激活版电脑下载安装教程
遥感技术是一种快速发展的科技领域,具有广泛的应用前景。随着卫星技术和遥感数据采集技术的不断发展,遥感数据的处理变得越来越重要。ENVI软件作为一款专业的遥感数据处理软件,提供了丰富的功能和高效的处理能力,可以有效提高遥感数据处理效率,使处理结果更加准确可靠。本文将从软件的功能与应用入手,详细介绍ENVI软件在遥感数据处理中的应用。
用户10436734
2023/04/13
1.4K0
【专业卫星遥感图像分析】ENVI软件中文版下载安装,ENVI功能介绍
ENVI软件是一款专业的遥感图像处理软件,它可以帮助用户分析和解释从航空器、卫星和无人机等传感器获得的遥感数据。ENVI软件提供了许多独特的功能,以帮助用户更好地理解数据。在本文中,我将结合实际案例,讲解ENVI软件的几大独特功能。
优木软件
2023/05/05
1K0
卫星遥感数据分析 ENVI 软件安装包下载,ENVI安装激活
遥感技术已成为研究和了解地球表面和大气的重要工具。ENVI软件是一款领先的软件包,为专业人员提供分析和处理遥感数据所需的必要工具。ENVI软件已被广泛应用于农业、地质、林业和城市规划等各个领域。本文将探索ENVI软件的特点和使用方法,并提供一个具体的使用案例,演示如何使用ENVI软件进行遥感数据分析。
用户10436734
2023/04/20
6370
卫星遥感图像处理工具 ENVI软件5.6中文版下载安装
ENVI是一款专业的遥感图像处理软件,已经成为了遥感图像处理领域最为流行和实用的软件之一。它具有非常强大的图像处理、数据分析以及图像可视化等功能,同时还支持多种格式的遥感图像数据导入和导出,可以满足用户对遥感数据处理和分析的各种需求。本文将对ENVI的主要功能和使用技巧进行介绍,并结合实际案例进行详细说明。
优木软件
2023/04/24
1K0
ENVI遥感影像预处理与大气校正算法对比
本文介绍基于ENVI软件,实现对Landsat 7遥感影像加以预处理与多种不同大气校正方法的操作。
疯狂学习GIS
2025/04/30
2460
ENVI遥感影像预处理与大气校正算法对比
ENVI软件中文版下载安装,遥感图像处理ENVI软件下载
ENVI软件是一款广泛应用于遥感图像处理的软件,本文首先介绍了ENVI软件的基本功能和应用领域,并详细讲述了如何进行ENVI软件的安装和配置;随后围绕着ENVI软件的图像预处理、分类和变换方面进行了详细介绍,并通过实际案例演示以及对结果的评估,验证了ENVI软件的实用性和强大功能。
用户10410624
2023/04/27
1.1K0
AI+遥感智能解译,赋能智慧城市规划革新
在新型城市建设和规划中,以卫星遥感图像处理为代表的地理信息技术正在发挥非常重要的作用,通过对城市范围内的人、事件、基础设施和环境等要素全面感知、实时动态识别和快速目标提取,为智慧城市的建设提供更多有价值的信息。当前,基于人工智能的遥感图像处理技术已被广泛地应用在城市规划、违章建筑监管、工程环境监测、废弃物管理、交通治理、城市安防等场景。
郭好奇同学
2022/04/12
1.1K0
AI+遥感智能解译,赋能智慧城市规划革新
最新ENVI遥感图像处理工作站集群硬件配置推荐
ENVI 是图像处理和分析软件的行业标准。图像分析师、GIS专业人员和科学家使用它从地理空间图像中提取及时、可靠和准确的信息。
wdf8088
2022/03/22
2.3K0
ENVI软件是干什么的?卫星遥感数据分析ENVI软件下载
随着卫星遥感技术的不断发展,大量的遥感数据被获取并广泛应用于资源调查、环境监测、灾害评估等领域。然而,由于遥感数据复杂多样,处理方式繁琐,因此需要借助专业的遥感数据处理软件来实现数据的分析和应用。ENVI软件作为一款专业的遥感数据处理工具,具有强大的数据处理和分析能力,成为遥感数据处理领域不可替代的工具之一。本文将结合实际案例,介绍ENVI软件在遥感数据处理中的应用和操作方法,并提供实用的技巧和建议。
优木软件
2023/04/28
1.3K0
QGIS文章四——对遥感影像进行土地类型分类
一、按照国家土地性质分类标准,一般分五类:商业用地、综合用地、住宅用地、工业用地和其他用地。
python与大数据分析
2023/10/06
3.2K0
QGIS文章四——对遥感影像进行土地类型分类
ENVI实现Landsat大气校正法地表温度反演
本文介绍基于ENVI软件,实现对Landsat 7遥感影像加以大气校正方法的地表温度反演操作。
疯狂学习GIS
2025/05/08
1950
ENVI实现Landsat大气校正法地表温度反演
覆盖5大任务,30+特色模型,高性能、全流程开发套件PaddleRS助力遥感影像智能解译化繁为简
近年来,随着卫星技术的发展和深度学习的火热,基于深度学习的遥感影像智能解译得到了前所未有的关注,并已成功应用于建筑物变化检测、SAR影像船舶检测、道路提取、多光谱影像分类等任务中。高精度、高速度、自动化的特点为其带来广阔的发展前景。
用户1386409
2022/11/29
1.3K0
覆盖5大任务,30+特色模型,高性能、全流程开发套件PaddleRS助力遥感影像智能解译化繁为简
遥感学习武林秘籍分享
本期分享的内容,为一本厚度为235页的学习资料。内容包括高光谱遥感、高分辨率影像处理、计算智能及其在遥感影像处理中的应用、影像处理工程、遥感应用和模式分析与机器学习等。很适合遥感领域的学生学者去学习和加深对遥感领域的理解,资料供分为18章节,每一章都值得研究和学习,章节内容包括研究概述、研究意义、应用、已取得的成、发展前景和入门资料的推荐等。该学习资料本人强烈推荐学习,希望能够本次料能够开阔你的事业并激发你的学习兴趣。(资料为张良培团队(张良培、钟燕飞、沈焕锋、黄昕、罗斌、夏桂松、杜博、张洪艳、袁强强和张乐飞等)在其主页上公布的主要研究方向介绍。)
遥感大数据学习
2022/09/20
7170
《深度揭秘:生成对抗网络如何重塑遥感图像分析精度》
在当今数字化时代,遥感图像作为获取地球表面信息的重要数据源,广泛应用于城市规划、农业监测、环境评估等诸多领域。然而,如何从海量的遥感数据中提取高精度的信息,一直是学术界和工业界共同面临的挑战。生成对抗网络(GAN)的出现,为提升人工智能在遥感图像分析中的精度开辟了全新的路径。
程序员阿伟
2025/02/27
1240
MATLAB R2023a中文版下载安装,专业数学计算软件MATLAB使用介绍
MATLAB是一款被广泛应用于科学计算、数据分析和工程设计等领域的软件。它具有强大的数学计算能力,支持矩阵运算、曲线拟合、图像处理、信号处理等功能。在本文中,我们将通过举例的方式介绍MATLAB的特色功能和使用方法。
用户10410624
2023/05/02
6780
推荐阅读
相关推荐
ENVI 5.6中文版下载及安装,ENVI遥感图像分析软件功能介绍
更多 >
LV.0
这个人很懒,什么都没有留下~
目录
  • VLAN 的基本概念
  • Access 类型的接口
  • Trunk 类型的接口
  • 接口类型小结
    • 1. 以太网交换机的二层接口类型
    • 2. Access口接收帧
    • 3. Access口发送帧
    • 4. Trunk口接收帧
    • 5. Trunk口发送帧
    • 6. Hybrid口接收帧
    • 7. Hybrid口发送帧
  • VLAN 及 Trunk 的基础配置
    • 1. VLAN相关的基础配置命令
    • 2. VLAN基础配置示例
    • 3. VLAN及Trunk基础实验
  • Hybrid 接口的配置
    • 1. Hybrid接口用于连接终端PC
    • 2. Hybric接口用于连接交换机
    • 3. 基于IP地址识别VLAN的功能
  • QinQ
  • 二层接口、三层接口、以及 PVID、VLAN-ID 等概念杂谈
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档