「BGP」- 路径属性:Preferred-Value(Huawei)

属性概述
Preferred-Value(协议首选值)是华为设备的特有属性(思科设备的 weight 属性,功能类似),该属性仅在本地(Intra-AS)有效。
当 BGP RIB 中,存在到相同目的地的路由时,将优先选择 Preferred-Value 值高的路由。类似于“Anti-MED”属性(覆盖 MED 功能)。

[R2] peer 10.0.12.1 preferred-value 300

[R2] display bgp routing-table
BGP Local router ID is 10.0.2.2
Status codes: * – valid, > – best, d – damped,
h – history, i – internal, s – suppressed, S – Stale
Origin : i – IGP, e – EGP, ? – incomplete

Total Number of Routes: 4
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 10.0.13.0/24 10.0.12.1 0 300 100 i
* 10.0.23.3 0 200 100 i

变更规则
Preferred-Value 只能在路由器本地配置,而且只影响当前设备的路由优选。该属性不会传递给任何 BGP Peer;
取值范围:0~65535;该值越大,则路由越优先。
BGP.Route.Preferred-Value==100 优于 BGP.Route.Preferred-Value==0 的路由 ⇒ 在 BGP RIB 中,来自 10.0.12.1 的 BGP 路由为最优。
属性作用

在 R2 上,部署路由策略(Import策略),将 R1 传递过来的 10.0.13.0/24 的 Route.Preferred-Value==300,而 R3 传递过来的 Route.Preferred-Value==200。如此一来关于 10.0.13.0/24,R2 会优选 R1 传递过来的路由。
Preferred Value vs. MED
1)MED 是由 AS 100 发来,由 AS 100 控制 AS 200 进入其区域的路径;(对端控制)
2)Preferred Value 是由 AS 200 主动选择进入 AS 1[……]

READ MORE

「BGP」- 扩展团体属性(Extended Community, EXT-COMM)

属性概述
类型:WIP
作用:其中携带附加的团体属性信息;
演示:

Border Gateway Protocol – UPDATE Message
Marker: ffffffffffffffffffffffffffffffff
Length: 115
Type: UPDATE Message (2)
Withdrawn Routes Length: 0
Total Path Attribute Length: 92
Path attributes

Path Attribute – EXTENDED_COMMUNITIES
Flags: 0xc0, Optional, Transitive, Complete
1… …. = Optional: Set
.1.. …. = Transitive: Set
..0. …. = Partial: Not set
…0 …. = Extended-Length: Not set
…. 0000 = Unused: 0x0
Type Code: EXTENDED_COMMUNITIES (16)
Length: 32
Carried extended communities: (4 communities)
Route Target: 100:100 [Transitive 2-Octet AS-Specific]
Type: Transitive 2-Octet AS-Specific (0x00)
0… …. = IANA Authority: Allocated on Standard Action, Early Allocation or Experimental Basis
.0.. …. = Transitive across AS: Transitive
Subtype (AS2): Route Target (0x02)
2-Octet AS: 100
4-Octet AN: 100
OSPF[……]

READ MORE

「BGP」- 路径属性:Community

属性概述
Community(团体)属性为可选过渡属性,是种路由标记,通过添加标记,能够简化后续的路由过滤与筛选,以简化 Route Policy 操作。

Border Gateway Protocol – UPDATE Message
Marker: ffffffffffffffffffffffffffffffff
Length: 62
Type: UPDATE Message (2)
Withdrawn Routes Length: 0
Total Path Attribute Length: 34
Path attributes
Path Attribute – ORIGIN: INCOMPLETE
Path Attribute – AS_PATH: 200
Path Attribute – NEXT_HOP: 10.1.12.1
Path Attribute – MULTI_EXIT_DISC: 0
Path Attribute – COMMUNITIES: NO_ADVERTISE # 团体属性信息
Flags: 0xc0, Optional, Transitive, Complete
1… …. = Optional: Set
.1.. …. = Transitive: Set
..0. …. = Partial: Not set
…0 …. = Extended-Length: Not set
…. 0000 = Unused: 0x0
Type Code: COMMUNITIES (8)
Length: 4
Communities: NO_ADVERTISE
Community Well-known: NO_ADVERTISE (0xffffff02)
Network Layer Reachability Information (NLRI)

功能说明
将某些 Route 分配特定的 Community 属性值,而后,当匹配路由并执行相应策略时,便可基于 Community 值,而不是 Prefix/Mask 信息。
注意:
1)当前 Router 在 Route 上添加 Community 属性,而 BGP[……]

READ MORE

「BGP」- 路径属性:Cluster-List

属性概述
类型:可选过渡类型
作用:当 RR 收到携带 Cluster_List 属性的 BGP 路由,且该属性值中包含该簇的 Cluster_ID 时,RR 认为该条路由存在环路,因此将忽略关于该条路由的更新。
变更规则
取值规则
IBGP Route ⇒ RR,
当路由被 RR 反射时,该 RR(该簇)会将其 Cluster_ID 添加至路由的 Cluster_List 路径属性中。
EBGP Route ⇒ RR,RR 将不会为该 Route 创建 Cluster-List 属性;
RR ⇒ EBGP Route,RR 将移除 Cluster-List 属性;
属性作用

R2发送给R1的路由,经过R1反射给R3时除了添加Originator_ID之外还会添加Cluster_List:10.0.1.1。
R3再次反射给R4时, Cluster_List值为:10.0.3.3 10.0.1.1,
R4再次反射给R1时Cluster_List值为:10.0.4.4 10.0.3.3 10.0.1.1。
R4将路由反射给R1时,R1发现Cluster_List包含自身Cluster_ID,判断存在环路,从而忽略该路由更新。[……]

READ MORE

「BGP」- Path Attribute / Originator-ID

属性概述
类型:可选过渡类型
作用:用于标识路由的起源,即发送该路由条路的 Router ID;
变更规则
1)新增:RR 反射 BGP Route 时,将在该 BGP Route 中新增 Originator_ID 属性,其值为本地 AS 中通告该路由的 BGP 路由器 Router ID;
2)不变:若 AS 内存在多个 RR,则 Originator_ID 属性由首个 RR 创建,并且不被后续的 RR(若有)所更改;
3)防环:当 BGP Router 收到携带 Originator_ID 的 IBGP Route,并且 Originator_ID 与自身的 Router ID 相同,则忽略该路由的更新;
属性作用

在此拓扑中,R2 既是 R3 的 RR Client,也是 R1 的 RR Client:
1)R3 收到来自客户端 R2 的 BGP Route 10.0.2.0/24,在反射给 R1 前,R3 会添加 Originator_ID==10.0.2.2 到该璐由的路径属性;
2)R1 收到后,再次反射给其客户端 R2 时,继续携带 Originator_ID 属性(不发生变化);
3)R2 收到后,查看 Originator_ID 属性值,发现其存在自身的 Router-ID,遂忽略该路由更新;[……]

READ MORE

「BGP」- 路径属性:Local-Preference

属性概述
Local_Preference 即本地优先级属性,是公认任意属性,用于告诉路由器离开 AS 的首选路径;

