Relative Content

K4NZDROID

category

「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

「VLAN」- 路由、不同 VLAN 网络互通

问题描述
部署 VLAN 的传统交换机不能实现不同 VLAN 间的二层报文转发,因此必须引入路由技术来实现不同 VLAN 间的通信。
解决方案
多个 VLAN 路由: 1)能够通过二层交换机 + 路由器来实现, 2)也能够通过三层交换机来实现。
其中,通过三层交换机来实现是最常用的解决方案。
原理简述
交换机 + 路由器(双路)
原理: 1)创建逻辑通过路由互联的链路;

配置过程: 1)在 SWA 上,配置 VLAN,每个 VLAN 使用一条独占的物理链路,并连接到路由器的一个接口上。 2)在逻辑上,Host A ⇒ SWA VLAN 2 ⇒ RTA ⇒ SWB VLAN 3 ⇒ Host B 3)当数据包到达 RTA 后,通过 RTA 进行数据路由;
已知问题: 1)扩展性差:三层路由器一般接口数量较少,扩展新较差; —- 解决方案:在 RTA 上,创建子接口,以解决物理接口占用过多的问题。即单臂路由,此时 SWA 连接 RTA 的接口无法使用 Access 模式。 2)单点故障; 3)流量瓶颈;
交换机 + 路由器(单臂)
原理:Dot1q终结子接口子接口也是一种三层的逻辑接口。跟VLANIF接口一样,在子接口上配置Dot1q终结功能和IP地址后,设备也会添加相应的MAC表项并置位三层转发标志位,进而实现VLAN间的三层互通
配置过程: WIP
已知问题: WIP
通过三层交换机(常用)
原理: 1)通过三层交换机的功能(具有路由功能的交换机),创建 VLANIF 并配置地址,形成直连路由; 2)在 VLANIF 上配置网络地址后,设备会在MAC地址表中添加 VLANIF 的MAC地址+VID表项,并且为表项的三层转发标志位置位; 3)当报文的 DMAC 匹配该表项后,会进行三层转发,进而实现VLAN间的三层互通

配置过程: 1)需要使用三层交换机, 2)为每个 VLAN 创建 VLANIF 接口 3)并配置网关地址,此时交换机内部将形成直连路由。 4)当交换机收到不同数据包,在内部直接完成路由。
已知问题: 1)当用户通过远端网管集中管理设备时,需要在设备上通过VLANIF接口配置IP地址作为设备管理IP,通过管理IP来STelnet到设备上进行管理。若设备上其他接口相连的用户加入该VLAN,也可以访问该设备,增加了设备的不安全因素。 —- 解决方案:配置VLAN为管理VLAN(与管理VLAN对应,没有指定为管理VLAN的VLAN称为业务VLAN),不允许Access类型和Dot1q-tunnel类型接口加入该VLAN。由于Access类型和Dot1q-tunnel类型通常用于连接用户,限制这两种类型接口加入管理[……]

READ MORE

「VLAN」- Voice VLAN(语音 VLAN)

问题描述
在网络中经常有多种流量同时传输。因为丢包和时延对通话质量的影响很大,用户对语音的质量比数据或者视频的质量更为敏感,因此在带宽有限的情况下就需要优先保证通话质量;
解决方案
Voice VLAN 是为用户的语音流专门划分的 VLAN;
通过配置 Voice VLAN,交换机可识别语音流,将语音流加入到 Voice VLAN 中传输,并对其进行有针对性的 Qos 保障;
原理简述
典型组网方案
仅占用交换机的一个接口,便可满足语音和数据业务的同时接入:
IP 电话单独接入交换机,这种方式从 IP 电话机的角度看其实另一种场景的子集:
基于 MAC-ADDR 识别

