BGP-4
协议培训
Border Gateway Protocol
9/2/2022 1华为公司北京研究所测试部
培训提纲
BGP 基本概念
BGP 有限状态机
BGP 五种报文
BGP 属性
BGP 强大的过滤功能
解决大规模网络中遇到的问题
9/2/2022 2华为公司北京研究所测试部
BGP is
the heart of the Internet
-Cisco ISP Essentials
BGP概述-边界网关协议
9/2/2022 3华为公司北京研究所测试部
BGP概述—— 主要RFC
RFC1771-BGP4
RFC1965-联盟
RFC1966-反射
RFC1997-团体
RFC2439-衰减
RFC2842-BGP4的能力通告
RFC2858-BGP的多协议扩展
RFC2918-BGP4的路由刷新能力
…...
9/2/2022 4华为公司北京研究所测试部
BGP概述—— BGP Entries
9/2/2022 5华为公司北京研究所测试部
BGP概述—— BGP AS
9/2/2022 6华为公司北京研究所测试部
BGP协议概述—— 自治系统
什么是自治系统(AS)
拥有同一选路策略,在同一技术管理部门下运行的
一组路由器
为什么引入自治系统这一概念
自治系统内部的路由协议
RIP,ISIS,OSPF,IGRP,EIGRP
自治系统之间的路由协议
BGP
9/2/2022 7华为公司北京研究所测试部
BGP协议概述—— 关于BGP
用来在AS之间传递路由信息
是一种距离矢量的路由协议,从设计上
避免了环路的发生
方法1.判断AS-path序列
方法2,从AS内学到的路由不在AS内转发
支持CIDR(无类别域间选路)
传送协议:TCP,端口号179
9/2/2022 8华为公司北京研究所测试部
什么时候使用BGP
ISP-1
ISP-2
9/2/2022 9华为公司北京研究所测试部
什么时候不使用BGP
ISP-1
9/2/2022 10华为公司北京研究所测试部
BGP协议概述—— BGP工作机制
RTA(config)#router bgp 1
RTA(config-router-bgp)#neighbor remote-as 2
RTB(config)#router bgp 2
RTB(config-router-bgp)#neighbor remote-as 1
AS1
AS2
9/2/2022 11华为公司北京研究所测试部
BGP协议概述—— BGP工作机制
BGP
构
造
的
AS
路
径
树
9/2/2022 12华为公司北京研究所测试部
BGP协议概述—— BGP两种邻居
AS1
AS2
AS3
IBGP
IGP
IGP
EBGP
EBGP
•IBGP
•EBGP
9/2/2022 13华为公司北京研究所测试部
BGP应用——BGP使用原则
多条路径时,BGP Speaker只选最优的给自己使用;
BGP Speaker只把自己使用的路由通告给相邻体;
BGP Speaker从EBGP获得的路由会向它所有BGP相邻体
通告(包括EBGP和IBGP);
BGP Speaker从IBGP获得的路由不向它的IBGP相邻体通
告;
BGP Speaker从IBGP获得的路由是否通告给它的EBGP相
邻体要依IGP和BGP同步的情况来决定;
连接一建立,BGP Speaker将把自己所有BGP路由通告给
新相邻体,以后将只通告变化的路由(incremental
updates);
9/2/2022 14华为公司北京研究所测试部
BGP应用——BGP同步
AS1
AS2
AS3
IBGP
IGP
IGP
EBGP
EBGP
RTA
RTC
RTB
取消同步的条件
内的IBGP为全连接
不是过渡AS
9/2/2022 15华为公司北京研究所测试部
Example
同步成功前
RTA#show ip bgp
BGP local router ID is
Status codes: s suppressed, d damped, h history, * valid, > best, i
internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Path
i (null) 100 600 i
9/2/2022 16华为公司北京研究所测试部
Example
同步成功后(VRP3目前的实现)
RTA(config)#show ip bgp
BGP local router ID is
Status codes: s suppressed, d damped, h history, * valid, > best, i internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Path
*> 1 600 i
* i 100 600 i
9/2/2022 17华为公司北京研究所测试部
成为BGP路由的途径之一:纯动态注入
RTB(config)#router bgp 1
RTB(config-router-bgp)#redistribute ospf
IGP
AS1 EBGP
IGP(OSPF)
RTB
RTA
9/2/2022 18华为公司北京研究所测试部
成为BGP路由的途径之二:半动态注入
RTB(config)#router bgp 1
RTB(config-router-bgp)#network mask
AS1 EBGP
IGP(OSPF)
RTB
RTA
9/2/2022 19华为公司北京研究所测试部
成为BGP路由的途径之三:静态注入
把人为规定的静态路由注
入到RTB的BGP路由表中
RTB(config)#ip route serial 0
RTB(config)#router bgp 1
RTB(config-router-bgp)#network
AS1 EBGP
IGP(OSPF)
RTB
RTA
9/2/2022 20华为公司北京研究所测试部
培训提纲
BGP 基本概念
BGP 有限状态机
BGP 四种报文
BGP 属性
BGP 强大的过滤功能
解决大规模网络中遇到的问题
9/2/2022 21华为公司北京研究所测试部
BGP有限状态机—— 六种状态
9/2/2022 22华为公司北京研究所测试部
BGP有限状态机—— IDLE状态
9/2/2022 23华为公司北京研究所测试部
BGP有限状态机—— Connect状态
9/2/2022 24华为公司北京研究所测试部
BGP有限状态机—— Active状态
9/2/2022 25华为公司北京研究所测试部
BGP有限状态机—— OpenSent状态
9/2/2022 26华为公司北京研究所测试部
BGP有限状态机—— OpenConfirm状态
9/2/2022 27华为公司北京研究所测试部
BGP有限状态机—— Established状态
9/2/2022 28华为公司北京研究所测试部
Example
RTA#show ip bgp summary
Neighbor V AS MsgRcvd MsgSent OutQ Up/Down State
4 200 1 3 0 00:00:27 Established
4 100 0 0 0 00:00:23 Active
9/2/2022 29华为公司北京研究所测试部
培训提纲
BGP 基本概念
BGP 有限状态机
BGP 五种报文
BGP 属性
BGP 强大的过滤功能
解决大规模网络中遇到的问题
9/2/2022 30华为公司北京研究所测试部
BGP报文种类
BGP报文有五种类型
Open:打招呼“你好,跟我交个朋友吧!”
KeepAlive:我还活着呢,别不理我。
Update:有新闻......
Notification:我不跟你玩了!
Route Refresh:用于动态交换路由刷新请求
9/2/2022 31华为公司北京研究所测试部
BGP报文头
BGP报文的格式是一样的:
都是“报文头+报文体”的格式
9/2/2022 32华为公司北京研究所测试部
Open报文
Open报文是由报文头加如下结构构成的。
9/2/2022 33华为公司北京研究所测试部
Example
Debug ip bgp opens
RTA#
*:BGP SEND +1156 -> +179
*:BGP SEND message type 1 (Open) length 39
*:BGP SEND version 4 as 100 holdtime 180 id authcode 0
*:BGP RECV +179 -> +1156
*:BGP RECV message type 1 (Open) length 45
*:BGP RECV version 4 as 200 holdtime 180 id authcode 0
9/2/2022 34华为公司北京研究所测试部
KeepAlive报文
KeepAlive报文只有报文头。
缺省30秒发一次
9/2/2022 35华为公司北京研究所测试部
Example
debug ip bgp keepalives
*:BGP SEND +179 -> +1090
*:BGP SEND message type 4 (KeepAlive) length 19
9/2/2022 36华为公司北京研究所测试部
Update报文
Update报文由报文头加如下结构构成。
属性
9/2/2022 37华为公司北京研究所测试部
Example
Debug ip bgp updates
*:BGP RECV +1040 -> +179
*:BGP RECV message type 2 (Update) length 47
*:BGP RECV Unreachable prefix data length 3
*:BGP RECV
*:BGP RECV flags 0x40 code Origin(1): IGP
*:BGP RECV flags 0x40 code ASPath(2): 600
*:BGP RECV flags 0x40 code NextHop(3):
*:BGP RECV
9/2/2022 38华为公司北京研究所测试部
Notification报文
Notification报文由报文头加如下结构构成。
9/2/2022 39华为公司北京研究所测试部
Example
Debug ip bgp packets
*:BGP SEND +179 -> +1040
*:BGP SEND message type 3 (Notification) length 21
*:BGP SEND Notification code 3 (Update Message Error) subc
ode 11 (AS path attribute problem)
收到notification报文后,bgp连接立即断开
9/2/2022 40华为公司北京研究所测试部
Route Refresh报文
AFI - Address Family Identifier (16 bit).
Res. - Reserved (8 bit) field. Should be set to 0 by the sender
and ignored by the receiver.
SAFI - Subsequent Address Family Identifier (8 bit).
9/2/2022 41华为公司北京研究所测试部
培训提纲
BGP 基本概念
BGP 有限状态机
BGP 四种报文
BGP 属性
BGP 强大的过滤功能
解决大规模网络中遇到的问题
9/2/2022 42华为公司北京研究所测试部
BGP的路由属性
表达了路由的特征
过渡和非过渡的
必遵和可选的
便于扩展
截至目前共16种属性
BGP协议的重点
9/2/2022 43华为公司北京研究所测试部
BGP路由属性类别
公认必遵(well-known mandatory)
公认自决(well-known discretionary)
可选过渡(optional transitive)
可选非过渡(optional non-transitive)
9/2/2022 44华为公司北京研究所测试部
BGP的路由属性
1. Origin
2. AS-Path
3. Next hop
4. MED
5. Local-Preference
6. Atomic-Aggregate
7. Aggregator
8. Community
9. Originator-ID
10. Cluster-List
11. Destination Pref (MCI)
12. Advertiser (Baynet)
13. Rcid-Path (Baynet)
14. MP_Reach_NLRI
15. MP_Unreach_NLRI
16. Extended_Communities
9/2/2022 45华为公司北京研究所测试部
Origin 属性
路由是用“network”命令注入到BGP路由表中的,则origin属性为IGP
路由是用“redistribute”命令注入到BGP路由表中的,则origin属性
为Incomplete
由于IGP比Incomplete人为操纵的程度更高,因此在选路时拥有较高的
优先级。
AS1 EBGP
IGP(OSPF)
RTB
RTA
9/2/2022 46华为公司北京研究所测试部
Example
RTA(config-router-bgp)#show ip bgp
BGP local router ID is
Status codes: s suppressed, d damped, h history, * valid, > best, i
internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Path
*>i 100 600 i
*>i 100 600 e
*>i 100 600 ?
9/2/2022 47华为公司北京研究所测试部
AS-Path 属性 —— AS Sequence
IBGP
IBGP
IBGP
EBGP
EBGP
AS2
AS5
AS1
AS Path: AS Sequ 4 1
AS Path: AS Sequ 3 2 1
>AS Sequ 4 1
AS Sequ 3 2 1
AS4
AS3
9/2/2022 48华为公司北京研究所测试部
Example
RTA(config-router-bgp)#show ip bgp
BGP local router ID is
Status codes: s suppressed, d damped, h history, * valid, > best, i
internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Path
*>i 100 600 601 i
9/2/2022 49华为公司北京研究所测试部
IBGP
IBGP
IBGP
AS4
AS3
AS-Path 属性 —— AS Set
AS2
AS1
AS5
4 {1 2 3}
AS Seq 4, AS Set 1 2 3
9/2/2022 50华为公司北京研究所测试部
Example
RTA(config-router-bgp)#sho ip bgp
BGP local router ID is
Status codes: s suppressed, d damped, h history, * valid, > best, i
internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Path
*> 600 700 {300,800
,1000} ?
s>i 100 600 700 800 i
s>i 100 600 300 700 e
s>i 100 600 1000 700 ?
9/2/2022 51华为公司北京研究所测试部
Next-Hop属性
AS3 AS4
Next Hop:
Next Hop:
Next Hop:
Next Hop:
EBGP next hop设为自己
IBGP next hop不变
(前提是未配next-hop-self)
AS2
AS1
9/2/2022 52华为公司北京研究所测试部
MED(Multi-Exit-Distinguisher)属性
AS4
Next Hop:
MED: 100
AS5
AS6
AS2
对路由的外部度量
除非配置了“always-compare-med”,其它时候永
远只比较来自同一AS的路径;
不跨AS传播;
通过route-map来设定。
AS1
AS3
AS4
AS5
MED=30
MED=50
9/2/2022 53华为公司北京研究所测试部
Example
#show ip bgp
BGP local router ID is
Status codes: s suppressed, d damped, h history, * valid, > best, i
internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Path
*> 50 600 i
9/2/2022 54华为公司北京研究所测试部
本地优先(Local-Preference)属性
AS2
AS5
AS1
> Local Pref 200
Local Pref 100
AS4
AS3
Local pref = 200
Local pref = 100
9/2/2022 55华为公司北京研究所测试部
Example
RTA#show ip bgp
BGP local router ID is
Status codes: s suppressed, d damped, h history, * valid, > best, i
internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Path
*>i 50 100 600 i
!注意:bgp路由在AS内部传播时,必须具有local-
preference属性,否则连接将断开
9/2/2022 56华为公司北京研究所测试部
Community 属性
AS3 AS4
设置团体属性:
对等路径: — 1:100
客户路径: — 1:80
客户路径: — 1:80
AS3需要所有路径
匹配1:80
AS4只需要客户路径
匹配1:80
匹配1:100
团体属性作用:
增加策略的灵活性
三种公认的团体属性:
-As
-advertise
-export
9/2/2022 57华为公司北京研究所测试部
Example
RTA#show ip bgp
BGP routing table entry for
Nexthop :
Paths : 200 i, valid, external, best
Community: 100:500
9/2/2022 58华为公司北京研究所测试部
BGP如何根据属性完成决策过程
首先丢弃下一跳(next hop)不可达的路由;
优选最大衡重(weight)的路由;(Cisco所独有)
优选最高本地优先级(local-preference)的路由;
优选本路由器始发的路由 (network / aggregate)
;
优选经过AS(AS-Path)最少的路由;
优选起点类型(origin)最低的路由;
优选MED值最低的路由;
优选从EBGP学来的路由;
优选AS内部IGP的Metric最低的路由;
优选BGP ID最低的路由器发布的路由。
9/2/2022 59华为公司北京研究所测试部
BGP应用实例(一)
AS200
RTC
RTB
RTA
AS100
RTC:
router bgp 200
synchronization
neighbor remote-as 200
neighbor remote-as XXX
redistribute connected
RTA:
router bgp 100
neighbor remote-as 200
neighbor remote-as XXX
network mask
RTB:
ip route e 0
router bgp 200
synchronization
neighbor remote-as 100
neighbor remote-as 200
redistribute static
9/2/2022 60华为公司北京研究所测试部
BGP应用实例(二)
AS200
RTC
RTB
RTA
AS100
RTC#show ip bgp
BGP local router ID is
Status codes: s suppressed, d damped, h history, * valid, > best, i internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Path
*> i
i (null) 100 100 600 i
i (null) 100 ?
9/2/2022 61华为公司北京研究所测试部
BGP应用实例(三)
AS200
RTC
RTB
RTA
AS100
RTC(config-router)#no synchronization
......
RTC#show ip bgp
BGP local router ID is
Status codes: s suppressed, d damped, h history, * valid, > best, i internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Path
*> i
i 100 100 600 i
*>i 100 ?
9/2/2022 62华为公司北京研究所测试部
BGP应用实例(四)
AS200
RTC
RTB
RTA
AS100
RTC(config)#ip route s 1
......
RTC#show ip bgp
BGP local router ID is
Status codes: s suppressed, d damped, h history, * valid, > best, i internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Path
*> i
*>i 100 100 600 i
*>i 100 ?
9/2/2022 63华为公司北京研究所测试部
培训提纲
BGP 基本概念
BGP 有限状态机
BGP 四种报文
BGP 属性
BGP 强大的过滤功能
解决大规模网络中遇到的问题
9/2/2022 64华为公司北京研究所测试部
BGP强大的过滤功能
可按照路由的IP地址过滤
可依照路由经过的AS-Path过滤
可以依照路由的各种属性过滤
可以依照路由到来的接口过滤
可以按照过滤的结果设置路由的属性
9/2/2022 65华为公司北京研究所测试部
BGP过滤功能实例
RTB(config-router-bgp)#neighbor route-map deny18
RTB(config-router-bgp)#exit
RTB(config)#route-map deny18 permit 10 out
RTB(config-route-map)#match ip address 1
RTB(config-route-map)#set metric 888
RTB(config-route-map)#exit
RTB(config)#access-list 1 deny
RTB(config)#access-list 1 permit any
AS1
EBGP
RTB
RTA
AS2
RTC
不允许RTB向AS外通告路由
;
且通告出去路由的metric值必须为888
OSPF
9/2/2022 66华为公司北京研究所测试部
一个BGP路由器对路由的处理过程
输入
策略机
路由
聚合
决策
过程
加入
路由表
输出
策略机
根据属性过滤
和设置属性
合并具
体路由
从对等体
接收路由
选择最
佳路由
安装
路由
发送路由
给对等体
引入
策略机
路由表
BGP
路由 IGP
路由
9/2/2022 67华为公司北京研究所测试部
培训提纲
BGP 基本概念
BGP 有限状态机
BGP 四种报文
BGP 属性
BGP 强大的过滤功能
解决大规模网络中遇到的问题
9/2/2022 68华为公司北京研究所测试部
BGP在大规模网络中需要解决的问题
路由表庞大—— 超过100000条
BGP聚合
IBGP相邻体过多,逻辑全连接不现实
BGP联盟
BGP反射
复杂网络环境中路由的变化十分频繁
BGP衰减
9/2/2022 69华为公司北京研究所测试部
BGP聚合——通告聚合路由和具体路由
AS200
RTBRTA
……
AS100
RTA(config-router-bgp)#aggregate-address
……
9/2/2022 70华为公司北京研究所测试部
BGP聚合——只通告聚合路由
AS200
RTBRTA
……
AS100
RTA(config-router-bgp)#aggregate-address summary-only
9/2/2022 71华为公司北京研究所测试部
BGP聚合——按条件聚合路由(1)
AS200
RTBRTA
……
……
AS100
RTA(config-router-bgp)#aggregate-address
advertise-map map1
RTC RTD
……
……
9/2/2022 72华为公司北京研究所测试部
BGP聚合——按条件聚合路由(2)
AS200
RTBRTA
……
……
AS100
RTA(config-router-bgp)#aggregate-address
suppress-map map1
RTC RTD
……
……
9/2/2022 73华为公司北京研究所测试部
AS4
AS3
BGP联盟
AS2 AS1
AS65010
AS65020
AS65030
9/2/2022 74华为公司北京研究所测试部
Example
router bgp 65010
bgp confederation identifier 4
bgp confederation peers 65020
neighbor remote-as 200
neighbor remote-as 65010
neighbor remote-as 65020
neighbor remote-as 600
9/2/2022 75华为公司北京研究所测试部
Quidway路由器与cisco路由器互通的时候,
必须配置命令:
bgp confederation cisco-compatible
原因是cisco的confederation sequence和
confederation set的标识符值与RFC中的规定
正好相反
注意
9/2/2022 76华为公司北京研究所测试部
BGP反射
假设一个AS里的BGP路由器有n个,
则需要建立的IBGP连接将多达 n(n-1)/2 条
AS1
IBGP
EBGP
9/2/2022 77华为公司北京研究所测试部
BGP反射
AS1
RR——反射器
EBGP
群
客户机
客户机
非客户机
非客户机
从客户机学来的路由,反射给所有客户机和非客户机
从非客户机学来的路由,只反射给客户机
9/2/2022 78华为公司北京研究所测试部
Example
router bgp 100
bgp cluster-id 16843009
no synchronization
neighbor remote-as 200
neighbor remote-as 100
neighbor remote-as 100
neighbor route-reflector-client
neighbor remote-as 100
neighbor route-reflector-client
neighbor remote-as 600
9/2/2022 79华为公司北京研究所测试部
BGP联盟与反射的比较
联盟
反射
9/2/2022 80华为公司北京研究所测试部
不稳定链路对BGP的影响
AS200
RTBRTA
AS100
AS300
AS400
AS700
AS600
AS500
9/2/2022 81华为公司北京研究所测试部
BGP衰减
引入了惩罚值的概念,对频繁更新的路由,惩
罚值到一定程度后抑止该路由,直至其恢复稳
定方可重新投入使用。
惩罚值
时间
抑止门限
再使用门限
被抑止
9/2/2022 82华为公司北京研究所测试部
推荐读物
《因特网的路由选择技术》
《网络核心技术内幕——
专业IP网络规划与设计》
CiscoNetworker2001
Cisco ISP Essentials
Cisco的其它文章
VRP测试组内部技术网站
办公室机器请访问
实验室机器请访问
9/2/2022 83华为公司北京研究所测试部
谢谢大家
9/2/2022 84华为公司北京研究所测试部