[R2] display bgp routing-table
BGP Local router ID is 10.0.2.2
Status codes: * – valid, > – best, d – damped,
h – history, i – internal, s – suppressed, S – Stale
Origin : i – IGP, e – EGP, ? – incomplete

Total Number of Routes: 4
Network NextHop MED LocPrf PrefVal Path/Ogn

*>i 10.0.45.0/24 10.0.12.1 0 200 0 i # 在 BGP RIB 中,来自 10.0.12.1 的 BGP Route 为最优,
* i 10.0.23.3 0 100 0 i # LocPrf=200 优于 LocPrf=100

变更规则
IBGP Peer ⇒ IBGP Peer
1)范围:Local_Preference 仅在 IBGP Peer 间传递;
2)变化:除非配置策略,否则 Local_Preference 值在 IBGP Peer 间传递过程中不丢失、不变化;
EBGP Peer ⇒ EBGP Peer
1)范围:如果作为 EBGP Peer 收到的 Route 携带 Local_Preference 属性,则会进行错误处理;
2)变化:当 EBGP Peer 收到路由后,会在本地为该路由赋缺省 Local_Preference 值(100),然后再将路由传递给自己的 IBGP Peer;
修改 Local-Preference 属性
1)通过本地使用 network、import-route 引入的路由,Local_Preference=100,并能在 AS 内向其他 IBGP Peer 传递;
2)使用 [bgp] default local-preference 修改缺省 Local_Preference 值;
4)在 ASBR 上,使用 Import 方向的策略来修改 Local_Preference 属性值(即当收到路由后,在本地为路由赋予 Local_Preference[……]

READ MORE

「BGP」- 路径属性:Atomic-Aggregate、Aggregator

属性概述
Atomic_Aggregate(属性丢失警告)
类型:Atomic_Aggregate 是个公认自由决定属性。
作用:Atomic_Aggregate 它只相当于预警标记位(并不承载任何信息)。当路由器收到 BGP Route Update,且发现该路由携带 Atomic_Aggregate 属性时,它便知道该条路由可能出现 Path Attribute 的丢失。
Aggregator(属性丢失发生位置)
类型:Aggregator,这是个可选传递属性。
作用:用于标记 Route Aggregation 行为发生位置(哪个 AS;哪台 BGP Router;)。
变更规则
Atomic_Aggregate:
1)继续传递:当 Router 将路由再通告给其他 BGP Peer 时,需保留路由的 Atomic_Aggregate 属性;
2)不可细化:收到该路由更新的路由器,不能将这条路由再度明细化。
Aggregator:
1)当执行路由聚合时,当前 Router 可以为该聚合路由添加 Aggregator 属性,并在其中记录本地 AS Number 及 Router-ID;
2)继续传递:在路由传递过程中,需要保存 Aggregator 属性;
属性示例

R3上通过aggregate命令将BGP路由10.0.1.0/24、10.0.2.0/24、10.0.3.0/24、10.0.4.0/24 聚合成 10.0.0.0/16,并使用 detail-suppressed 抑制明细路由的对外发布,R3只会将聚合后的BGP路由传递给R4,而不传递聚合前的明细路由。
此时聚合路由丢失明细路由的路径属性,因此需要给下游对等体告警(通过 Atomic_Aggregate 属性),并提示聚合点(Router ID)及聚合设备所属的AS Number(通过 Aggregator 属性)

[R4]display bgp routing-table 10.0.0.0 16
BGP local router ID : 10.0.4.4
Local AS number : 400
Paths: 1 available, 1 best, 1 select
BGP routing table entry information of 10.0.0.0/16:
From: 10.0.34.3 (10.0.3.3)
Route Duration: 00h00m21s
Direct Out-interface: GigabitEthernet0/0/0
Original nexthop: 10.0.34.3
Qos information : 0x0
AS-path 300, origin i[……]

READ MORE

「BGP」- 路径属性:AS-Path

属性概述
类型:该属性为公认必遵属性;
作用:包含前往目标网络的路由经过的 AS Number 列表,以用于 BGP 域间防环检测;

Border Gateway Protocol – UPDATE Message
Marker: ffffffffffffffffffffffffffffffff
Length: 52
Type: UPDATE Message (2)
Withdrawn Routes Length: 0
Total Path Attribute Length: 24
Path attributes
Path Attribute – ORIGIN: IGP
Path Attribute – AS_PATH: 100 200 # 该路由经过 2 个 AS 区域;
Path Attribute – NEXT_HOP: 10.1.45.4
Network Layer Reachability Information (NLRI)

变更规则
路由在被通告给 EBGP Peer 时(路由**离开**当前 AS 区域),路由器会在该路由的 AS-Path 中追加上本地的 AS Number(域间防环);
路由在被通告给 IBGP Peer 时,AS-Path 不会发生改变,并且不会检查 IBGP Peer 发来的 AS-Path 属性;
属性作用
1)防环:确保路由在 EBGP Peer 间传递无环 ⇒ 如果 AS-Path 存在自身 AS Number,则不拒收该路由,以防止 Inter-AS 环路(补充:Intra-AS 通过 BGP 水平分割进行防环);
2)选路:另外,也作为路由优选的衡量标准之一 ⇒ 如果 AS-Path 越短(个数少),则路由越优先;
Types of AS-Path
AS-SEQENCE
通常出现在串行的链路中,表示 AS-Path 内的 AS Number 是个有序的列表;默认情况 AS-Path 为该类型;

AS-SET
表示该 AS-PATH 包含无序集合;
通常出现在存在并行的链路中:
路由聚合解决两类问题:(1)减轻设备的负担;(2)隐藏明细的路由信息,以减少路由震荡的影响。
但是,当路由聚合后,AS-Path 属性丢失,存在产生环路的风险,为此通过 AS-SET 类型的 AS-Path 属性携带聚合前的 AS-Path 信息。

当发生路由聚合后,为了防环,需要聚合路由携带所有明细路由中 AS_Path 携带的 AS Number,则在配置聚合命令中增加 as-set 参数。
在 R3 上,对 10.0.0.0/16 执行聚合,若添加[……]

READ MORE

「BGP」- 路径属性:Next-Hop

属性概述
该属性是一个公认必遵属性,用于指定到达目标网络的下一跳地址。
当路由器学习到 BGP Route 后,需对 BGP.Route.Next-Hop 进行检查:
1)该属性值(IP-ADDR)必须在本地路由可达;
2)如果不可达,则这条 BGP Route 不可用;
变更规则
在不同的场景中,设备对 BGP Route 的缺省 Next_Hop 属性值的设置规则如下:
EBGP Peer ⇒ EBGP Peer
路由器将 BGP Route 通告给自己的 EBGP Peer 时,将该路由的 Next_Hop 设置为自己的 SRC-IP-ADDR;

IBPG Peer ⇒ IBGP Peer
路由器在收到 EBGP Peer 所通告的 BGP Route 后,在将路由传递给自己的 IBGP Peer 时,会保持路由的 Next_Hop 属性值不变。

