《保证一篇搞懂QinQ》[理论+2实验]

QinQ理论

一、技术背景

  • 在大型局域网或城域网中,存在 vlan 数量不够用的情况。

  • 某些企业的多个分支机构需要通过运营商网络来透传 vlan 信息。

二、定义

  • 802.1Q in 802.1Q,是一种简易的实现基于 vlan 的二层 vpn 技术。

  • 将一层 vlan Tag 封装到私网报文上,使报文携带两层 VLAN Tag 穿越运营商网络,从而让运营商能够利用一个 VLAN 来为包含多个 VLAN 的用户网络提供服务。

三、技术优势

  • 缓解公网 VLAN 资源不足,使私网 vlan 可以重复使用。

  • 隔离公网与私网 vlan。

  • 用户不感知公网 vlan,维护管理简便。

四、工作原理

  • 用户私网报文携带自身私网 vlan tag 进入运营商网络。

  • 运营商设备为该报文再封装一个公网 VLAN Tag,不同用户的报文封装上不同的公网 VLAN;运营商设备根据公网进行传输。

  • 报文离开运营商网络前剥离公网 vlan tag,使之还原为原始私网报文,发送至另一侧用户网络。

五、QinQ 报文结构

img

  • 目的 MAC 地址。

  • 源 MAC 地址。

  • Service VLAN Tag:

    • 公网 VLAN Tag。

  • Customer VLAN Tag:

    • 私网 vlan Tag,在公网中被屏蔽。

  • DATA。

  • FCS。

  • Tag。

六、Qinq 分类

  • 基本 QinQ

    • 无论该端口收到的报文是否携带 VLAN Tag,设备都会为其打上本端口 PVID 的 Tag。

    • 如果收到携带 VLAN Tag 的帧,则该帧会形成双 Tag 帧;如果收到未携带 Tag 的帧,则该帧会形成只携带一层 Tag 的帧。

  • 灵活 QinQ

    • 对于从同一个端口收到的报文,可以根据 Customer VLAN 的不同,打上不同 Service VLAN 的 Tag。

    • 可根据报文内层 VLAN Tag 的 802.1q 优先级来标记外层 VLAN Tag 的 802.1q 优先级。

七、VLAN 透传功能

  • 在基本 QinQ 中,可以配置不为用户私网报文添加公网 vlan Tag,而直接传输用户私网 vlan 报文,适用于企业专线业务。

  • 注意事项

    • 配置 VLAN 透传功能时,需要在报文传输路径的所有端口上都配置允许透析 vlan 通过。

    • 配置了用户侧端口对指定 vlan 报文进行透析后,不要在该端口上对在这些 vlan 再进行修改报文 vlan 的相关配置。

    • 同一接口上透传 vlan 和 vlan 映射表中的外层 vlan 不允许相同。

八、BPDU 透传

  • 技术背景

    • BPDU 使用组播发送,交换机默认广播处理,不区分 VLAN,会导致运营商网络连接的所有用户的私有网络都运行在同一个 STP 下,造成网络混乱。

  • 技术原理

    • PE(运营商边缘设备)收到 BPDU 后,把目的 MAC 地址从 0180-C200-0000 修改为特殊的组播 MAC 地址,一般默认修改为 010F-E200-0003,使得运营商网络设备把 BPDU 当作普通数据帧进行传输。

    • BPDU 离开运营商网络前,PE 将目的 MAC 地址还原为 0180-C200-0000,转发至指定用户的网络。

九、VLAN Mapping

  • vlan 映射,也称 vlan 转换,通过配置映射关系,实现对报文 vlan id 的修改,或添加指定 VLAN Tag。

  • 1:2 映射

    • 为本身携带有一层 VLAN Tag 的报文添加指定的外层 VLAN Tag,使报文携带两层 vlan tag。

    • 主要用于实现 QinQ,应用很广泛。

HCL实验

基本QinQ

  • 实验拓扑

    image-20241128211845396

  • 注意:

    • 此实验需要在模拟器中使用交换机型号 S6850

  • 实验需求:

    1. 按照图示配置IP地址

    2. 在 CE1和 CE2上配置连接 PC 的接口加入 VLAN 10和VLAN20

    3. 在 PE1和PE2 上配置基本 QinQ,为收到的来自 VLAN 10和VLAN20 的帧打上 VLAN 100 的 Tag,并在发出时剥离 Tag,分别实现两端 VLAN 10 和VLAN20各自的 PC 互通

  • 实验解法

    1. 配置IP地址

    2. 如图在 CE1和 CE2 上创建 VLAN 10和VLAN20,把连接 PC 的接口以 Access 类型加入对应的 VLAN 10和VLAN20,连接上行交换机的接口配置为 Trunk,并允许 VLAN 10 和 VLAN20通过,步骤略

    3. 配置 QinQ,为收到的来自 VLAN 10 和 VLAN20 的帧打上 VLAN 100 的 Tag,并在发出时剥离 Tag,实现两端 VLAN 10和VLAN20 各自的 PC 互通

      步骤 1:在 PE上创建 VLAN 100,配置连接 用户 的接口类型为 Trunk,允许 VLAN 100 通过,并把接口 PVID 设置为 VLAN 100。并在该端口上使能 QinQ
      步骤 2:在 PE 上配置连接 P设备 的接口类型为 Trunk,运行 VLAN 100 通过
      步骤 3:在 P设备 上创建 VLAN 100,把连接 PE 和 SW3 的接口都配置为 Trunk,并允许 VLAN 100 通过
      ​
      [PE1]int g1/0/1
       port link-type trunk
       port trunk permit vlan  100
       port trunk pvid vlan 100 把接口PVID设置成100
       qinq enable  --在接口上使能qinq
      [PE1]int g1/0/2
       port link-type trunk
       port trunk permit vlan  100
       
      [PE2]int g1/0/2
       port link-type trunk
       port trunk permit vlan 100
       port trunk pvid vlan 100
       qinq enable
      [PE2]int g1/0/1
       port link-type trunk
       port trunk permit vlan  100
       
       
      [P]vlan 100
      [P]int range g1/0/1 g1/0/2
      [P-if-range]port link-type trunk 
      [P-if-range]port trunk permit vlan 100
  • 验证效果:

    • 在PE连接P设备的链路上开启抓包,让PC6pingPC8,PC7pingPC9,发现icmp报文分别被封装了VLAN10,VLAN20的内层tag和VLAN100的外层tag

      image-20241128213705319

      image-20241128213805776