如果 IP 电话发送的是 Untagged 或携带 Tag 0 语音报文,可配置基于 MAC 地址的 Voice VLAN;
交换机接收到 PC 和 IP Phone 发出的报文后会做如下处理: 1)如果 SRC-MAC 匹配交换机上配置的 OUI (源 MAC 地址与配置的 OUI 掩码进行与运算后等于 0UI,则视为匹配) ,则为该报文加上 Voice VLAN 的 Tag,并提升报文优先级; 2)如果不匹配,就会为其加上 PVID 的 VLAN Tag;
基于 VLAN-Tag 识别

如果 IP 电话支持通过协议获取交换机上配置的 Voice VLAN 信息,此时 IP 电话发送的是带 VLAN Tag 的语音报文,可配置基于 VLAN 的 Voice VLAN;
当交换机收到 PC 和 IP Phone 发来的报文后,会判断报文的 VLAN ID 与接口上配置的 Voice VLAN ID 是否相同,若相同则认为此数据流为语音数据流并提升优先级。PC 发出的 Untagged 报文则会被加上 PVID 的 VLAN Tag;
因此基于 VLAN 的 Voice VLAN 需要 IP Phone 可获取交换机上配置的 Voice VLAN 信息。IP Phone 获取交换机上 Voice VLAN 信息的方法有很多种,例如 LLDP 协议 ;[……]

READ MORE

「Networks」- MACVLAN and IPVLAN

MACVLAN
使单张物理网卡具有多个 MAC 地址与多个 IP 地址。
多种模式(mode)
1)Private:各个虚拟接口之间是相互独立的(即使派生自相同的物理网卡),流量无法传递。

2)VEPA:该模式需要交换机支持 VEPA(Virtual Ethernet Port Aggregator,IEEE 802.1Qbg)。VEPA 交换机将“来自物理接口的数据包”回送到“相同的物理接口”,以实现主机的通讯。

3)Bridge:相同物理接口之间的流量,将直接转发,而不通过外部的路由交换;而发往外部的流量,则通过外部路由交换处理。但是,如果物理接口 Down 掉,则子接口也无法正常工作。

4)Passthru:允许单个虚拟主机直接使用物理接口。

5)Source:通过“被允许的 MAC 地址列表”来过滤流量,来创建基于 MAC 的 VLAN。
创建 MACVLAN 接口

// 使用 Network Manager 创建

nmcli connection add \
connection.type macvlan macvlan.mode bridge macvlan.parent enp2s0f0 \
connection.interface-name kvm-guest2host \
connection.id kvm-guest2host \
ipv4.method auto \
ipv4.route-metric 0

// 使用 ip 创建

ip link add link eth0 address ’00:11:11:11:11:11′ eth0.1 type macvlan
ifconfig eth0.1 up
dhclient -v eth0.1

相关文章
Introduction to Linux interfaces for virtual networking – Red Hat Developer
参考文献
Bridge vs Macvlan – HiCube How to make reachable macvlan aliases in a different namespaces? Introduction to Linux interfaces for virtual networking – Red Hat Developer Macvlan and IPvlan basics | Sreenivas Makam’s Blog macvlan: NetworkManager Reference Manual Make some virt[……]

READ MORE

「Huawei VRP」- 配置 VLAN 环境

基础命令
创建 VLAN 信息:

[Huawei] vlan <vlan-id>

[Huawei] vlan batch <vlan-id_start> [ to <vlan-id_end>]

配置 Access 端口:

[Huawei-Interface] port link-type access
[Huawei-Interface] port default vlan <vlan-id> # 配置默认 VLAN ID(PVID)

配置 Trunk 端口:

[Huawei-Interface] port link-type trunk
[Huawei-Interface] port trunk pvid vlan <vlan-id> # 配置默认 VLAN ID(PVID)
[Huawei-Interface] port trunk allow-pass vlan <vlan-id>

配置 Hybird 端口:

[Huawei-Interface] port link-type hybrid
[Huawei-Interface] port hybrid vlan <vlan-id> # 配置默认 VLAN ID(PVID)
[Huawei-Interface] port hybrid untagged vlan <vlan-id> # 在发送数据时,这些 VLAN 移除 TAG
[Huawei-Interface] port hybrid tagged vlan <vlan-id> # 在发送数据时,这些 VLAN 添加 TAG