Q:在这种场景(EBGP-IBGP-IBGP)中,R3 会出现 NextHop 不可达问题,因为 NextHop==10.0.12.1,而 R3 无去往该地址的路由。
A:需要 IBGP-2-IBGP, next hop local 来解决,在 R2 上,将 Next Hop 修改为 R2 的地址;
MA Network (Special Case between EBGP)
根据 EBGP ⇔ EBGP 规则,需要进行 Next_Hop 修改,但是在 MA Network 中存在特殊场景:
EBGP-R1 收到来自 BGP-R2 的 BGP Route,当 EBGP-R1 向 EBGP-R3 传递时,如果该路由的 Next_Hop 与 EBGP Peer(被更新对象,被传播路由)属同个网段,那么 EBGP-R1 不会修改 Next_Hop,而是直接传递给它的 BGP Peer;

此时 R3 流量能够直接通过 R2 访问 10.0.2.0/24 网络;
如果 R1 修改 Next_Hop=10.0.123.1,则 R3 流量必须经过 R1 ⇒ R2 ⇒ 10.0.2.0/24 网络;[……]

READ MORE

「BGP」- 路由变为无效条目(修改下一跳地址)

问题描述
路由条目在传递的过程中,很可能会变为无效(比如下一跳不可达,导致收到的路由条目不能将数据包引导到目的地址)。

如图 AR1 ⇐ EBGP Peer ⇒ AR2 且 AR2 ⇐ IBGP Peer ⇒ AR4,此时 AR1 通告的 10.1.1.1/32 路由通过 BGP 传递到 AR4 时,将成为无效路由。
原因分析
BGP Update Packet 的 Next-Hop 属性保存下一跳地址,而 BGP 要求路由在 IBGP Peer 间传递时,Next-Hop 属性要保持不变。鉴于此 10.1.1.1/32 这条路由的原始下一跳为 10.1.12.1(AR1 GE 0/0/0)。
为了模拟 AS 真实环境,10.1.12.0/24 是未通过 IGP(OSPF)进行宣告的,也就是说 AR4 并不知道 10.1.12.0/24 的路由,也就无法到达路由的原始下一跳 10.1.12.1,下一跳不可达,所以成为无效路由。
解决方案
需要将下一跳引入到区域中,使 AR4 知晓去往下一跳的地址(下一跳可达):
1)OSPF 宣告(不推荐)
2)import-router(不推荐)
3)ip route-static(不推荐)
4)[bgp] peer 10.1.4.4 next-hop-local # Connect Interface,在传递路由时,将下一跳修改为发送路由的 IEGP 的源地址(AR2 地址);
补充说明
关于「通告 IBGP Route 时,自动修改 Next-Hop 属性」说明
问题描述:
BGP 要求路由在 IBGP Peer 间传递时,Next-Hop 属性要保持不变。为什么不改变 Next-Hop 属性,使其为通告 IBGP Route 的 IBGP Router 地址呢?
原因分析:
如果采用这种方案(修改 Next-Hop 属性),那么在 MA Network 中,可能出现次优路径问题。

Network-A – R1 <== (MA) ==> R2
||
vv
R3

R1 <= EBGP Peer => R2 <= IBGP Peer => R3

如果修改 Next-Hop 属性,那么 R3 收到路由的下一跳是 R2 ⇒ 此时 R3 到 R1 的 Network-A,需要经过 R2,然而 R3 本身能够直达 R1;
如果不改 Next-Hop 属性,那么 R3 收到路由的下一跳是 R1 ⇒ 此时规避次优路由,R3 直接通过 R1 到达 Network-A

补充说明:
在[……]

READ MORE

「BGP」- 路径属性:Origin

属性概述
该属性为公认必遵属性,它标识 BGP Route 的起源。

[R2] display bgp routing-table
BGP Local router ID is 10.0.2.2
Status codes: * – valid, > – best, d – damped,
h – history, i – internal, s – suppressed, S – Stale
Origin : i – IGP, e – EGP, ? – incomplete

Total Number of Routes: 4
Network NextHop MED LocPrf PrefVal Path/Ogn

*>i 10.0.1.0/24 10.0.12.1 0 200 0 i # Origin=i
* i 10.0.23.3 0 100 0 i

变更规则
在传递过程中,该属性保持不变,除非使用策略修改。
根据路由被引入 BGP 的方式不同,存在 3 种类型的 Origin 取值:
1)IGP,i:如果路由是由始发的 BGP Router 通过 network 命令注入到 BGP 的;
2)EGP,e:如果路由是通过 EGP 学习到的(现在 EGP 协议已淘汰,很少会看到该标识,除非通过策略能够调整);
3)Incomplete,?:如果路由是通过其他方式学习到的(例如 通过 import-route 命令引入到 BGP 的路由 等等);
属性作用
选路影响
当到达同个目的网络时,如果存在多条路由,其在其他条件都相同的情况下,BGP 将按如 Origin 的下顺序优选路由:
1)IGP > EGP > Incomplete[……]

READ MORE

「BGP」- 对等体关系建立

状态变迁过程

状态名称及用途(概述):
1)Idle:开始准备 TCP 的连接并监视远程对等体,当启用 BGP 时,要准备足够的资源;
2)Connect:正在进行 TCP 连接,等待完成中。认证也是在该 TCP 建立期间完成的;
3)Active:当建立 TCP 失败时,进入 Active 状态,并反复尝试连接;
4)OpenSent:TCP 连接已经建立成功,开始发送 Open 报文,Open 报文携带参数协商对等体的建立;
5)OpenConfirm:参数、能力特性协商成功。自己发送 Keepalive 包,等待对方的 Keepalive 包
6)Established:已收到对方的 Keepalive 包,双方能力特性经协商发现一致,开始使用 Update 通告路由信息
Idle
Idle 状态是 BGP 初始状态;在任何状态中,若收到 Notification 报文或 TCP 拆链通知等 Error 事件,BGP 都会转至 Idle 状态;
在 Idle 状态下,BGP 拒绝 Peer 发送的连接请求。只有在收到本设备的 Start Event 后,BGP 才开始尝试和其它 BGP Peer 进行 TCP 连接,并转至 Connect 状态。Start Event 是由一个操作者配置一个 BGP 过程,或者重置一个已经存在的过程或者路由器软件重置 BGP 过程引起的;
出于 Idle 状态的原因:
1)当配置 BGP Peer 信息后,设备将尝试建立 TCP 连接,而此时若无法发起 TCP 连接(比如 缺少去往 BGP Peer 的路由、对端完全未响应而超时 等等);
Connect ⇒ Active
当配置完 BGP Peer,并成功查找到去往 Peer 地址的路由后,会发起 TCP 三次握手:
1)在建立 TCP 过程中,处于 Connect 状态,
2)如果 TCP 建立失败(收到错误),则进入 Active 状态;
在 Connect 状态下,BGP 启动连接重传定时器(Connect Retry),等待 TCP 完成连接;
如果 TCP 连接成功,那么 BGP 向对等体发送 Open 报文,并转至 OpenSent 状态;
如果 TCP 连接失败,那么 BGP 转至 Active 状态;
如果连接重传定时器超时,BGP 仍没有收到 BGP 对等体的响应,那么 BGP 继续尝试和其它 BGP 对等体进行 TCP 连接,停留在 Connect 状态;
在 Active 状态下,BGP 总是在试图建立 TCP 连接;
如果 TCP 连接成功,那么 BGP 向对等体发送 Open 报文,关闭连接重传定时器,并转至 OpenSent 状态;
如[……]