灵活QinQ

  • 实验拓扑

    image-20241128213853170

  • 注意

    • 此实验需要在模拟器中使用交换机型号 S6850

  • 实验需求

    1. 按照图示配置IP地址

    2. 按照图示在 CE 上配置连接 PC 的接口分别加入 VLAN 10 和 VLAN 20

    3. 在 PE上通过 VLAN Mapping 方式配置灵活 QinQ,为收到的来自 VLAN 10 的帧打上 VLAN 100 的 Tag,来自 VLAN 20 的帧打上 VLAN 200 的 Tag,实现两端 VLAN 10 和 VLAN 20 的 PC 互通

  • 实验解法

    1. 配置 IP 地址部分略

    2. 在 CE 上创建 VLAN 10 和 VLAN 20,把连接 PC6 和 PC8 的接口以 Access 类型加入 VLAN 10,连接 PC7 和 PC9 的接口加入 VLAN 20,连接上行交换机的接口配置为 Trunk,并允许 VLAN 10 和 VLAN 20 通过,步骤略

    3. 配置灵活 QinQ,为收到的来自 VLAN 10 的帧打上 VLAN 100 的 Tag,来自 VLAN 20 的帧打上 VLAN 200 的 Tag,实现两端 VLAN 10 和 VLAN 20 的 PC 互通

      步骤 1:在 PE上创建 VLAN 10、VLAN 20、 VLAN 100 和 VLAN 200,配置连接CE 的接口类型为 Hybrid,Tagged 放行 VLAN 10 和 VLAN 20,Untagged 放行 VLAN 100 和 VLAN 200
      步骤 2:在 PE的接口上配置 VLAN Mapping,把 VLAN 10 映射至 VLAN 100,VLAN 20 映射至 VLAN 200
      步骤 3:配置 PE连接P 的接口类型为 Trunk,允许 VLAN 100 和 VLAN 200 通过
      步骤 4:在 P上创建 VLAN 100 和 VLAN 200,把连接 SW1 和 SW3 的接口都配置为 Trunk,并允许 VLAN 100 和 VLAN 200 通过
      ​
      [PE1]
      [PE1]vlan 10 
      [PE1-vlan10]vlan 20
      [PE1-vlan20]vlan 100
      [PE1-vlan100]vlan 200
      [PE1-vlan200]int g1/0/1
      [PE1-GigabitEthernet1/0/1]port link-type hybrid 
      [PE1-GigabitEthernet1/0/1]port hybrid vlan 10 20 tagged 
      [PE1-GigabitEthernet1/0/1]port hybrid vlan 100 200 untagged 
      ​
      [PE1-GigabitEthernet1/0/1]vlan mapping nest single 10 nested-vlan 100
      [PE1-GigabitEthernet1/0/1]vlan mapping nest single 20 nested-vlan 200
      ​
      [PE1]int g1/0/2
      [PE1-GigabitEthernet1/0/2]port link-type trunk 
      [PE1-GigabitEthernet1/0/2]port trunk permit vlan 100  200
      ​
      ​
      [PE2]
      [PE2]vlan 10 
      [PE2-vlan10]vlan 20
      [PE2-vlan20]vlan 100
      [PE2-vlan100]vlan 200
      [PE2-vlan200]int g1/0/2
      [PE2-GigabitEthernet1/0/2]port link-type hybrid 
      [PE2-GigabitEthernet1/0/2]port hybrid vlan 10 20 tagged 
      [PE2-GigabitEthernet1/0/2]port hybrid vlan 100 200 untagged 
      ​
      [PE2-GigabitEthernet1/0/2]vlan mapping nest single 10 nested-vlan 100
      [PE2-GigabitEthernet1/0/2]vlan mapping nest single 20 nested-vlan 200
      ​
      [PE2]int g1/0/2
      [PE2-GigabitEthernet1/0/1]port link-type trunk 
      [PE2-GigabitEthernet1/0/1]port trunk permit vlan 100  200
      ​
      [P]
      [P]vlan 100
      [P-vlan100]vlan 200
      [P]int range g1/0/1 g1/0/2
      [P-if-range]port link-type trunk 
      [P-if-range]port trunk permit vlan 100 200
  • 验证效果:在 PE连接P的链路上开启抓包后,使用 PC6 Ping PC8,可以发现 ICMP 报文分别被封装了 VLAN 10 和 VLAN 100 的 Tag;使用 PC7 Ping PC9,可以发现 ICMP 报文分别被封装了 VLAN 20 和 VLAN 200 的 Tag

    image-20241128215856300

    image-20241128215925321

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值