# 注意事项
# 1)对于 hybird 端口,没有 allow-pass 指令,
# 2)需要 tagged 与 untagged 指令,都是对从接口发出数据帧的处理;
# 3)但是能接收的数据,只能与 PVID 相同;
# 2)需要配置 pvid 及 tagged 与 untagged 属性;

VLAN 划分方法
基于 交换机端口 划分(极其常用)
不同的交换机端口,接入到不同 VLAN 中,是最常用的划分方法。
Access Port + Trunk Port

Hybrid Port

基于 IP Subnet 划分
基于 主机物理地址 划分(较少使用)

[Huawei] vlan 10
[Huawei-vlan] mac-vlan mac-address 0012-3456-7890

基于[……]

READ MORE

「Network/L3」- 路由,IP 路由,路由基础,数据包转发

问题描述
以太网交换机工作在数据链路层,用于在网络内进行数据转发。而网络的拓扑结构一般会比较复杂,不同的部门,或者总部和分支可能处在不同的网络中。
解决方案
此时就需要使用路由器(Router)来连接不同的网络,通过路由实现不同网络之间的数据转发。
路由是三层网络的首要任务,完成数据包在不同网络的转发。
网络层,负责提供无连接数据传输服务,即在网络发送报文时,不需要建立连接,每个 IP 数据报文独立发送。 网络层:IP 寻址和路由选择。 数据单元:数据包,Packet;
原理简述
1)路由器获取路由:通过 直连、静态、动态 方式,获取路由条目; 2)路由器创建路由表:选择最优的路由条目,并放入路由表; 3)路由表指导路由器,以完成对 IP 报文的转发; 4)路由器通过对路由表管理,实现对路径信息管理;

当路由器收到 IP-Packet 时,路由器根据该 IP-Packet 的目的地址匹配路由条目(或路由表项): 1)若有匹配的路由条目,则依据该条目中的出接口或下一跳等信息进行报文转发; 2)若无匹配的路由条目,则路由器没有相关路由信息用于指导报文转发,此时会丢弃该报文;
应用场景
路由,用于在不同网络间的数据包转发,否则数据包只能在同个二层网络内传递。
参考文献
Wikipedia/Network layer[……]

READ MORE

「Network」- 路由,概念,术语

数据转发的原理

当 Router 收到数据包后,通过 Routing Table 查找,Router 得知 下一跳 和 出接口
下一跳、出接口,这两个要素用于封装二层的数据帧: 1)下一跳,负责提供二层以太帧的目的 MAC 地址; 2)出接口,负责提供二层以太帧的源 MAC 地址;
三层环路
常见根因:路由环路;
防环: 1)动态路由协议有一定的防环能力; 2)IP报文头部中的TTL字段可用于防止报文被无止尽地转发。
FIB, Forwarding Information Base
虽然我们经常讲“查看路由表”、“路由表指导设备转发”,但是实际设备转发数据时: 1)路由器把本地核心路由下发到 FIB, 2)通过路由表生成的 FIB(Forwarding Information Base,转发信息库)表,指导转发;
由于不同路由协议工作原理不同,因此到达同一目的网段可能会生成多个路由条目,路由器根据路由协议的优先级以及路由开销选择最优路由,并且把最优路由放入FIB表,路由器根据FIB表执行数据转发。

路由器将本地核心路由表中的最优路由下载到 FIB 表。路由器转发芯片根据 FIB 表转发报文。
当路由器收到一个 IP 数据包,路由器会根据数据包的目的 IP 地址查找 FIB 表,找到“最匹配”的路由条目后,将数据包根据路由条目所指示的出接口或下一跳转发出去。
Default Route, Gateway
缺省路由(Default Route),是指目的地址和掩码为零(0.0.0.0/0)的路由。如果报文无法匹配路由表的任何一项,则路由器将选择缺省路由来转发报文,否则丢包。