READ MORE

「BGP」- 路由的生成

问题描述
当建立 BGP 关系后,双端开始同步路由信息。但与 IGP 不同,BGP 并不会发现路由,而需要将 IGP Route 注入到 BGP RIB 中,然后 BGP 通过 Update 报文向 BGP Peer 传递;
该笔记将记录:将 IGP Route 注入到 BGP RIB 的方法以及相关问题的解决办法;
解决方案
BGP 产生路由的方式有两类:
1)路由注入:将 IGP 路由注入 BGP 中,其方式有两种:network;import-route;
2)路由聚合:与 IGP 协议相同,BGP 也支持根据已有的路由条目进行聚合,生成聚合路由;
如下图示,演示 BGP 路由注入及通告的过程:
network
通过 network 方式注入路由:
1)该路由必须是已存在于路由表中的路由条目,否则不会被成功注入到 BGP RIB 中;
2)不同于 OSPF,OSPF 是通告地址范围,只要路由处于该地址范围内,都将内通告出去;

通过 network 注入路由,如图所示:
0)AS200/R1,其中存在两条通过 IGP OSPF 学习到的路由:10.1.0.0/24;10.2.0.0/24;
1)AS200/R1,通过 network 命令注入两条路由,此时这两条路由将会出现在 R1 的 BGP RIB 中;
2)AS200/R1,通过 Update Packet 将路由传递给 AS300/R3 路由器;
3)AS300/R3,当期其收到路由后,将这两条路由加入到本地的 BGP RIB 中;
import-route
问题描述:虽然通过 network 方式能够精确注入特定路由,但是只能逐条配置注入路由到 RIB 中,如果注入的路由条目很多配置命令将会非常复杂。
解决方案:为此使用 import-route 方式,将直连路由、静态路由、OSPF 路由、IS-IS 路由等协议的路由注入到 BGP RIB 中。

Route Aggregation
与众多 IGP 协议相同,BGP 同样支持路由的手工聚合。
当执行聚合后,在本地的 BGP RIB 中,除了原本的明细路由条目之外,还会多出一条聚合的路由条目。
在 BGP View 中:
1)通过 aggregate 命令进行 BGP 路由手工聚合。在 BGP 已学到相应的明细路由情况下,设备会额外地向 BGP 注入指定的聚合路由;
2)在执行聚合时,如果指定 detail-suppressed,则 BGP 只会向 Peer 通告聚合后的路由,而不通告聚合前的明细路由;
在聚合时,并配置 detail-suppressed 参数,此时 R3.RIB 将仅包含 BGP 聚合路由(10.1.0.0/22),无法看到聚[……]

READ MORE

「BGP」- 路由通告规则(四大原则)

问题描述
BGP 通过 network、import-route、aggregate 方式生成 BGP Route 后,通过 Update 报文将 BGP Peer 传递路由;
但是,当通告路由时,BGP 需要遵循通告原则,以防止出现环路等等问题;
解决方案
BGP 通告遵循以下原则:
1)有效、最优:只发布最优且有效路由;
2)EBGP 全部通告:从 EBGP Peer 获取的路由,会发布给所有其他 BGP Peer;
3)IBGP 水平分割:从 IBGP Peer 获取的路由,不会发送给 IBGP Peer;
4)BGP 同步规则指的是:当一台路由器从自己的 IBGP Peer 学习到一条 BGP Route 时(这类路由被称为 IBGP Route),它将不能使用该条路由或把这条路由通告给自己的 EBGP Peer,除非它又从 IGP 协议(例如 OSPF、ISIS 等等,也包含静态路由)学习到这条路由,也就是要求 IBGP 路由与 IGP 路由同步。该规则主要用于规避 BGP 路由黑洞问题。
第一原则:发布最优且有效的路由
第一原则:只发布最优且有效(即下一跳地址可达)路由,并且才可能在本地路由表中使用;

通过 display bgp routing-table 命令,能够查看 BGP RIB 信息:

Total Number of Routes: 2
Network NextHop MED LocPrf PrefVal Path/Ogn
*>i 10.1.0.0/24 11.1.0.1 0 100 0 ?
*i 11.1.0.2 0 100 0 ?

在 BGP RIB 中,同时存在以下两个标志的路由为最优、有效:
* : 代表有效
> : 代表最优

Q:部分 NextHop 可达的路由也没有放入路由表(我们观察到现象是,建立 BGP 关系的直连路由,虽然本端通告,但是下一端未再继续通告该路由)。
A:为了防止 BGP 抖动,这是华为设备的行为(并非因为其不是最优路由)。

[AR2-bgp]display bgp routing-table

Network NextHop MED LocPrf PrefVal Path/Ogn
*> 10.1.1.1/32 10.1.12.1 0[……]

READ MORE

「BGP」- 常见问题处理

route-server.ip.att.net(全球 IP 路由)

# telnet route-server.ip.att.net
Trying 12.0.1.28…
Connected to route-server.cbbtier3.att.net.
Escape character is ‘^]’.
————– route-server.ip.att.net —————
——— AT&T IP Services Route Monitor ———–

The information available through route-server.ip.att.net is offered
by AT&T’s Internet engineering organization to the Internet community.

This router maintains eBGP peerings with customer-facing routers
throughout the AT&T IP Services Backbone:

IPv4: IPv6: City:
12.122.124.12 2001:1890:ff:ffff:12:122:124:12 Atlanta, GA
12.122.124.67 2001:1890:ff:ffff:12:122:124:67 Cambridge, MA
12.122.127.66 2001:1890:ff:ffff:12:122:127:66 Chicago, IL
12.122.124.138 2001:1890:ff:ffff:12:122:124:138 Dallas, TX
12.122.83.238 2001:1890:ff:ffff:12:122:83:238 Denver, CO
12.122.120.7 2001:1890:ff:ffff:12:122:120:7 Fort Lauderdale, FL
12.122.125.6 2001:1890:ff:ffff:12:122:125:6 Los Angeles, CA
12.122.125.44 2001:1890:ff:ffff:12:122:125:44 New York, NY
12.122.125.106 2001:1890:ff:ffff:12:122:125:106 Philadelphia, PA
12.122.125.132 2001:189[……]

READ MORE

「BGP」- MP-BGP | 多协议扩展 | MultiProtocol BGP | Multiprotocol Extensions for BGP-4

描述
标准 BGP-4 仅支持 IPv4 Unicast 地址(单播协议使用的地址),即仅能传播 IPv4 Unicast Route 信息;
为了支持更多的网络层协议,提出 MP-BGP(Multiprotocol Extensions for BGP-4),RFC4760,作为 BGP-4 的多协议扩展,用于实现 BGP-4 的扩展以允许 BGP 携带多种网络层协议(例如 IPv6、L3VPN、EVPN 等);
原理
Address Family
在 BGP-4 中,IPv4 特有的三个信息:NEXT_HOP、AGGREGATOR、IPv4 NLRI;
在 MP-BGP 中,为了支持多种网络层协议,BGP-4 需要增加两种能力:

