「Huawei VRP」- 配置 LLDP 服务

[AR1] lldp enable

[AR2] lldp enable

<AR2>display lldp neighbor
GigabitEthernet0/0/0 has 1 neighbors:

Neighbor index : 1
Chassis type :macAddress
Chassis ID :00e0-fc75-60bf
Port ID type :interfaceName
Port ID :GigabitEthernet0/0/0
Port description :HUAWEI, AR Series, GigabitEthernet0/0/0 Interface
System name :AR1
System description :Huawei AR2220 Huawei Versatile Routing Platform Software V
RP (R) software,Version 5.130 (AR2220 V200R003C00) Copyright (C) 2011-2012 Huawe
i Technologies Co., Ltd
System capabilities supported :bridge
System capabilities enabled :bridge
Management address type :all802
Management address : 00e0-fc75-60bf
Expired time :110s

Auto-negotiation supported :Yes
Auto-negotiation enabled :Yes
OperMau :speed(100)/duplex(Full)

Power port class :PD
PSE power supported :No
PSE power enabled :No
PSE pairs control ability:No
[…]

<AR2>display lldp neighbor brief
Local Intf Neighbor Dev Neighbor Intf Exptime
GE0/0/0 AR1 GE0/0/0 106[……]

READ MORE

「PPPoE」- Point-to-Point Protocol over Ethernet

问题描述
运营商希望把一个站点上的多台主机连接到同一台远程接入设备,同时接入设备能够提供与拨号上网类似的访问控制和计费功能。
在众多的接入技术中,把多个主机连接到接入设备的最经济的方法就是以太网,而PPP协议可以提供良好的访问控制和计费功能。
解决方案
于是产生了在以太网上传输PPP报文的技术,即 PPPoE 协议。PPPoE 能够使以太网网络中的多台主机连接到远端的宽带接入服务器。
原理简述
PPPoE(PPP over Ethernet,以太网承载PPP协议)是种把 PPP 帧封装到以太网帧中的链路层协议。将 PPP 报文封装在以太链路中,并进行传输。
协议特性
PPPoE集中了PPP和Ethernet两个技术的优点:既有以太网的组网灵活优势,又能利用 PPP 协议实现认证、计费等功能。

应用场景
PPPoE实现了在以太网上提供点到点的连接。PPPoE Client 与 PPPoE 服Server 之间建立 PPP 会话,封装PPP数据报文,为以太网上的主机提供接入服务,实现用户控制和计费,在企业网络与运营商网络中应用广泛。 拨号上网:PPPoE的常见应用场景有家庭用户拨号上网、企业用户拨号上网等。
报文格式

PPPoE = PPPoE Header + PPP Packet (Payload)
PPPoE Header
Ver、Type、Length
Session ID:用于区分会话所属客户端;

PPP Packet (Payload)
WIP
协议细节:PPPoE 会话建立
PPPoE 发现,PPPoE 协商
解释:发现 PPPoE Server,用户接入,创建 PPPoE 虚拟链路。
PPPoE 协议发现有四个步骤:客户端发送请求、服务端响应请求、客户端确认响应、建立会话。

PPPoE 会话,PPP 协商
解释:协商阶段包括(1)LCP 协商、(2)PAP/CHAP 认证、(3)NCP 协商
在整个会话阶段,由 PPPoE Server 分配的 Session ID 值保持不变。

PPPoE 终结,PPPoE 断开
解释:用户下线,客户端断开连接或者服务器端断开连接。
当 PPPoE Client 希望关闭连接时,会向 PPPoE Server 发送 PADT 报文,用于关闭连接。反之亦然。 在 PADT 中,通过携带 Session ID 值来标识需要关闭的会话。

参考文献
Point-to-Point Protocol over Ethernet – Wikipedia[……]

READ MORE

「Huawei VRP」- PPPoE

配置命令(Huawei)
PPPoE Server

# 添加认证用户信息
[R2]aaa
[R2-aaa]local-user huawei1 password cipher huawei123
[R2-aaa]local-user huawei1 service-type ppp

# 创建地址池,指定分配的地址和网关
[R2]ip pool pool1
[R2-ip-pool-pool1]network 192.168.1.0 mask 255.255.255.0
[R2-ip-pool-pool1]gateway-list 192.168.1.254

# 创建虚拟模板接口
[R2]interface Virtual-Template 1
[R2-Virtual-Template1]ppp authentication-mode chap # 配置认证模式
[R2-Virtual-Template1]ip address 192.168.1.254 255.255.255.0 # 地址池 相关配置
[R2-Virtual-Template1]remote address pool pool1 #

# 接口 PPPoE Server 绑定
[R2-GigabitEthernet0/0/0]pppoe-server bind virtual-template 1

Client

# 创建拨号接口并配置被认证方用户名和密码
[R1]dialer-rule
[R1-dialer-rule]dialer-rule 1 ip permit

[R1]interface dialer 1
[R1-Dialer1] dialer user enterprise
[R1-Dialer1] dialer bundle 1
[R1-Dialer1] dialer-group <dialer-rule id>
[R1-Dialer1] ppp chap user enterprise
[R1-Dialer1] ppp chap password cipher huawei123
[R1-Dialer1] ip address ppp-negotiate

# 拨号接口绑定出接口:
[R1-GigabitEthernet0/0/1]pppoe-client dial-bundle-number 1

# 配置本端到达服务器端的缺省路由:
[R1]ip route-static 0.0.0.0 0.0.0.0[……]

READ MORE

「STP」- 生成树协议,Spinning Tree Protocol,IEEE 802.1d

问题描述

1)为了提高网络可靠性,交换网络中通常会使用冗余链路,然而冗余链路会给交换网络带来环路风险 2)除了链路冗余导致的环路,人为错误也会导致环路;
环路会带来如下经典问题,进而影响用户通信质量: 1)广播风暴:主机收到重复数据帧。当交换机未产生 MACTable 条目前,数据包会在多个端口上进行泛洪。此时,经过系列转发,数据包有回到原交换机; 2)MAC 地址表震荡:发生广播风暴,某个数据包(SRC-MAC)频繁从不同端口出现,导致 MacTable 的条目会频繁发生变化;
当出现二层环路时,可能会有如下现象产生: 1)设备无法远程登录; 2)在设备上使用 display interface 命令查看接口统计信息时发现接口收到大量广播报文; 3)使用串口登录设备进行操作时,操作比较慢; 4)CPU 占用率超过 70%; 5)通过 ping 命令进行网络测试时丢包严重; 6)设备上发生环路的 VLAN 的接口指示灯频繁闪烁; 7)PC 机上能收到大量的广播报文; 8)设备部署环路检测后,设备出现环路告警;
解决方案
STP(Spanning Tree Protocol,生成树协议),能够在提高可靠性的,同时又能避免环路带来的各种问题;
原理简述
对于运行 STP 协议的设备: 1)它们间相互交互报文,以发现环路(选取最佳路径); 2)然后,有选择地对端口进行阻塞,以将环形网络接口修剪成无环路的树形网络结构;
特性特征
既能解决二层环路问题,同时还能动态地适应根据网络拓扑变更也为网络的冗余性提供一种方案;
防止环路:在网络中部署 STP 后,交换机之间会进行 STP Packet 的交互并进行无环拓扑计算,最终将网络中的某个(或某些)接口进行阻塞(Block),从而打破环路;
链路冗余:在交换机上运行的 STP 会持续监控网络的拓扑结构。当网络拓扑结构发生变化时,生成树能感知到这些变化,并且自动做出调整;
应用场景
1)消除环路:STP 通过阻塞端口来消除环路,并能够实现链路备份的目录。阻塞端口,指端口不转发数据,进入逻辑阻塞状态; 2)链路备份:当链路异常,交换机会将阻塞端口切换为转发状态;
在园区网络中,生成树协议的工作范围:接入层、汇聚层