对于如上拓扑,使用如下静态路由:

[RTA] ip route-static 0.0.0.0 0.0.0.0 10.0.12.2
[RTA] ip route-static 0.0.0.0 0.0.0.0 10.0.12.2 GigabitEthernet 0/0/0

如果使用不当,容易引起环路。[……]

READ MORE

「NETWORK」- 概念术语:自治系统(AS, Autonomous System)

问题描述
OSPF、IS-IS 等 IGP 路由协议,在组织机构网络内部广泛应用。随着网络规模扩大,网络中路由数量不断增长,IGP 已无法管理大规模网络。
解决方案
自治系统(AS,Autonomous System)的概念由此诞生,其指 同个管理机构管理、使用统一路由策略 的 路由器的集合。即划分区域进行管理。

概念术语
AS Number
不同 AS 通过 AS Number 区分;IANA 负责 AS Number 的分发;
AS Number 存在 16bit、32bit 两种长度: 1)在长度为 16bit 的 AS Number 表示方式中:公:1-64512;私:64512 – 65535; 2)在长度为 32bit 的 AS Number 表示方式中:4200000000-4294967294 为 Private AS Number;

参考文献
Removing Private AS Numbers in BGP – Knowledge Base – Palo Alto Networks[……]

READ MORE

「Network」- IP 网络寻址方法:Unicast,Multicast,Broadcast,Anycast

在网络中,存在各种各样的业务,从流量模型看一般可以将业务分为两类:
点到点业务:比如FTP,WEB业务,此类业务主要特点是不同的用户有不同的需求,比如用户A需要下载资料A,用户B需要下载资料B。此类业务一般由单播承载,服务器对于不同用户发送不同的点到点数据流。
点到多点业务:比如IPTV,视频会议等,此类业务的特点是用户对于业务有相同的需求,比如用户A,B,C,D都需要收看视频 X;点到多点业务,此类业务可以使用单播、广播、组播承载,但使用单播或广播承载点到多点业务时存在一定问题。
单播(Unicast)
单播(Unicast)是在一台源IP主机和一台目的IP主机之间进行。网络上绝大部分的数据都是以单播的形式传输的,例如电子邮件收发、网上银行都是采用单播实现的。
在单播通信中每一个数据包都有确切的目的IP地址;对于同一份数据,如果存在多个接收者,Server需发送与接收者数目相同的单播数据包;当接收者增加到成百上千时,将极大加重Server创建相同数据和发送多份相同拷贝后所产生的消耗,网络中的设备性能及链路带宽都会面临一定程度的浪费;单播方式较适合用户稀少的网络,当用户量较大时很难保证网络传输质量。
广播(Broadcast)
广播(Broadcast)是在一台源IP主机和网络中所有其它的IP主机之间进行,属于一对所有的通讯方式,所有主机都可以接收到(不管是否需要)。
广播数据包被限制在广播域中;一旦有设备发送广播数据,则广播域内所有设备都会收到这个数据包,并且不得不耗费资源去处理,大量的广播数据包将消耗网络的带宽及设备资源;广播方式只适合共享网段,且信息安全性和有偿服务得不到保障。
组播(Multicast)
企业存在一些公告信息,例如天气、值班表、机房注意事项、宣传视频等,为方便公司员工和来访人员及时获取这些信息,通常采用在公司人员密集处布置显示屏的方式。
每一块显示屏显示的内容一致,这是典型的点到多点通信的场景。如果采用单播的方式传递信息,网络中的设备性能及链路带宽都会面临一定程度的浪费。
解决方案
组播技术有效地满足了单点发送、多点接收的需求,实现 IP 网络中点到多点业务数据的高效传送,能够大量节约网络带宽、降低网络负载。

参考文献
Broadcasting (networking) – Wikipedia[……]