关联其他网络层协议下一跳信息的能力;
关联其他网络层协议 NLRI 的能力(指具体的路由信息);

这种两种能力,被 IANA 统称为 Address Family(地址族,AF);
MP-BGP 采用地址族(Address Family)来区分不同的网络层协议,既可以支持传统的 IPv4 地址族,又可以支持其它地址族(比如 VPN-IPv4 Address Family、IPv6 Address Family 等,关于地址族的一些取值请参考 RFC3232 / Assigned Numbers 章节);
在 BGP 中,MP-BGP 允许同时分发不同类型的 AF(地址族,Address Family),例如 IPv4 Multicast、IPv6、L3VPN、EVPN 等等;
后向兼容性
该扩展有很好的后向兼容性,即一个支持 MP-BGP 的路由器可以和一个仅支持 BGP-4 的路由器交互。
而其向后兼容的原因在于,MP-BGP 在 PATH Attribute 中加入 BGP 忽略的属性,导致 Router 处理 BPG 不会产生错误。

其他原理
针对 MP-BGP 的报文类型、VPNv4 路由发布策略,仍与普通 BGP 相同;
应用
WIP[……]

READ MORE

「MP-BGP」- 概念术语

BGP Update : Path Attribute : MP-REACH-NLRI, MP_UNREACH_NLRI
BGP 的 Update 报文在对等体之间传递路由信息,可以用于发布和撤销路由;
为了实现后向兼容性,MP-BGP 新增两个 Path Attribute 属性,通过这两个 NLRI 属性传递 IPv6 路由信息:

MP-REACH-NLRI(Multiprotocol Reachable NLRI,多协议可达 NLRI):用于发布可达路由及下一跳信息;
MP-UNREACH-NLRI(Multiprotocol Unreachable NLRI,多协议不可达 NLRI):用于撤销不可达路由;

属性类型
这两种属性都属于可选非过渡(optional and non-transitive);
属性位置
在 BGP-4 中,规定:

NEXT_HOP、AGGREGATOR 字段属于 Path Attribute 字段;
而 NLRI 字段是独立的(参考报文格式,其携带 IPv4 的路由条目);

在 MP-BGP 中,三者将都出现在 Path Attribute 中:

MP_REACH_NLRI 是 Path Attributes 的新增字段;
NEXT_HOP、NLRI 归属于 MP_REACH_NLRI 字段;[……]

READ MORE

「BGP」- BGP 4+ | BGP for IPv6 | AFI=2 | SAFI=1 | IPv6 Unicast

描述
传统的 BGP 4 只能管理 IPv4 单播路由信息。针对 MP-BGP 协议,其提供对多种网络层协议的支持。
目前的 MP-BGP,使用扩展属性和地址族来实现对 IPv6、组播、VPN 相关内容的支持,BGP 协议原有的报文机制和路由机制并没有改变。
其中,BGP 4+ 是指 MP-BGP 对 IPv6 Unicast 网络的支持特性。
现在,BGP 4+:多年的发展历程,关于 BGP 的多个 RFC 发布,从 BGP-4(RFC 1771)开始,BGP 成为无类路由协议,BGP4+ 支持多种地址族。目前关于 BGP-4 最新的 RFC 4271,相比较于 RFC1771,对于一些细节进行了进一步说明,如事件、状态机以及 BGP 路由决策流程等;
BGP 4+ 为 IPv6 Unicast 网络建立独立的拓扑结构,并将路由信息储存在独立的路由表中,保持单播 IPv4 网络和单播 IPv6 网络之间路由信息相互隔离;
原理
为了实现对 IPv6 协议的支持,BGP 需要将 IPv6 协议的信息反映到 NLRI(Network Layer Reachability Information,网络层可达信息)属性中;
当传递 IPv6 路由时

AFI=2,SAFI=1(单播),SAFI=2(组播)。
下一跳地址长度字段,通常值为 16,表示下一跳地址为下一跳路由器的全球单播地址。
保留字段,恒等于 0。
NLRI 字段,可变长字段,表示路由前缀和掩码信息;

当撤销 IPv6 路由时

AFI=2,SAFI=1(单播),SAFI=2(组播)。
Withdrawn Routes 字段代表需要撤销的路由前缀及掩码;

应用
IPv6 Networking[……]

READ MORE

「MP-BGP」- 报文格式

VPNv4 | IPv4 (AFI=1) | Labeled VPN Unicast (SAFI=128)
MP_REACH_NLRI and EXTENDED_COMMUNITIES

Frame 273: 289 bytes on wire (2312 bits), 289 bytes captured (2312 bits) on interface -, id 0
Ethernet II, Src: HuaweiTe_f0:4f:dc (00:e0:fc:f0:4f:dc), Dst: HuaweiTe_ed:04:ec (00:e0:fc:ed:04:ec)
MultiProtocol Label Switching Header, Label: 1026, Exp: 6, S: 1, TTL: 255
Internet Protocol Version 4, Src: 10.1.1.1, Dst: 10.4.4.4
Transmission Control Protocol, Src Port: 179, Dst Port: 50565, Seq: 263, Ack: 96, Len: 231
Border Gateway Protocol – UPDATE Message
Border Gateway Protocol – UPDATE Message
Marker: ffffffffffffffffffffffffffffffff
Length: 115
Type: UPDATE Message (2)
Withdrawn Routes Length: 0
Total Path Attribute Length: 92
Path attributes
Path Attribute – ORIGIN: INCOMPLETE
Path Attribute – AS_PATH: empty
Path Attribute – MULTI_EXIT_DISC: 3
Path Attribute – LOCAL_PREF: 100
Path Attribute – EXTENDED_COMMUNITIES
Flags: 0xc0, Optional, Transitive, Complete
1… …. = Optional: Set
.1.. …. = Transitive: Set
..0. …. = Partial: Not set
…0 …[……]

READ MORE

「VPN」- 技术分类

根据业务用途划分(需求)
Remote Access VPN(远程访问虚拟专网)
又称拨号 VPN、远程访问 VPN,通常使用 L2TP VPN 技术;
Access VPN 的结构有两种类型:用户发起(Client-initiated)的 VPN 连接;接入服务器发起(NAS-initiated)的 VPN 连接;
原理简述:
Access VPN 主要使用的 VPDN 技术,是 VPN 业务的一种,是基于拨号用户的虚拟专用拨号网业务。可以用于企业互联或者远程访问企业网络;