参考文献
Spanning Tree Protocol – Wikipedia[……]

READ MORE

「STP」- 概念、术语

概念术语

注意事项: 1)我们学习 STP 协议,应该关注选举:选举范围、选举方法、设备状态; 2)各交换机会根据在 BPDU 中的信息,确定自己的角色。因此,如下选举过程并非依次发生,而是同时发生。
Bridge,桥,网桥
解释:在 STP 中,也就是交换机。
Bridge ID,BID,桥身份标识
解释:每台接入网络的交换机,都具有唯一身份,这个身份被称为 BID(Bridge ID)。
在 IEEE 802.1D Standers 中,规定 BID 由两部分组成: 1)高 16bit 的桥优先级(Bridge Priority) 2)低 48bit 的桥物理地址(MAC Address)
Bridge ID = Priority (4 bits) + locally assigned system ID extension (12 bits) . ID [MAC address] (48 bits))
每台运行 STP 的交换机都拥有一个唯一的 BID 参数。
在STP网络中,BID最小的设备会被选举为根桥。
Root Bridge,根桥
解释:在连续的 STP 交换网络中,某台交换机的角色。在多台交换机间,通过相互选举而确定的。根桥是生成树进行拓扑计算的参考点,是无环拓扑的树根。
Port ,端口
解释:无特殊含义,仍指交换机物理端口。
Port ID,PID,端口身份标识
解释:运行 STP 的交换机使用 PID 来标识每个接口,PID 主要用于在特定场景下选举指定接口(DP)。
PID 由两部分构成的: 1)高 4bit 是接口优先级; 2)低 12bit 是接口编号;
Port ID = priority (4 bits, default=128) + ID (Interface number) (12 bits)
激活 STP 的接口会维护一个缺省的接口优先级。在华为交换机上,该值为 128。用户可以根据实际需要,通过命令修改该优先级。
Port Roles
Root Port,RP,根端口
解释:Root Port,在 Non-root Bridage 上,是其直连到 Root Bridge 的端口,即离 Root Bridage 最近的端口,负责向 Root Bridage 方向转发数据。一个非根桥设备上会有多个端口与网络相连,为了保证从某台非根桥设备到根桥设备的工作路径是最优且唯一的,就必须从该非根桥设备的端口中确定出一个被称为“根端口”的端口,由根端口来作为该非根桥设备与根桥设备之间进行报文交互的端口。
在选举出根桥后,根桥仍然持续发送BPDU,而非根桥将持续不断的收到根桥发送的B[……]

READ MORE

「STP」- BPDU 报文格式

BPDU – Bridge Protocol Data Units
在网络初始时,所有交换机都会相互发送 BPUD 信息; 设备发现自己的 BPUD 优先级(BID)不如其他交换机,因此不再发送 BPDU 信息; 当网络稳定之后,Root Bridge 才会发送 BPDU 信息,包括 Root Bridge 的信息;其他设备的 Designated Port 将转发 BPDU 信息;

| IEEE 802.3 Ethernet | BPDU |
为了计算生成树,交换机之间需要交换相关的信息和参数,这些信息和参数被封装在 BPDU(Bridge Protocol Data Unit)中。
PID,Protocol ID,2 bytes(0x0000 IEEE 802.1D) 针对我们这里讨论的 STP 协议,该字段为 0x00 值;
PVI,Protocol Version ID,1 byte(0x00 Config & TCN / 0x02 RST / 0x03 MST / 0x04 SPT BPDU) 针对我们这里讨论的 STP 协议,该字段为 0x00 值;如果我们讨论 RSTP 协议,则该字段为 0x02 值;
BPDU Type,网桥协议数据单元,1 byte。在标准 STP(IEEE 802.1D)中有两种类型:
1) CBPDU, Configuration BPDU,BPDU Type=0x00:Bridge ID、路径开销、Port ID 等参数。STP 协议通过在交换机之间传递配置 BPDU 来选举 Root Bridge,以及确定每个交换机端口的角色和状态。在初始化过程中,每个桥都主动发送 CBPDU。在网络拓扑稳定以后,只有根桥主动发送 CBPDU,其他交换机在收到上游传来的配置BPDU后,才会发送自己的配置BPDU。
2)TCN BPDU,BPDU Type=0x80:下游交换机感知到拓扑发生变化时,向上游发送的拓扑变化通知(这是控制信息,从根端口转发),此时使用该类型报文。
Flags,标志位,1 byte,在 STP 中,仅使用 第一位(TC,Topology Change)与 第八位(Topology Change Acknowledgement),与拓扑变化有关。
在 CBPDU 中,包含足够的信息来保证设备完成生成树计算,其中包含的重要信息如下:
1)Root ID,8 byte:由 Root Bridge 的优先级和MAC地址组成,每个STP网络中有且仅有一个根。 2)RPC,Root Path Cost,根路径开销,4 byte:到根桥的最短路径开销。 3)Bridge ID,指定桥 ID,8 byte:由指定桥的优先[……]

READ MORE

「STP」- 计算过程

概述介绍
当运行 STP 协议后:
在初始化的过程中,每个 Switch 都假设自身为 Root Bridge,并主动发送 CFG BPDU 数据帧。在 Switch 间,通过传递 CFG BPDU 来选举 Root Bridge,以及确定每个交换机端口的角色和状态。
在网络拓扑稳定后,只有 Root Bridge 周期性发送 CFG BPDU,当其他 Switch 在收到上游传来的 CFG BPDU 后,才会发送自己的 CFG BPDU;
初始化的过程……
第一步、选举根桥
选举范围:在整个交换网络中,选举根桥
选举方法: 1)当交换机启动 STP 后,都会认为自己是 Root Bridge; 2)然后,Switch 向接口发送 BPDU 数据帧以选举 Root Bridge; 3)最后,经过对比,BID 最小的交换机成为 Root Bridge;
交换机比较 BID 的方法:先比较 Priority 参数,较小者胜出;如果相同,再比较 MAC 地址参数;
设备状态:在网络中仅有一个根桥设备,其他交换机为非根桥。
注意事项: 1)根桥的角色是可抢占的。 2)为了确保交换网络的稳定,建议提前规划 STP 组网,并将规划为 Root Bridge 的交换机的桥优先级设置为最小值 0。
第二步、选举根端口
选举范围:在非根交换机上,在多个端口(接收到 BPDU 的端口)间选举根端口,为转发状态;而根桥不会存在根端口;
选举方法(选举根端口): 1)路径代价(路径开销):Port 到 Root Bridge 的开销; 2)如果(1)相同,则查看 对端 BID 参数 进行选举; 3)如果(2)相同,则使用 对端 PID 参数 进行选举; 4)如果(3)相同,则使用 本地 PID 参数 进行选举;
设备状态:端口为 Forwarding 状态;
路径代价(路径开销)有不同的标准,不同设备应该使用相同的标准。
第三步、选举指定端口
选举范围:在每个链路中,选举一个指定端口(发送 BPDU 的端口);
选举方法: 1)到 Root Bridge 的开销:通常根桥的端口都为指定端口,因为开销为零; 2)如果(1)相同,则 端口所在交换机 的 BID 参数,小的成为指定端口; 3)如果(2)相同,则查看 端口所在交换机 的 PID 参数;例如,同个交换机的两个端口相接。
设备状态:端口为 Forwarding 状态;并由 DP 向下泛洪 BPDU 数据帧(只有 DP 泛洪 BPDU 报文);
第四步、阻塞预备端口
设备状态:端口为 Blocking(Discarding)状态; AP 端口不会向下泛洪 BPDU 帧,但是能够处理 B[……]

READ MORE

「STP」- 端口状态

端口状态转换的关系