READ MORE

「NETWORKING」- RIB, Routing Information Base

RIB,Routing Information Base,Routing Table,即我们常说的“路由表”一词。
路由器维护一张本地核心路由表,此外路由器还维护着路由协议各自的路由表。功能类似于 Switch 的 CAM Table,都是表述数据的走向。
每个路由器都有路由表,而这些路由表又分类为: 1)协议路由表:协议路由表中存放着该协议发现的路由信息。比如以 OSPF 协议学习到 OSPF 路由表。 2)本地核心路由表:每台路由器都保存着一张设备的本地核心路由表。路由器对各协议路由表中相同的表项进行优选,得到本地核心路由表。本地核心路由表中的最优路由,是依据各种路由协议的优先级和度量值来选取的。
路由表项
注意:针对不同的操作系统、网络硬件,其在路由表内容的表示上,存在些许差异,但是整体的内容是类似的。
如下为华为路由器的路由表内容:

<Huawei> display ip routing-table
Route Flags: R – relay, D – download to fib
——————————————————————————
Routing Tables: Public
Destinations : 6 Routes : 6

Destination/Mask Proto Pre Cost Flags NextHop Interface

0.0.0.0/0 Static 60 0 RD 192.168.100.1 Vlanif100
127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
192.168.10.0/24 OSPF 10 2 D 192.168.100.1 Vlanif100
192.168.100.0/24 Direct 0 0 D 192.168.100.4 Vlanif100
192.168.100.4/32 Direct 0 0 D 127.0.0.1 Vlanif100

Destination/Mask
目的网[……]

READ MORE

「Network」- 路由选择的方法,Route Selection in Routers

问题描述
如果有多条去往目的地址的链路,路由器将负责进行最优选路。
解决方案

1)最长匹配原则:掩码最长(Destination/Mask) 如果目标地址匹配到多条路由条目,则选择最详细的路由(即路由覆盖的网络范围最小)
2)如果(1)相同,则根据路由协议优先级(Pre) 华为定义的路由优先级:Direct:0;OSPF 10;IS-IS 15;Static 60;RIP 100;OSPF ASE 150;OSPF NSSA 150;IBGP 255;EBGP 255; 注意:不同的厂商路由优先级的协定可能不同。
3)如果(2)相同,则根据路由度量值(Cost,开销) 度量值越小,优先级越高; 常见度量值:跳数、带宽、时延、代价、负载、可靠性等等; 协议不同,计算开销的方法也不同,比如 RIP 使用跳数;
4)如果(3)相同,会出现等价路由,负载分担;
Route Strategy
等价路由,负载分担
Equal-cost multi-path routing – Wikipedia
Equal-cost multi-path routing, Equal-cost routing, ECMP, Equal-cost multipath, Equal-cost route
路由间有两条等价路由,即通过任意链路都能到达目的网络:
对于如上拓扑,配置如下静态路由,即能实现等价路由:

[RTB] ip route-static 192.168.1.0 24 10.0.12.1
[RTB] ip route-static 192.168.1.0 24 20.0.12.1

浮动路由,路由冗余
通过调整静态路由优先级(Preference),当主链路故障之后,Shutdown,然后低优先级的路由浮现。

对于如上拓扑,使用如下静态路由:

[RTB] ip route-static 192.168.1.0 255.255.255.0 10.0.12.1
[RTB] ip route-static 192.168.1.0 255.255.255.0 20.0.12.1 preference 100

路由递归,路由迭代
路由必须有下一跳才能指导转发,但是在路由生成时下一跳可能不是直连的,因此需要计算一个直连的下一跳和对应的出接口,这个计算的过程就叫做路由递归(或路由迭代)。

针对如上拓扑: 1)RTA 使用静态路由:[RTA] ip route-static 30.1.2.0 24 20.1.1.3 2)但是,RTA 去往 30.1.2.0/24 的下一跳 20.1.1.3 并非本地直连[……]

READ MORE