应用场景:
1)企业的内部人员移动或有远程办公需要,或者商家要提供 B2C 的安全访问服务;
2)向出差流动员工、远程办公人员和远程小办公室提供了通过公用网络与企业的 Intranet 和 Extranet 建立私有的网络连接;
Intranet VPN(企业内部虚拟专网)
解释:Intranet VPN 技术指的是,基于 Internet 在公司网关之间构建 VPN 网络;
网关到网关,通过公司的网络架构连接来自同公司的资源,通常使用 GRE 或者 DSVPN 技术;
Intranet VPN 通过公用网络进行企业内部各个分布点互联,是传统的专线网或其它企业网的扩展或替代形式;
Intranet VPN 现网中主要用于企业分支与总部,分支与分支之间互联;
现网中使用比较多的是 GRE Over IPSec。对于有较多分支的企业,可以使用 Efficient VPN 简化分支的配置,部署 IPsec 链路冗余备份后可以保障 GRE 的可靠性;
原理简述:
Intranet VPN 主要用到了以下几种技术:GRE、GRE Over IPsec、DSVPN、DSVPN IPsec 保护
应用场景:
1)企业内部各分支机构的互联,企业自建分支-总部 VPN。例如,分支机构需要访问总部的网络;
Extranet VPN(扩展的企业内部虚拟专网)
Extranet VPN 是指利用 VPN 将企业网延伸至供应商、合作伙伴与客户处,与合作伙伴企业网构成 Extranet,使不同企业间通过公网来构筑 VPN
Extranet VPN 主要用到的技术是 SSL VPN 与 L2TP;
外部用户接入内网,使用 SSL VPN 比较方便,无需安装客户端,直接使用网页即可访问公司内网,且 SSL VPN 的业务选择较多,比如网页代理、文件分享、端口转发、网络扩展;

场景:
1)提供 B2B 间的安全访问服务。例如客户、供应商、需要访问企业内部网络,用于在客户或者供应商之间构建安全的访问服务;
2)同时对于出差员工也可以使用 Extranet VPN 接入公司网络
根据组网方式不同
Remote Access VPN[……]

READ MORE

「EVPN」- BGP EVPN MPLS

问题描述
该笔记将记录:与 BGP MPLS-based EVPN 相关的技术内容,以及常见问题的解决方案。
7432 EVPN for MPLS Tunnels (1 Intra-AS)
EVPN承载二层业务
EVPN承载三层业务[……]

READ MORE

「BGP MPLS-based EVPN」- 跨域通信

问题描述
一般的 EVPN 的体系结构都是在一个 AS 内运行,任何 EVPN 的路由信息都是只能在一个 AS 内按需扩散,没有提供 AS 内的 VPN 信息向其他 AS 扩散的功能;
在一些复杂场景下,可能存在企业拥有多个 AS,这就需要扩展现有 EVPN 体系框架,提供一种跨域(Inter-AS)的 EVPN;
7432 EVPN for MPLS Tunnels (2 Inter-AS)
解决方案
跨域的 EVPN 借鉴 Inter-AS MPLS VPN 的方式,也有三种:
1)Option-A
2)Option-B
3)Option-C
Inter-AS EVPN Option-A
PE 和 ASBR 之间建立 EVPN 邻居关系,ASBR 之间不需要运行 EVPN;
ASBR 之间采用创建多个子接口并绑定 VRF-Instance 的方式实现 IP-Route 传递;
Option-A 的域内流量有两层标签,域间流量无标签;

Inter-AS EVPN Option-B
在 Option-B 总,PE 和 ASBR 之间建立 EVPN 邻居关系,ASBR 之间也建立 EVPN 邻居关系;
ASBR 在收到 MAC/IP 路由后,修改下一跳为自己,并重新分配标签发给跨域的 ASBR;
Option-B 的域内流量有两层标签,域间流量有一层 EVPN 标签;

Inter-AS EVPN Option-C
在 Option-C 中 Site1 和 Site2 的 PE 间建立端到端的 BGP LSP。
PE1 和 PE2 建立 EVPN 邻居关系。ASBR 不感知 MAC/IP 路由。
Option-C 的域内流量有三层标签,域间流量有两层标签(EVPN 和 BGP 标签)。[……]

READ MORE

「MPLS-VPN」- BGP/MPLS IP VPN(域间)

问题描述
通常,MPLS VPN 体系结构都是在同个 AS 内运行,任何 VPN 的路由信息都是只能在一个 AS 内按需扩散;
但是,随着 MPLS VPN 解决方案的广泛应用,用户数量和网络范围在快速增长,服务的终端用户的规格和范围也在增长,企业内部的站点数量越来越大,位于不同地理位置或者不同 AS 的站点存在着跨域互联的情况。某个地理位置与另外一个服务提供商相连的需求变得非常的普遍,例如国内运营商的不同城域网之间,或相互协作的运营商的骨干网之间都存在着跨越不同 AS 的情况;

为了支持 AS 之间的 VPN 路由信息交换,就需要扩展现有的协议并修改 MPLS VPN 体系框架,提供一个不同于基本的 MPLS VPN 体系结构所提供的互连模型,即跨域 MPLS VPN;
跨域产生的问题

相比于域内 MPLS VPN,跨域场景下 VPN 的工作原理不变,但是因为跨越了不同的 AS,产生了以下问题:
1)AS 之间不会运行 LDP 协议,因此 AS 之间无法建立外层隧道;
2)PE 之间没有运行 IGP 协议,缺省情况下无法建立 BGP 邻居关系,进而无法直接传递 VPNv4 路由;
解决方案
在 AS 间的 MPLS VPN 部署需要通过 Inter-AS(跨域) MPLS VPN 解决方案来实现;

在 RFC4364 中,提出三种跨域 VPN 解决方案:跨域 VPN-OptionA、跨域 VPN-OptionB、跨域 VPN-OptionC;
原理简述
Inter-Provider Backbones Option A
跨域 VPN-OptionA(Inter-Provider Backbones Option A)方式:
ASBR 之间交换 IPv4 路由,采用 IPv4 数据包转发数据;
需要跨域的 VPN 在 ASBR 间通过专用的接口管理自己的 VPN 路由,也称为 VRF-to-VRF;
配置较为简单,该方式易于理解,ASBR 之间不需要运行 MPLS;
Inter-Provider Backbones Option B
跨域 VPN-OptionB(Inter-Provider Backbones Option B)方式:
ASBR 之间交换 VPNv4 路由,采用携带一层 MPLS 标签的方式转发数据包;
ASBR 间通过 MP-EBGP 发布标签 VPN-IPv4 路由,也称为 EBGP redistribution of labeled VPN-IPv4 routes;
不需要针对每个 VPN 创建不同接口;
Inter-Provider Backbones Option C
跨域 VPN-OptionC(Inter-Provider Backbon[……]

READ MORE

「MPLS/L3VPN」- Inter-Provider Backbones Option A

概述原理
跨域 VPN-OptionA,是在跨域环境下对基本 BGP/MPLS IP VPN 的应用,这种方式下:
1)ASBR 之间不需要运行 MPLS,也不需要为跨域进行特殊配置;
2)两个 AS 的边界路由器 ASBR 直接相连,同时 ASBR 也是各自所在自治系统的 PE;
3)两个 ASBR 都把对端 ASBR 看作自己的 CE 设备,通过 EBGP 对等体关系向对端发布 IPv4-Route;