Disabled
禁用(Disable),该接口不能收发BPDU,也不能收发业务数据帧,例如接口为down
Blocking
阻塞(Blocking/Discarding),该接口被 STP 阻塞。
当设备初始时,Designated Port,虽然为 Blocking 状态,但是依旧能够发送和接收 BPDU 帧; 当网络收敛时,接口处于阻塞状态,不能发送 BPDU,不能收发业务数据帧,不会进行MAC地址学习,但是会持续侦听 BPDU 帧;
当交换机拓扑发生变化时,其他端口也会进入 Discarding 状态。
Blocking 切换到 Listening 状态的时间很短。
Listening
侦听(Listening)
当接口处于该状态时: 1)表明 STP 初步认定该接口为 Root Port 或 Designated Port,此时接口可以收发BPDU, 2)但接口依然处于 STP 计算的过程,不能收发业务数据帧,不会进行 MAC 地址学习
Listening 经过 15s 转发延迟,进入 Learning 状态;
Learning
学习(Learning)
当接口处于该状态时: 1)会侦听业务数据帧,并在收到业务数据帧后进行 MAC 地址学习(主要目的) 2)但不能转发业务数据帧;
然后,再经过 15s 转发延迟,进入 Forwarding 状态;
Forwarding
转发(Forwarding),处于该状态的接口可以正常地收发业务数据帧,也会进行BPDU处理。接口的角色需是根接口或指定接口才能进入转发状态。为了避免环路,交换机不会立刻进入 Forwarding 状态。
因此 Alternate Port ⇒ Root Port 需要 30s 时间,这种通过等待足够的时间,以避免出现环路。
补充说明
STP 对计时器的依赖(缺点)
STP采用计时器防止临时环路,当STP选举出端口角色后,即便角色为指定端口和根端口,仍然需要等待两个Forward Delay时间(30s)才能进入转发。
在运行STP的环境下,终端或服务器接入后,由于端口需要从Disabled状态依次切换到Blocking、Listening、Learning及Forwarding状态,此时主机A在接入后,需要等待两个Forward Delay时间才能访问网络服务。
STP 重收敛过程慢
1)被阻塞的端口会从Blocking状态,依次切换到Listening及Learning状态,最终进入Forwarding状态。 2)直连链路故障,端口状态转换,延时30s后进入Forwarding状态。
1[……]

READ MORE

「STP」- 3.Problem Solving (how-to)

这里“拓扑变化”指交换机协议层面的拓扑变化,而非物理层面拓扑变化。
问题描述
问题:根桥故障

在 Max Age 内,20s,交换机未收到 Root Bridege 的 BPDU 帧: 1)在 20s 后,交换机 SWB/SWC 认为链路故障,开始发送 BPDU 帧; 2)端口状态迁移(Forward Delay)的延时,Listening ⇒ Learning ⇒ Forwarding,15s * 2 = 30s 3)总共为 50s 时间
问题:直连链路故障

在这个拓扑中,SWA/SWB 之间有两条链路,其中虚线链路不转发流量。 1)当 SWA/D ⇒ SWB/R 故障,SWB/A 会迅速变为 SWB/R 状态,无需等待 20s 老化。 2)但是为 Blocking 状态,到 Forwarding 状态,需要 30s 时间(Forward Delay)。
可见,STP 重收敛过程慢
问题:非直连链路故障

此时,假如 SWB 与 SWA 之间有 Hub 存在,并且 SWB 到 Root Bridge 的链路出现故障,但 SWB 的接口为 UP 状态: 1)SWB 无法收到 Root Bridge 的 BPDU 帧,因此 SWB 无法向 SWC 转发 BPDU 帧,而 SWC 能收到来自 SWA 的 BPDU 帧; 2)SWC.A 切换到 SWC.P 状态,由 Blocking 进入 Forwarding 状态,整个过程需要 30s 时间; 3)然后,SWC.P 开始发送 BPDU 帧,然后 SWB.P 切换到 SWB.R 状态(因为 SWB 无法直接收到 Root Bridge 的 BPDU 帧,而是经过 SWC 设备,因此这个端口是 Root Port 状态,而非 Designated Port 状态)
总的来说,整个网络恢复需要 50s 时间: 1)当故障时,在 20s 后,SWB 一直未收到 Root Bridge 的 BPDU 帧,原 BPUD 老化失效。 2)此时 SWC 切换 SWC.A 状态,需要 30s 时间。
可见,STP 重收敛过程慢
问题:拓扑改变导致 MAC 地址表错误

1)如果 SWC/G1 端口发生异常,此时与 SWA/G2 相关 MAC 地址表条目将被清除。 2)此时 Host-A 发往 Host-B 的数据帧,在到达 SWA 时将被丢弃。 3)当 MAC 地址表条目 300s 时间超时之后,SWB/G1 相关的条目会老化。即 300s 后 Host-A 才能访问到 Host-B 主机。
解决方案:TCN,TCA,TC
工作原理: 1)在拓扑变化后,Root Bridge 通过接收到 TCN BPDU[……]

READ MORE

「Huawei VRP」- 配置,STP,生成树

配置命令(Huawei)
启用 STP/RSTP/MSTP 协议:

[Huawei] stp enable

# 使能交换机的STP/RSTP/MSTP功能。
# 缺省情况下,设备的STP/RSTP/MSTP功能处于启用状态。

配置生成树工作模式:

[Huawei] stp mode { stp | rstp | mstp }

# 华为默认 STP 类型,改为 STP 协议:stp mode stp

配置根桥:

[Huawei] stp root primary

# 配置当前设备为根桥。
# 缺省情况下,交换机不作为任何生成树的根桥。
# 配置后该设备优先级数值自动为0,并且不能更改设备优先级。

[Huawei] stp root secondary

# 配置当前交换机为备份根桥。
# 缺省情况下,交换机不作为任何生成树的备份根桥。
# 配置后该设备优先级数值为4096,并且不能更改设备优先级。

配置交换机的STP优先级:

[Huawei] stp priority <priority>

# 配置接口的优先级。
# 缺省情况下,交换机接口的优先级取值是 128
# 通常将高性能作为 Root Bridge 设备,这通过修改 Root Bridge 优先级
# priority < (4096 * n) <= 65535

配置接口路径开销:

[Huawei] stp pathcost-standard { dot1d-1998 | dot1t | legacy }

# 配置接口路径开销计算方法。缺省情况下,路径开销值的计算方法为IEEE 802.1t(dot1t)标准方法。
# 同一网络内所有交换机的接口路径开销应使用相同的计算方法。

[Huawei-GigabitEthernet0/0/1] stp cost <cost>

# 设置当前接口的路径开销值。
# cost < (16 * n) <= 128

修改设备路径开销的优先级:stp pathcost-standard <dotld-1998/dot1t/legacy> 修改端口优先级:interface GigabitEthernet 0/0/1; stp cost 2000;
验证配置:display stp[……]

READ MORE

「RSTP」- 快速生成树协议、Rapid Spanning Tree Protocol,IEEE 802.1w

问题描述
STP 协议虽然能够解决环路问题,但是具有如下问题: 1)被动算法,其依靠时间等待来进行收敛,所以收敛速度慢(30s-50s)影响用户通信质量 。 2)如果 STP 网络的拓扑结构频繁变化,网络将频繁失去连通性,而导致用户通信频繁中断(当拓扑变化时,连接主机的端口也会发生变化)。 3)STP 没有细致区分接口状态和接口角色,不利于初学者学习及部署;
解决方案
IEEE 于 2001 年发布的 802.1W 标准定义快速生成树协议 RSTP(Rapid Spanning-Tree Protocol),RSTP 在 STP 基础上进行改进,实现了网络拓扑快速收敛。
原理简述
在 STP 中,当初始时所有交换机都会发送 BPDU 帧,当稳定后只有 Root Bridge 发送;
在 RSTP 中:当初始时,所有交换机都会发送 BPDU 帧;当稳定后,所有交换机都 独立 发送 BPDU 帧(按照 Hello Time 发送,以降低延时);
协议特性
RSTP 引入新的接口角色,简化 STP 的理解及部署,其中: 1)替代接口:使得交换机在根接口失效时,能够立即获得新的路径到达根桥。 2)备份端口:作为指定端口的备份,帮助链路上的网桥快速获得到根桥的备份路径。 3)边缘接口:使交换机连接终端设备的接口在初始化后,能够立即进入转发状态,提高工作效率。
RSTP 的状态规范根据端口是否转发用户流量和学习 MAC 地址把原来的 5 种状态缩减为 3 种。
RSTP 充分利用了STP协议报文中的Flag字段,其中明确端口角色
RSTP 对 STP 的其他改进: 1)配置 BPDU 的处理发生变化: —- 当拓扑稳定后,配置BPDU报文的发送方式进行优化 —- 使用更短的 BPDU 超时计时 —- 对处理次等 BPDU 的方式进行优化 2)配置 BPDU 格式的改变,充分利用 STP 协议报文的 Flag 字段,明确接口角色 3)RSTP 拓扑变化处理:相比于STP进行了优化,加速针对拓扑变更的反应速度
应用场景
依旧是二层网络环境,在园区网的接入层与汇聚层。
参考文献
Spanning Tree Protocol – Wikipedia[……]

READ MORE

「RSTP」- 概念、术语

协议兼容
RSTP 能够兼容 STP:RSTP 可以和STP互操作,但是此时会丧失快速收敛等 RSTP 优势。
当一个网段里既有运行STP的交换设备又有运行RSTP的交换设备,STP交换设备会忽略RSTP的BPDU。运行RSTP的交换设备在某端口上接收到运行STP的交换设备发出的配置BPDU,在两个Hello Time时间之后,便把自己的端口转换到STP工作模式,发送 CFG BPDU,从而实现了互操作。
在华为的数据通信设备上可以配置运行STP的交换设备被撤离网络后,运行RSTP的交换设备可迁移回到RSTP工作模式。

假如 SWC 不支持 RSTP: 1)当 SWA 收到 CFG BPDU 帧时,会等待 2 x Hello Time 时间,以等待 RST BPDU 出现; 2)在超时后,会自动将端口转化为 STP 模式。
同理 SWB、SWC 也是如此。
Proposal & Agremment
STP 依赖于时间进行收敛(等待),而 RSTP 使用 Proposal & Agremment 机制(P/A),将时间缩短到 1s~2s 时间。
如果互联设备无法进行 P/A 握手机制,那么只能采用计时器控制(兼容)。
Prot Roles
在 STP 中,有 Root Port、Designated Port、Blocked Port 三种端口。
在 RSTP 中,除了有 RP、DP 类型外,还增加若干类型:
Alternate Port
解释:从 CFG BPDU 报文发送角度来看,是由于学习到其它网桥发送的 CFG BPDU 报文而阻塞的端口;从用户流量角度来看,Alternate Port 提供从 Designated Bridge 到 Root Bridge 的另条可切换路径,作为 Root Port 的备份端口(原 STP.BlockedPort 也是 DP 的备份,提供到 Root Bridge 的 备份链路)。
当出现 Root Port 故障时,Alternate Port 能够快速切换为 Root Port 角色。
Backup Port
备份端口,Backup Port,
解释:从 CFG BPDU 报文发送角度来看,是由于学习到自己发送的 CFG BPDU报文而阻塞的端口(如果端口收到 BPDU.BID 与当前交换机 BID 不同,则端口成为 AP 状态)。从用户流量角度来看,Backup Port 作为 Designated Port 的备份,提供从根桥到相应链路的备份通路(提供 Root Bridge 与 Non-root Bridge 链路备份)。
当出现 Designated Po[……]

READ MORE

「RSTP」- 2.Network Packet Format

RST BPDU

BPDU Type, 1)0x02,RST/MST Config BPDU(注意与 STP Config BPUD 对比,STP_Config_BPDU.BPDU_Type=0x00)
Flags,原始 STP 的 BPDU Flags 仅使用第一位(TC)和第八位(TCA),但是在 RSTP 中得到扩充。 1)Agreement、Proposal 2)Forwarding / Learning: 3)Port Role:
RST CFG BPDU

Frame 1859: 60 bytes on wire (480 bits), 60 bytes captured (480 bits) on interface -, id 0
IEEE 802.3 Ethernet
Logical-Link Control
Spanning Tree Protocol
Protocol Identifier: Spanning Tree Protocol (0x0000)
Protocol Version Identifier: Rapid Spanning Tree (2)
BPDU Type: Rapid/Multiple Spanning Tree (0x02)
BPDU flags: 0x7c, Agreement, Forwarding, Learning, Port Role: Designated
0… …. = Topology Change Acknowledgment: No
.1.. …. = Agreement: Yes
..1. …. = Forwarding: Yes
…1 …. = Learning: Yes
…. 11.. = Port Role: Designated (3)
…. ..0. = Proposal: No
…. …0 = Topology Change: No
Root Identifier: 4096 / 0 / 4c:1f:cc:55:44:dc
Root Bridge Priority: 4096
Root Bridge System ID Extension: 0
Root Bridge System ID: HuaweiTe_55:44:dc (4c:1f:cc:55:44:dc)
Root Path Cost: 0
Bridge Identifier: 4096 / 0 / 4c:1f:cc:55:4[……]

READ MORE

「RSTP」- 00.Protocol Operation (RSTP)

事实上对于STP,指定端口的选择可以很快完成,主要的速度瓶颈在于:为了避免环路,必须等待足够长的时间,使全网的端口状态全部确定,也就是说必须要等待至少一个 Forward Delay 所有端口才能进行转发。
而RSTP的主要目的就是消除这个瓶颈,通过阻塞自己的非根端口来保证不会出现环路。而使用P/A机制加快了上游端口进入Forwarding状态的速度。
初始化的过程……
初时状态:DP=Discarding
在初始时,Switch 认为自己所有的端口都是 DP 状态,处于 Discarding 状态:

相互协商:BPDU.Proposal=1
当初始时所有交换机都会 相互 发送 RST BPDU 帧,Proposal=1

开始同步:Lower BID
如果 SW 收到的 BPUD 优先级(BID)较低,则会忽略该 BPDU 帧。在图示里,SWA 的 BID 更优,所以会忽略 SWB 的 BPDU 帧;
如果 SW 收到的 BPUD 优先级(BID)较高,将停止发送 BPDU 并开始进入同步状态。在图示中, SWB 将进入同步状态。
在 同步阶段 下: 1)所有 Non-edge Port 进入 Discarding 状态; 2)发送端口变为 Root Port,并且 快速 进入 Forwarding 状态;其他端口已进入 Discarding 状态,因此不会形成环路;

回复确认:BPDU.Agreement=1
SWB 发送 BPDU.Agreement=1 给 SWA 交换机; SWA 收到 BPDU.Agreement=1 之后,此时 SWA 的 Designated Port 将 立刻 进入 Forwarding 状态。

继续进行其他链路协商
然后 P/A 继续进行,SWB 与 SWC 开始进行协商,整个协商过程是分段进行的。

在该拓扑中,假设当 SWA 与 SWB/SWC 计算完成后,SWB 与 SWC 才开始进行计算。此时,SWB.Designated Port 需要经过 Forward Delay * 2 才能进入转发状态,因为对端 SWC.Alertnated Port 无法回应 BPDU.Agreement=1 帧。不过也没有关系,因为这条链路不会进行数据转发。
网络拓扑稳定……
在 Standard STP 中,计算复杂且缓慢,原因在于当拓扑稳定后: 1)Root Bridge 按照 Hello Time 规定的时间间隔发送 CFG BPDU; 2)其他 Non-root Bridge 在收到上游设备发送过来的 CFG BPDU 后,才会触发发出 CFG BPDU;
RSTP[……]

READ MORE

「RSTP」- Port State Machine