拓扑说明
两台 ASBR-PE 之间,用多个物理接口(或子接口)互连,每个接口关联一个 VRF Instance,每个 ASBR-PE 都把对端当成 CE。因此,ASBR-PE 相连的接口需要绑定 VRF,并通过 EBGP 邻居关系把 VPNv4 Route 转变成普通 IPv4 Route 从一个 AS 传递到另一个 AS。因此,两个 ASBR 相连,但不需要启用 MPLS;

细节说明
控制平面

CE1 通告 IPv4-Route 给 PE1,路由的下一跳为 CE1;
PE1 将 IPv4-Route 转化为 VPNv4-Route 发送给 ASBR-PE1,并且设置下一跳为 PE1,分配 VPN 标签 V1;
PE1、P1 分别为去往 PE1 的路由分配隧道标签 T1、T2;
ASBR-PE1 将 VPNv4-Route 转化为 IPv4-Route 发送给 ASBR-PE2,并且设置下一跳为 ASBR-PE1;
ASBR-PE2 将 IPv4-Route 转化为 VPNv4-Route 发送给 PE2,并且设置下一跳为 ASBR-PE2,分配 VPN 标签 V2;
ASBR-PE2、P2 分别为去往 ASBR-PE2 的路由分配隧道标签 T3、T4;
PE2 将 VPNv4-Route 转变为 IPv4-Route,通告给 CE2,并且设置下一跳为 PE2;
转发平面

CE2 发送一个目的地为 Net1 的 IP-Packet 给 PE2;
PE2 收到 IP-Packet 后,先封装 VPN 标签 V2,再封装外层标签 T4,然后将此报文发送给 P2;
P2 把外层标签 T4 换成 T3,然后将此报文发送给 ASBR-PE2;
ASBR-PE2 去掉所有标签,将 IP-Packet 转发给 ASBR-PE1;
ASBR-PE1 收到 IP-Packet 后先封装 VPN 标签 V1,再封装外层标签 T2,然后将此报文发送给 P1;
P1 进行标签交换,把外层标签 T2 换成 T1,然后将此报文发送给 PE1;
PE1 收到后去掉所有标签,将 IP-Packet 转发给 CE1;
补充说明:
1)为简化问题,该转发过程暂时[……]

READ MORE

「MPLS/L3VPN」- Inter-Provider Backbones Option A

without RR

虽然拓扑包含 RR 设备,但在实施的过程中,并未使用(因为 Option-A 中并不使用 RR 设备)。
第一步、基础环境配置
1)网络地址规划及配置;
2)配置域内 MPLS 实例:IGP;MPLS Domain;
3)配置域内 MPLS VPN 实例:VRF + IBGP + MP-BGP;
第二步、配置 VRF-to-VRF 互联
配置 VRF 实例,并配置对应的 RT 值,以接收各自的路由;
创建子接口,并将子接口加入 VRF 实例;
开启 dot1q termination vid xxx 以及 arp broadcast enable 来允许子接口运行 IP 协议;
并为子接口配置 IP ADDR 以实现三层互通;
两端子接口建立 IGP 或 BGP 协议;
当使用 IGP 协议时:(1)OSPF 需要对 DN-bt 进行 dn-bit-set disable 或 dn-bit-check disable;(2)同时,进入 VRF 实例,与 BGP 进行互相引入;
最后,通过 ping 检查两端网络互通情况;[……]

READ MORE

「MPLS/L3VPN」- Inter-Provider Backbones Option B

概述原理
在 OptionB 中:
1)两个 ASBR 通过 MP-EBGP 交换它们从各自 AS 的 PE 设备接收的 VPNv4-Route;
2)相比 OptionA 方式,OptionB 无需在 ASBR-PE 中创建 VRF-Instance,无需绑定任何接口。即在 ASBR 不与 CE 直接相连时,无需创建 VRF-Instance;

拓扑说明
PE 通过 MP-IBGP 将 VPNv4-Route 通告给域内的 ASBR-PE 或是 VPN RR(其中 ASBR-PE 是其客户机);
ASBR-PE 再通过 MP-EBGP 将 VPNv4 通告给另个 AS 的 ASBR-PE;
再由该 ASBR-PE 将 VPNv4-Route 通告给该 AS 内的 PE 设备;

缺省情况,鉴于 PE 上只保存与本地 VRF-Instance 的 RT 相匹配的 VPNv4-Route,所以在 ASBR 上需要关闭 RT 过滤,以完成路由传递;
配置“undo policy vpn-target”,取消对接收的 VPN 路由进行 VPN-Target 过滤;
ASBR 之间的互联接口需要支持 MPLS 转发:在华为设备中,当设备学习到路由后,如果递归路由得到的出接口未配置 MPLS 协议,则路由不会被传递;
原因是,如果不能承载 MPLS 报文,即使传递路由也无法进行数据转发,所以华为设备针对此的优化;
当网络规模较大时,可部署 RR 设备,专门负责客户侧 VPNv4-Route 的传递;
但是,该 RR 是与 ASBR 建立连接,RR=(IBGP)=>ASBR=(MP-EBGP)=>ASBR=(IBGP)=>RR;
细节说明
控制平面:无 RR 场景

CE1 通告 IPv4 路由给 PE1;
PE1 将 IPv4 路由转化为 VPNv4-Route 发送给 ASBR-PE1,并且设置下一跳为 PE1,分配 VPN 标签 V1;
ASBR-PE1 通过 MP-EBGP 将 Net1 的 VPNv4-Route 通告给 ASBR-PE2,将下一跳改为 ASBR-PE1,并重新分配一个 VPN 标签 V2;
ASBR-PE2 将 Net1 的 VPNv4-Route 通过 MP-IBGP 通告给 PE2,将下一跳指向自己(自动,next hop local),并重新分配一个 VPN 标签 V3;
PE1、P1 分别为去往 PE1 的路由分配隧道标签 T1、T2;
ASBR-PE2、P2 分别为去往 ASBR-PE2 的路由分配隧道标签 T3、T4;
PE2 将 VPNv4-Route 转变为 IPv4 路由,通告给 CE2,并且设置下一跳为[……]

READ MORE

「MPLS/L3VPN」- Inter-Provider Backbones Option B

without RR

虽然拓扑包含 RR 设备,但在实施的过程中并未使用;
第一步、基础配置
1)设备地址配置:接口地址配置,Loopback 接口配置;
2)域内 IGP 配置,实现三层网络互通;
3)配置 MPLS Domain 实现标签报文转发;
第二步、路由配置
配置 BGP 进行 IPv4-Route 传递,传递到 PE 设备;
配置 MP-BGP 进行 VPNv4-Route 传递;
第三步、数据测试
[PC1] ping PC3
with RR

RR 仅与域内设备互联,并不负责数据转发;
第一步、基础配置
1)域内 IGP 配置,实现域内三层网络互通;
2)域内 MPLS Domain 配置,实现域内标签报文转发;
第二步、路由传递
1)配置 CE/PE 设备,将路由从 CE 传递到 PE 设备;
2)配置 RR 设备,反射 VPNv4-Route 到 ASBR 设备;
第三步、访问测试
[PC1] ping PC3
注意事项(常见问题)
路由未正常传递的常见原因
设备间路由传递过程的 RT 值需要匹配,以允许路由通过;
在华为设备中,当设备学习到路由后,如果递归路由得到的出接口未配置 MPLS 协议,则路由不会被传递;
原因是,如果不能承载 MPLS 报文,即使传递路由也无法进行数据转发,所以华为设备针对此的优化;
作为 ASBR/RR 设备,需要 undo policy vpn-target 以接收所有路由;
关于 next-hop-local 配置
在 MPLS VPN 中,MP-BGP,设备从 EBGP 学习到的路由,当传递给 IGP 设备时,将自动修改下一跳,而不需要手动配置;[……]