RSTP的状态规范缩减为3种,根据端口是否转发用户流量和学习MAC地址来划分: 1)Discarding:不转发用户流量,不学习MAC地址; 2)Learning:不转发用户流量,学习MAC地址; 3)Forwarding:既转发用户流量,又学习MAC地址;

Backup Port 出于 Discarding 状态;[……]

READ MORE

「RSTP」- 链路故障

在 RSTP 中,检测拓扑是否发生变化只有一个标准:一个非边缘端口迁移到 Forwarding 状态。
问题描述
根桥失效
在 STP 中,需要等待 20s 没有收到 BPDU 报文(老化失效),然后端口状态转化 30s 时间,累计 50s 时间。
在 RSTP 中,等待 3 x Hello Time = 6s 时间(注意,这不会影响 BPDU 的失效时间,依旧为 20s 时间,但是这不会参与链路故障检测),如果 Non-root Bridge 未收到 Root Bridge 的 BPDU 帧,则认为 Root Bridge 失效,开始 P/A 选举。
根端口失效

如果网络中一个 Root Port 失效,那么网络中最优的 Alternate Port 将成为 Root Port,进入Forwarding状态。因为通过这个Alternate Port 连接的网段上必然有个 Designated Port 可以通往 Root Bridge。
指定端口失效

如果网络中一指定端口失效,那么网络中最优的 Backup Port 将成为指定端口,进入Forwarding状态。因为Backup端口作为指定端口的备份,提供了另一条从根桥到相应网段的备份通路。
解决方案
在 STP 中,发送 TCN BPDU,TCA,TC 报文。如果拓扑发生变化,需要先向 Root Bridge 传递 TCN BPDU,再由 Root Bridge 来通知拓扑变更,泛洪 TC 置位的 CFG BPDU。
在 RSTP 中,通过新的拓扑变更机制,TC 置位的 RST BPDU 会快速的在网络中泛洪。
在 RSTP 中,直接由故障设备(拓扑发生变化的设备)直接向上游发送 TC 报文。当交换机收到 TC 报文后,开始清空接口的 MAC 地址表(除了收到 TC 报文的接口、Edge Port 以外的端口)。
一旦检测到拓扑发生变化,将进行如下处理: 1)为本交换设备的所有非边缘指定端口和根端口启动一个 TC While Timer,该计时器值是 Hello Time 的两倍。在这个时间内,清空所有端口上学习到的 MAC 地址。 2)同时,由非边缘指定端口和根端口向外发送 RST BPDU,其中 TC 置位。一旦 TC While Timer 超时,则停止发送 RST BPDU。 3)其他交换设备接收到RST BPDU后,清空所有端口(除了收到 RST BPDU 的端口和 Edge Port)学习到MAC地址,然后也为自己所有的非边缘指定端口和根端口启动 TC While Timer,重复上述过程。 4)如此,网络中就会产生RST BPDU的泛洪。
处理次优 BPDU 数据帧
当一个端[……]

READ MORE

「Huawei VRP」- 配置,RSTP,快速生成树

配置命令(Huawei)
P/A:增强的快速迁移机制、普通的快速迁移机制
在运行生成树的通信网络中,如果华为的数据通信设备与其他制造商设备混合组网,可能会因为与其他制造商设备的 Proposal/Agreement 机制不同可能导致互通失败,此时可以通过执行命令 stp no-agreement-check 来选择端口使用增强的快速迁移机制还是普通的快速迁移机制
改为 RSTP 模式:[Huawei] stp mode rstp
查看 RSTP 信息:[Huawei] display stp
配置 Edge Port 方法
某些交换机版本高,会自动切换 Edge Port 状态(如果 2 x Hello Time = 6s 时间,对端未响应)。
开启 Edge Port 功能: 1)全局设置:[Huawei] stp edged-port default 2)端口设置:[Huawei-GigabitEthernet0/0/24] stp edged-port enable
使用全局设置的风险不大:根据我们在 eNSP 中观察,在全局启用后,RP/AP 的 Edge Port 会被关闭。
Sx7 系列交换机默认所有端口都工作于 Non-edge Port 模式。
配置 BPDU Production 过程
开启保护:[Huawei] stp bpdu-protection
恢复接口运行:[Huawei-GigabitEthernet0/0/4] undo shutdown
配置自动恢复:

[Huawei] error-down auto-recovery cause bpdu-protection interval 30

配置 Root Production 方法
[Huawei] stp root-protection
配置 TC 保护功能

// 配置设备处理阈值指定数量的拓扑变化报文所需的时间。缺省情况下,设备处理最大数量的拓扑变化报文所需的时间是Hello Time。
[Huawei] stp tc-protection interval interval-value

// 配置交换设备在收到TC类型BPDU报文后,单位时间内,处理TC类型BPDU报文并立即刷新转发表项的阈值。省情况下,设备在指定时间内处理拓扑变化报文的最大数量是1。
[Huawei] stp tc-protection threshold threshold[……]

READ MORE

「MSTP」- 多生成树,Multiple Spanning Tree Protocol,IEEE 802.1s

问题描述
STP/RSTP 的缺陷是所有的 VLAN 共享一棵生成树:RSTP 在 STP 基础上进行改进,实现网络拓扑快速收敛。
但 RSTP 和 STP 还存在缺陷:
流量无法负载分担

如果网络中只有一个生成树,假设SW3与SW2相连的端口为阻塞端口,则VLAN2和VLAN3的数据都只能通过一条链路到汇聚交换机,不能实现流量负载分担。
数据链路层次优路径

由于SW3与SW2间的链路被阻塞,VLAN3的数据到达网关的路径是次优的,最优的路径应当是由SW3直达SW2。
解决方案
为了弥补 STP 和 RSTP 的缺陷,IEEE 于 2002 年发布的 802.1s 标准定义 MSTP(Multiple Spanning Tree Protocol,多生成树协议)。
华为公司提出 VBST(VLAN-Based Spanning Tree)生成树解决方案,思科提出 PVST(PVST)协议,实现每个 VLAN 使用独立的树。
原理简述
在 MSTP 中,生成树的形成是基于 VLAN 的,不同 VLAN 间可形成相互独立的生成树,不同 VLAN 内的流量沿着各自的生成树转发,进而可实现流量的负载分担。 MSTP 把一个交换网络划分成多个域,每个域内形成多棵生成树,生成树间彼此独立。 每棵生成树叫做一个多生成树实例 MSTI(Multiple Spanning Tree Instance)。 所谓生成树实例就是多个 VLAN 的一个集合。 通过将多个VLAN捆绑到一个实例,可以节省通信开销和资源占用率。 MSTP各个实例拓扑的计算相互独立,在这些实例上可以实现负载均衡。 可以把多个相同拓扑结构的VLAN映射到一个实例里,这些VLAN在接口上的转发状态取决于接口在对应实例的状态。
MSTP 将创建多个生成树实例,然后将 VLAN 分组到不同生成树的实例中,例如:在网络中将维护 2 棵生成树,将 VLAN 1-10 映射到 Instance-1,将 VLAN 11-20 映射到 Instance-2;

如图中例子,经计算,最终生成两棵生成树: 1)Instance1 对应的生成树以SW1为根交换设备,转发 VLAN1~VLAN10 的报文。 2)Instance2 对应的生成树以SW2为根交换设备,转发 VLAN11~VLAN20 的报文。 不同VLAN的报文沿不同的路径转发,实现负载分担。注意:生成树不是基于 VLAN 运行的,而是基于 Instance 运行的。
协议特性
消除环路:MSTP 兼容 STP 和 RSTP 协议; 快速收敛:既可以快速收敛(依旧应用 RSTP 的 P/A 机制), 负载分担:在数据转发过程中实现 VLAN 数[……]

READ MORE

「MSTP」- 概念、术语

VLAN 映射表
用于描述 VLAN 和 MSTI 间的映射关系
MST Region
交换网络被划分成多个域,一个MST域内可以包含一台或多台交换机,同属于一个MST域的交换机必须配置相同的域名、相同的修订级别、相同的 VLAN 映射表