READ MORE

「MPLS/L3VPN」- Inter-Provider Backbones Option C

概述原理
相比于 OptionA 和 OptionB 方案,在 OptionC 中:
1)在 ASBR 上,并不保存 VPNv4-Route,并且 ASBR 之间也不通告 VPNv4-Route;ASBR 只需要维护所有去往 PE 的带标签路由,并通过 EBGP 通告给对端 AS。在 Transit AS 内的 ASBR 也同样需要使用 EBGP 通告这些 Labeled-IPv4-Route。这样在不同 AS 的 PE 之间给会建立一条 LSP,从而可以建立起入口 PE 和出口 PE 之间的多跳 MP-EBGP 连接并进行 VPNv4-Route 的通告;
2)不同 AS 的 PE 间建立 Multihop 方式的 EBGP 连接,直接交换 VPNv4-Route;为了进一步扩展性能,多跳 MP-EBGP 会话可以建立在不同的 AS 的 VPN RR 之间。并且当这些 VPN RR 通告 VPNv4-Route 时不改变 Nexthop 信息。PE 只与 VPN RR 建立 MP-IBGP 会话;

注:为了方便,如上图,使用的是对称的 LSP 进行示意,但是实际上在控制平面和数据平面的工作过程上,两端 AS 的 LSP 结构是不对称的;
Solution 1 vs. Solution 2
鉴于 OptionC 是 PE 间直接交换路由,所以 PE 间要有去往彼此的路由,即两个 PE 间要能够互通;
针对不同方式实现 PE 之间路由互通,OptionC 又可以分为两种方式:
1)方式一(Solution 1):针对去往其它 AS 中的 PE 路由,本域的 ASBR 通过 BGP 将其发送给本地 PE 设备;
2)方式二(Solution 2):针对去往其它 AS 中的 PE 路由,本域的 ASBR 将其引入 IGP 中;

Q:发布带标签的路由?Labeled IPv4 Route?
在常规的模式中,PE2 收到的 Route(=>PE1) 为普通的 IPv4-Route(FIB.TunnelID=0x0),那么数据平面在数据转发时也是普通的 IPv4 封装。当 P2 收到该报文后,由于 P2 没有 Route(=>PE1),将进行丢包(路由黑洞);
注意事项:
在 PE2.FIB 中,Route(=>PE1) 的下一跳是 P2,其 TunnelID=0x0 而未通过 MPLS 转发。这是因为 MPLS 默认只为 /32 路由分配标签;
鉴于 ASBR 无 VPNv4 的路由,因此为了避免转发数据包时出现路由黑洞,PE 设备必须将数据包引入隧道,使非 PE 设备不感知 VPN 的封装信息,因此 OptionC 的两种方式都需要 ASBR 之间发布带标签的路由,以构建 AS 之间的外层[……]

READ MORE

「MPLS/L3VPN」- Inter-Provider Backbones Option C

Option C Solution 1 without RR

第零步、域内 IGP OSPF、MPLS LDP 配置
配置域内设备网络地址,并配置 IGP 实现互通;
配置域内 MPLS 协议,实现 MPLS LDP 报文转发;
第一步、配置 PE1 <==> PE2 互通,以建立 EBGP 邻居
PE1 PE2 路由通告,双向配置:
1)PE1=(IGP)=>ASBR=(EBGP)=>ASBR=(IBGP)=>PE2
2)PE1<=(IBGP)=ASBR<=(EBGP)=ASBR<=(IGP)=PE2
PE1 PE2 数据互通,Labeled IPv4-Route:

// —————————————————————————- // Route(=>PE1) => PE2

routle-policy xxxx permit node 10
— apply mpls-lable
peer xxxx route-policy xxxx export
peer xxxx label-route-capability

routle-policy xxxx permit node 10
— if-match mpls-label
— apply mpls-label
peer xxxx route-policy xxxx export
peer xxxx label-route-capablity

// —————————————————————————- // PE1 <= Route(=>PE2)

双向配置,反之亦然;

PE1 PE2 网络互通测试:

<PE2> ping -a PE2 PE1

第二步、建立 PE1 <==> PE2 邻居,以通告 VPNv4 路由
1)创建 PE1 <==> PE2 的 EBGP 邻居关系,注意配置 ebgp-max-hop 参数;
2)配置路由通告,诸如 VRF-Instance、RD、RT、network 等等;
第三步、网络访问测试

[PC1] ping PC3
[PC2] ping PC4

Option C Solution 1 with RR

第一步、配置 RR 互通,以建立 EBGP 邻居
MPLS LDP (AR8, AR3, AR1, AR13)
MPLS LDP (AR2, AR4, AR[……]

READ MORE

「MPLS-VPN」- 基础实验(华为设备)

拓扑信息

基础配置
整个环境基础 IP 地址,以用于实现三层网络互通;
配置 IGP 互通,实现 MPLS Domain 的 IP 互通;
配置 MPLS Domain 服务,实现 MPLS 环境;
注意,基础配置这里不再赘述,与常规配置并无差异;
配置 VRF 实例
VRF、RD、RT、Assign Interface to VRF

[PE-01]ip vpn-instance CORP-01-HQ
[PE-01-vpn-instance-CORP-01-HQ-af-ipv4] route-distinguisher 100:1 # 建议两端配置不同参数
[PE-01-vpn-instance-CORP-01-HQ-af-ipv4] vpn-target 100:100 both # 两端的出入值需要对应保持一致

[PE-01-GigabitEthernet0/0/0] ip binding vpn-instance CORP-01-HQ
[PE-01-GigabitEthernet0/0/0] ip address 10.0.61.1 255.255.255.0

ping -vpn-instance CORP-01-HQ 10.0.61.6

——————————————————————————–

PE-02,配置类似,这里不再赘述

配置 IGP 协议(CE ⇔ PE)
使用 OSPF 协议:

[PE-01]ospf 2 vpn-instance CORP-01-HQ
[PE-01-ospf-2]area 1
[PE-01-ospf-2-area-0.0.0.1]network 10.0.61.1 0.0.0.0

[CORP-01-HQ]ospf 1
[CORP-01-HQ-ospf-1]area 1
[CORP-01-HQ-ospf-1-area-0.0.0.1]network 10.0.61.6 0.0.0.0
[CORP-01-HQ-ospf-1-area-0.0.0.1]network 10.6.6.6 0.0.0.0

display ip route-table vpn-instance CORP-01-HQ

——————————————————————————–

PE-02 与 CORP-01-SUB,配置类似,这里不再赘述

如果使用 BGP 协议:
1)[PE],需要到 [bgp] ipv4-f[……]

READ MORE