MSTP 网络层次:MSTP 把一个交换网络划分成多个 Region(域),每个 Region 内形成多棵生成树,生成树间彼此独立。
MST Region(Multiple Spanning Tree Region,多生成树域,MST 域): 1)由交换网络中的多台交换设备以及它们之间的网段所构成。 2)局域网能够存在多个 MST Region,各 MST Region 间在物理上直接或间接相连。用户可以通过 MSTP 配置命令把多台交换设备划分在同一个MST域内。 3)在 MSTP 网络中包含 1 个或多个 MST Region,每个 MST Region 中包含一个或多个多生成树实例。
同一个 MST Region 的设备具有下列特点: 1)都启动了MSTP。 2)具有相同的域名。 3)具有相同的VLAN到生成树实例映射配置。 4)具有相同的MSTP修订级别配置。
MSTI, Multiple Spanning Tree Instance
基于Instance的生成树
在 MST Region 内,可以生成多棵生成树,每棵生成树都称为一个 MSTI (Multiple Spanning Tree Instance,多生成树实例)
MSTI 使用 Instance ID 标识,华为设备取值为 0~4094。
VLAN 映射表 1)MST Region 的属性,描述 VLAN 和 MSTI 间的映射关系。
如图所示的 MST Region 4 的 VLAN 映射有:VLAN1映射到MSTI 1;VLAN2映射到MSTI 2;其余VLAN映射到MSTI 3
Instance0是缺省存在的,而且缺省时,华为交换机上所有的VLAN都映射到了Instance0。
通过设置VLAN 映射表(即 VLAN 和 MSTI 的对应关系表),把 VLAN 和 MSTI 联系起来。 每个VLAN只能对应一个 MSTI,即同一VLAN的数据只能在一个MSTI中传输,而一个MSTI可能对应多个VLAN。
CST, Common Spanning Tree
CST,Common Spanning Tree,公共生成树,连接所有 MST Region 的一棵生成树
是连接交换网络内所有 MST Region 的一棵生成树。 如果把每个 MST Region 看作是一个节点,CST 就是这些节点通过生成树协议计算生成的一[……]

READ MORE

「MSTP」- Multiple Spanning Tree Bridge Protocol Data Unit

MSTP使用MST BPDU(Multiple Spanning Tree Bridge Protocol Data Unit,多生成树桥协议数据单元)作为生成树计算的依据。 MST BPDU报文用来计算生成树的拓扑、维护网络拓扑以及传达拓扑变化记录。

无论是域内的MST BPDU还是域间的,前36个字节和RST BPDU相同。从第37个字节开始是MSTP专有字段。最后的MSTI配置信息字段由若干MSTI配置信息组连缀而成。 MST BPDU中主要信息说明
Protocol Identifier:2 Byte,协议标识符。 Protocol Version Identifier:1 Byte,协议版本标识符,STP为0,RSTP为2,MSTP为3。 BPDU Type:1 Byte,BPDU类型: —- 0x00:STP的Configuration BPDU —- 0x80:STP的TCN BPDU(Topology Change Notification BPDU) —- 0x02:RST BPDU(Rapid Spanning-Tree BPDU)或者MST BPDU(Multiple Spanning-Tree BPDU) CIST Flags:1 Byte,CIST标志字段。 CIST Root Identifier:8 Byte,CIST的总根交换设备ID。 CIST External Path Cost:4 Byte,CIST外部路径开销指从本交换设备所属的MST域到CIST根交换设备所属的MST域的累计路径开销。CIST外部路径开销根据链路带宽计算。 CIST Regional Root Identifier:8 Byte,CIST的域根交换设备ID,即IST Master的ID。如果总根在这个域内,那么域根交换设备ID就是总根交换设备ID。 CIST Port Identifier:2 Byte,本端口在IST中的指定端口ID。 Message Age:2 Byte,BPDU报文的生存期。 Max Age:2 Byte,BPDU报文的最大生存期,超时则认为到根交换设备的链路故障。 Hello Time:2 Byte,Hello定时器,缺省为2秒。 Forward Delay:2 Byte,Forward Delay定时器,缺省为15秒。 Version 1 Length:1 Byte,Version1 BPDU的长度,值固定为0。 Version 3 Length:2 Byte,Version3 BPDU的长度。 MST Configuration Identifier:51 Byte,MST配置标识,表示MST域的标签信息,包含4个字段。 CIST Internal Root Path Cost:4 B[……]

READ MORE

「MSTP」- 拓扑计算

MSTP拓扑计算: 1)MSTP可以将整个二层网络划分为多个MST域,各个域之间通过计算生成CST,域内生成IST,CST和IST构成了整个交换设备网络的CIST。 2)域内还可以基于实例计算生成多棵生成树,每棵生成树都被称为是一个MSTI。 CIST和MSTI都是根据优先级向量来计算的,这些优先级向量信息都包含在MST BPDU中。各交换设备互相交换MST BPDU来生成CIST和MSTI 。 参与 CIST 计算的优先级向量为:{ 根交换设备ID,外部路径开销,域根ID,内部路径开销,指定交换设备ID,指定端口ID,接收端口ID } 参与 MSTI 计算的优先级向量为:{ 域根ID,内部路径开销,指定交换设备ID,指定端口ID,接收端口ID } 注意:括号中的向量的优先级从左到右依次递减。 优先级向量说明: 根交换设备ID:根交换设备ID用于选择CIST中的根交换设备。 —- 根交换设备ID = Priority(16 bit) + MAC(48 bit)。 —- 其中Priority为MSTI0的优先级。 外部路径开销(External Root Path Cost,ERPC):从CIST的域根到达总根的路径开销。 —- MST域内所有交换设备上保存的外部路径开销相同。 —- 若CIST根交换设备在域中,则域内所有交换设备上保存的外部路径开销为0。 域根ID:域根ID用于选择MSTI中的域根。 —- 域根ID = Priority(16 bit) + MAC(48 bit)。 —- 其中Priority为MSTI0的优先级。 内部路径开销(Internal Root Path Cost,IRPC):本桥到达域根的路径开销。 —- 域边缘端口保存的内部路径开销大于非域边缘端口保存的内部路径开销。 指定交换设备ID:CIST或MSTI实例的指定交换设备是本桥通往域根的最邻近的上游桥。 —- 如果本桥就是总根或域根,则指定交换设备为自己。 指定端口ID:指定交换设备上同本设备上根端口相连的端口。 —- Port ID = Priority(4 bit) + 端口号(12 bit)。 —- 端口优先级必须是16的整数倍。 接收端口ID:接收到BPDU报文的端口。 —- Port ID = Priority(4 bit) + 端口号(12 bit)。 —- 端口优先级必须是16的整数倍。 优先级向量比较原则:同一向量比较,值最小的向量具有最高优先级。 优先级向量比较原则如下: 首先,比较根交换设备ID。 如果根交换设备ID相同,再比较外部路径开销。 如果外部路径开销相同,再比较域根ID。 如果域根ID仍然相同,再比较内部路径开销。 如果内部路径仍然相同,再比较指定交换设备ID。 如果指定交换设备ID仍然相同,再比较[……]

READ MORE

「MSTP」- 数据转发

在运行MSTP协议的网络中,一个VLAN报文将沿着如下路径进行转发: 在MST域内,沿着其对应的MSTI转发。 在MST域间,沿着CST转发。
如图所示,以VLAN2的数据发送为例。[……]

READ MORE

「MSTP」- 3.Problem Solving (how-to)

配置命令(Huawei)

// 配置生成树工作模式
// 交换机支持STP、RSTP和MSTP三种生成树工作模式。默认情况工作在MSTP模式。
// STP和MSTP不能互相识别报文,而MSTP和RSTP可以互相识别报文,所以若工作在MSTP工作模式下,交换设备会设置所有和运行STP的交换设备直接相连的端口工作在STP模式下,其他端口工作在MSTP模式下,实现运行不同生成树协议的设备之间的互通。
[Huawei] stp mode mstp

// 启用MSTP
// 使能交换设备或端口上的STP/RSTP/MSTP功能。缺省情况下,全局和端口的STP/RSTP/MSTP均使能。
// 注意:为了保证生成树计算过程快速而且稳定,必须在启用STP/RSTP/MSTP之前,完成对交换设备及其端口必要的基本配置。
[Huawei] stp enable

进入MST域视图
缺省情况下,MST域的三个参数均取缺省值。
[Huawei] stp region-configuration
[Huawei-mst-region]

配置MST域的域名
缺省情况下,MST域名等于交换设备的桥MAC地址。
name:指定交换设备的MST域名。字符串形式,不支持空格,区分大小写,长度为1~32个字符。
[Huawei-mst-region] region-name name

配置多生成树实例与VLAN的映射关系
将指定VLAN映射到指定的生成树实例上。缺省情况下,所有VLAN均映射到CIST,即实例0上。
指定生成树实例的编号。整数形式,取值范围是0~4094,取值为0表示的是CIST。
[Huawei-mst-region] instance instance-id vlan { vlan-id1 [ to vlan-id2 ] }

(可选)配置MST域的MSTP修订级别
配置交换设备的MSTP修订级别。缺省情况下,交换设备MST域的修订级别是0。
level:指定MST域的修订级别。整数形式,取值范围是0~65535。
MSTP是标准协议,各厂商设备的MSTP修订级别一般都默认为0。如果某厂商的设备不为0,为保持MST域内计算,在部署MSTP时,需要将各设备的MSTP修订级别修改为一致。
[Huawei-mst-region] revision-level level

激活MST域的配置
使域名、VLAN映射表和MSTP修订级别生效。
[Huawei-mst-region] active region-configuration

配置根桥和备份根桥
配置当前交换设备为指定生成树的根桥或备份根桥。
instance instance-id:指定生成树实例的编号。如果不指定instance,则配置设备在实[……]

READ MORE

「VLAN」- 虚拟局域网,Virtual LAN,IEEE 802.1Q,Dot1q

问题描述
随着网络中计算机的数量越来越多,传统的以太网络开始面临冲突严重、广播泛滥、安全性无法保障等各种问题;
在传统网络中,随着主机数量的增多,共享网络中的冲突会越来越严重,交换网络中的广播也会越来越多;
解决方案
VLAN,Virtual Local Area Network,虚拟局域网,是将一个物理的局域网在逻辑上划分成多个广播域的技术。通过在交换机上配置 VLAN,可以实现在同个 VLAN 内的用户可以进行二层互访,而不同 VLAN 间的用户被二层隔离。这样既能够隔离广播域,又能够提升网络的安全性;
原理简述
交换机通过在以太网帧的 SMAC 与 Type 之间添加 VLAN Tag 来区分不同的 VLAN;
当交换机收到数据帧后,通过 VLAN Tag 来选择发送数据的端口;
特性特征
1)隔离广播域:将规模较大的广播域隔离成若干个规模较小的广播域; 2)不受地域限制; 3)相同 VLAN 主机才能通信(不同 VLAN 间通信需要 VLAN 间路由或其他技术);
应用场景
限制广播域:广播域被限制在一个 VLAN 内,节省了带宽,提高了网络处理能力。增强局域网的安全性:不同 VLAN 内的报文在传输时是相互隔离的,即一个 VLAN 内的用户不能和其它 VLAN 内的用户直接通信
增强局域网的安全性:不同 VLAN 内的报文在传输时是相互隔离的,即一个 VLAN 内的用户不能和其它 VLAN 内的用户直接通信
提高了网络的健壮性:故障被限制在一个 VLAN 内,本 VLAN 内的故障不会影响其他 VLAN 的正常工作
灵活构建虚拟工作组:用 VLAN 可以划分不同的用户到不同的工作组,同一工作组的用户也不必局限于某一固定的物理范围,网络构建和维护更方便灵活[……]

READ MORE

「VLAN」- 概念、术语

概述介绍

VLAN(Virtual Local Area Network)即虚拟局域网,是将一个物理的LAN在逻辑上划分成多个广播域的通信技术。 一个VLAN中所有设备都是在同一广播域内,不同的VLAN为不同的广播域。 VLAN内的设备间可以直接通信,而VLAN间不能直接互通。 VLAN之间互相隔离,不同VLAN间需通过三层设备实现相互通信。 一个VLAN一般为一个逻辑子网。 VLAN中成员多基于交换机的端口分配,所谓的VLAN划分,通常指的是将交换机的接口添加到特定的VLAN中,从而该接口所连接的设备也加入到了该VLAN。
PVID, Port VLAN ID

PVID,Port VLAN ID,端口 VLAN ID 值,即端口默认所属的 VLAN ID(比如 Huawei X7 系列交换机,默认每个端口的 PVID 是 1,即默认为 VLAN 1)
如果想将 Host 加入某个 VLAN 中,则需要修改端口的 PVID 值;Switch 之间是 Trunk 干道,因此无需设置 PVID 值。
所有的二层接口无论其类型如何,都有一个缺省VLAN ID,这个缺省VLAN ID被称为PVID(Port Default VLAN ID),在华为的交换机上,PVID缺省为1。另外,出于提高数据帧处理效率的考虑,在交换机内部,数据帧一律携带Tag。
Link Type
链路类型

Access:Host 与 Switch 之间的链路为接入链路(Access)
Trunk:Switch 与 Switch 之间链路类型为干道链路(Trunk)
Port Type
端口类型(Port Type)与链路类型相对应。
Access Port(接入端口)

特征: 1)仅能收发无标记(或与当前 VLAN 相同)的数据帧; 2)Access Port 只能加入某个 VLAN 中;
场景: 1)常用来连接用户PC、服务器等终端设备的接口。
当 Access Port 收到数据时: —- 如果 Host 发来的数据,未添加 VLAN Tag 信息: ——– 则 Switch 将会添加 VLAN Tag,且其 VLAN ID 与 端口 PVID 相同; —- 如果 Host 发来的数据,已添加 VLAN Tag 信息: ——– 则 Switch 不再添加 VLAN Tag,并进行 PVID 检查: ———— 若其与端口 PVID 一致,则转发; ———— 若其与端口 PVID 不同,则丢弃数据帧;
当 Access Port 转发数据时: —- 帧的 VLAN ID 要与端口的[……]

READ MORE

「VLAN」- 报文格式

报文格式

Tag: 1)TPID,2B,标签协议标识符:0x8100 表示后面为标准的 802.1q 的 Tag; 2)PIR,3b,优先级:在 QOS 中使用(802.1p),标注帧优先级; 3)CFI,1b,标准格式指示符:在以太网环境中,该字段为 1; 4)VLAN ID,12b,VLAN 标识符:12-bit,4096
Q:VLAN Tag 是在 SMAC 和 Type 之间的,那么交换机收到数据帧之后,是如何知道这个数据帧是带有 VLAN Tag 的,还是不带 VLAN Tag 的。换言之,交换机收到数据帧之后,他是如何判断出 SMAC 之后是 Type 还是 VLAN Tag 字段? A:实际上该图具有误导性,“VLAN Tag 位于 SMAC 与 Type 之间”这个说法并不准确。要注意观察 Type 与 Tag.TPID 字段,设备是检查 SMAC 的后两个字节,Type 与 Tag.TPID 字段在定义时是不会重复的。我们从 Wireshark 抓包结果能看到这些信息;
参考文献
Virtual LAN – Wikipedia The anatomy of a VLAN | Redscan IEEE 802.1Q – Wikipedia[……]

READ MORE

「VLAN」- 高级技术

问题描述
VLAN 技术在园区网络中应用非常广泛,通常利用VLAN进行广播域的隔离,每个VLAN属于一个广播域。
1)当网络规划时需要为每个广播域分配一个网关,但是如果 VLAN 数量过多,会导致 IP 地址规划难度加大,甚至会出现大量 IP 地址的浪费。 2)另外,在大型企业中,不仅仅有企业内部员工,还有很多合作伙伴同时在企业园区办公。对于不同合作伙伴来说,他们之间是不能直接访问的,需要给每个合作伙伴分配独立的 VLAN 进行隔离,但这会增加网络管理维护的难度。
解决方案
面临以上这些情况,需要 VLAN 的高级技术来解决,包括 VLAN 聚合、MUX VLAN、QinQ 等等;
VLAN 间路由:VLAN Routing VLAN 聚合:VLAN Aggregation、Super-VLAN MUX VLAN:MUX VLAN QinQ:QinQ[……]

READ MORE

「VLAN」- MUX VLAN(网络隔离,但又能够访问相同主机)

问题描述
既要相互隔离,又要访问相同资源:在企业网络中,各个部门之间网络需要相互独立,通常用 VLAN 技术可以实现这一要求。如果企业规模很大,且拥有大量的合作伙伴,要求各个合作伙伴能够访问公司服务器,但是不能相互访问,这时如果使用传统的 VLAN 技术,不但需要耗费大量的 VLAN ID,还增加网络管理者的工作量同时也增加了维护量。

解决方案
MUX VLAN(Multiplex VLAN)这是用于解决该问题,它提供通过 VLAN 进行网络资源控制的机制。
原理简述
MUX VLAN 分为: 1)Principal VLAN(主 VLAN) 2)Subordinate VLAN(从 VLAN):Subordinate VLAN 又分为 Separate VLAN(隔离型从 VLAN)和 Group VLAN(互通型 从 VLAN);

+— Principal VLAN ————————— Principal Port —- 能与 MUX VLAN 内的所有类型接口进行通信;
|
| |
| |
MUX VLAN -+ 绑定 每个 Separate VLAN 必须绑定一个 Principal VLAN;
| | +— Separate VLAN — Separate Port —– 仅能与 Principal Port 进行通信;
| | | 和其他类型的接口实现完全隔离;
| |
+— Subordinate VLAN —+
|
| 每个 Group VLAN 必须绑定一个 Principal VLAN;
+[……]

READ MORE

「VLAN」- QinQ(802.1Q in 802.1Q)

问题描述
随着以太网技术在网络中的大量部署,利用VLAN对用户进行隔离和标识受到很大限制。因为在 IEEE802.1Q 中定义的 VLAN Tag 域只有 12-bit,仅能表示4096个VLAN,无法满足城域以太网中标识大量用户的需求。
解决方案
于是 QinQ(802.1Q in 802.1Q)技术应运而生,它是一项扩展VLAN空间的技术,通过在 802.1Q 标签报文的基础上再增加一层 802.1Q 的 Tag 来达到扩展VLAN空间的功能。
原理简述
如下图所示,用户报文在公网上传递时携带两层 Tag:内层是私网 Tag;外层是公网 Tag;

交互过程
在公网的传输过程中,设备只根据 Outer VLAN Tag 转发报文,并根据报文的 Outer VLAN Tag 进行 MAC 地址学习,而用户的私网 Inner VLAN Tag 将被当作报文的数据部分进行传输。即使私网 VLAN Tag 相同,也能通过公网 VLAN Tag 区分不同用户。

1)企业A和企业B的私网VLAN分别为VLAN 1~10和VLAN 1~20。公网为企业A和企业B分配的公网VLAN分别为VLAN 3和VLAN 4。 2)当企业A和企业B中带VLAN Tag的报文进入公网时,报文外面就会被分别封装上VLAN 3和VLAN 4的VLAN标签。这样,来自不同企业网络的报文在公网中传输时被完全分开,即使这些企业网络各自的VLAN范围存在重叠,在公网中传输时也不会产生冲突。 3)当报文穿过公网,到达公网另一侧PE设备后,报文会被剥离公网为其添加的公网VLAN标签,然后再传送给用户网络的CE设备。
报文结构
QinQ 封装报文是在无标签的以太网数据帧的 SMAC-Address 字段后面加上 2 个 VLAN Tag 构成:

TPID(Tag Protocol Identifier,标签协议标识)表示帧类型: 取值为0x8100时表示 802.1Q Tag 帧。如果不支持 802.1Q 的设备收到这样的帧,会将其丢弃。
对于内层的 802.1Q Tag,该值设置为 0x8100;对于外层的 802.1Q Tag,不同厂商所使用的值可能不相同: 1)0x8100:Huawei 路由器使用 2)0x88A8:802.1ad 规定外层 802.1Q Tag 中的 TPID=0x88a8;
在华为设备上,外层 802.1Q Tag 缺省情况下值为 0x8100,可以通过命令行调整该值([Interface] qinq protocol 9100):
特性说明
WIP
应用场景
在运营商网络中
能够实现 Layer VPN 技术(还有其他更好的技术方案[……]

READ MORE

「VLAN」- VLAN Aggregation (Super-VLAN,多个 VLAN 共享网段,节约网络地址)

问题描述
在一般的三层交换机中,通常是采用一个 VLAN 对应一个 VLANIF 接口的方式实现广播域之间的互通,这在某些情况下导致 IP 地址的浪费。 1)因为同个 VLAN 对应的子网中,子网号、子网广播地址、子网网关地址不能用作 VLAN 内的主机 IP 地址, 2)且子网中实际接入的主机可能少于可用IP地址数量,空闲的IP地址也会因不能再被其他VLAN使用而被浪费掉;

解决方案
VLAN Aggregation(VLAN 聚合,也称 Super-VLAN):指在同个物理网络内,用多个 VLAN(称为 Sub-VLAN)隔离广播域,并将这些 Sub-VLAN 聚合成一个逻辑的 VLAN(称为Super-VLAN),这些 Sub-VLAN 使用相同 IP Sub Netowrk 和 Default Gateway,进而达到节约IP地址资源的目的。

Sub-VLAN: 1)只包含物理接口,不能建立三层 VLANIF 接口,用于隔离广播域; 2)每个 Sub-VLAN 内的主机与外部的三层通信是靠 Super-VLAN 的三层 VLANIF 接口来实现的。
Super-VLAN: 1)不包含物理接口,只需建立三层 VLANIF 接口,与子网网关对应; 2)与普通 VLAN 不同,Super-VLAN 的 VLANIF 接口状态取决于所包含 Sub-VLAN 的物理接口状态; 3)Super-VLAN 不能在 Trunk 中 Allow Pass;
原理简述
每个 Sub-VLAN 对应一个广播域,多个 Sub-VLAN 和同个 Super-VLAN 关联,只给 Super-VLAN 分配一个IP子网,所有 Sub-VLAN 都使用 Super-VLAN 的 IP子网和缺省网关进行三层通信(更像二层)。

所有主机的默认网关都是 192.168.1.254/24
相同 Sub-VLAN 内部通信

不同 Sub-VLAN 之间通信
问题:不同 Sub-VLAN 间进行通信,IP地址属于相同网段,因此主机会发送ARP请求,但是实际不同 Sub-VLAN 间属于不同的广播域,所以 ARP 报文无法传递到其他 Sub-VLAN,ARP 请求得不到响应,设备无法学习到对端MAC地址,从而无法完成Sub-VLAN之间通信。
解决:要实现 Sub-VLAN 之间的通信,需要在 Super-VLAN 的 VLANIF 中开启 ARP Porxy 功能。

当 Super-VLAN VLANIF100 开启 ARP Proxy 后,PC1 和 PC2 间通信过程如下: 1)PC1 发现其与 PC2 在同个网段,且自己 ARP 表无 PC2 对应表项[……]

READ MORE