您的位置:首页 > 其它

边界网关协议 BGP

2008-09-11 21:49 711 查看
BGP 是一种路径矢量路由协议,用于传输自治系统间的路由信息,BGP 在启动的时候传播整张路由表,以后只传播网络变化的部分,触发更
它采用TCP 连接传送信息,端口号为179
在Internet 上,BGP 需要通告的路由数目极大,由于TCP 提供了可靠的传送机制,同时TCP 使用滑动窗口机制,使得BGP 可以不断地
发送分组,而无需像OSPF 或EIGRP 那样停止发送并等待确认。
使用BGP 一般有如下情况:
1. 一个AS 允许包穿越它,到达其他的AS
2. 一个AS 连接多个AS
3. 必须对数据流进入和离开AS 进行控制
不使用BGP 一般有如下情况:
1. AS 只有一个出口
2. AS 的所有出口均为1 个ASP
3. 路由性能不高,内存较小,CPU 较慢,带宽不大
对于如右图的多ISP 连接,需要注意:
1. 必须劝说最初供应商通告将他的CIDR 块打一个洞,通告一条更
精细的路由
2. 必须劝说第二个供应商公布属于不同供应商的地址空间
3. 两个供应商必须在用户公布这块地址上愿意紧密合作
4. 如果用户地址空间小于/19 一些骨干ISP 不会接受此路由
注:一般前缀小于/19 的地址称为全球路由可达地址,因为骨干ISP 通常为了控制骨干级路由表大小,仅接受/19 或更
小的前缀。但由于用户的抱怨,此限制逐渐放松


BGP Basic
BGP 是路径矢量协议,它使用一个AS 号列表,数据包必须通过这些AS 才能到达目的,同时对产生的AS-path 做一定的策略。
AS-Path 对于路由环路非常容易检测到,如果路由器接受到一条含有本地AS 号的AS-path,说明出现环路。
BGP 没有给出每个AS 域内的拓扑结构,因此BGP 只能看到AS 树,而IGP 只能看到AS 域内拓扑结构,
下图是一个典型的BGP 路由表
route-server>show ip bgp
BGP table version is 4639209, local router ID is 12.0.1.28
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* 3.0.0.0 192.205.31.225 0 7018 701 80 i
* 192.205.31.161 0 7018 701 80 i
*> 192.205.31.33 0 7018 701 80 i
* 192.205.31.97 0 7018 701 80 i
* 4.0.0.0 192.205.31.225 0 7018 1 i
* 192.205.31.161 0 7018 1 i
*> 192.205.31.33 0 7018 1 i
* 192.205.31.97 0 7018 1 i
* 6.0.0.0 192.205.31.226 0 7018 568 721 1455 i
* 192.205.31.225 0 7018 568 721 1455 i
* 192.205.31.161 0 7018 701 6113 568 721 1455 i
*> 192.205.31.34 0 7018 568 721 1455 i
* 192.205.31.33 0 7018 568 721 1455 i
* 192.205.31.97 0 7018 1239 568 721 1455 i
* 9.2.0.0/16 192.205.31.225 0 7018 1 1673 1675 i
* 192.205.31.161 0 7018 701 1673 1675 i
--More--
当某个特殊目的网络有并列的,等开销的路径时,Cisco 缺省执行EBGP 只选择一条路径,但可以使用maximum-paths
改变并行路径缺省的最大数目,但仅对EBGP 有效。


BGP Message Types
BGP 具有4 种消息类型
1. Open
2. Keepalive
3. Update
4. Notification

Open Message
TCP 对话建立以后,两个邻居都要发送一个Open 消息,每个邻居都用该消息来标示自己,并规定自己的BGP 运行参数
BGP version
它明确了发起者正在运行的BGP 版本号(2,3,4),可以通过neighbor version 修改,缺省版本号为4。如果版
本号不相同,路由器将自动降低版本号重发Open 消息,直到版本一致
AS number
发起会话路由器的AS 号,用于确认EBGP 或者IBGP 会话
Hold time
路由器必须收到一个keepalive 或者更新消息之前允许经过的最大秒数。
Holdtime 必须是0(在这种情况下,必须是没有发送Keepalive)或者至少3s
Cisco 默认的holdtime 为180s,如果两个邻居间holdtime 不一致,选较短的那个做为两者可接受的时间
BGP router-ID
选取方式和OSPF 相同,使用数值最大的loopback 口地址,没有loopback 则使用物理接口上数值最大的地址
Optional parameters
用于一些可选功能的支持.例如鉴别,多协议支持及路由刷新等
Keepalive Message
如果路由器接受了他在邻居的Open 消息中的参数,它就会发送一个应答的Keepalive 消息。
默认情况Keepalive 间隔 60s,或者是达成一致的保持时间的1/3
Update Message
Update message 用来公布可用的路由,撤销的路由或者两者兼顾
Network Layer Reachability Information (NLRI)
用来公布IP 地址前缀和前缀长度的字节组,例如<19,198.24.160.0>
Path Attributes
该属性为BGP 提供了选择最短路径,检查到路由环路以及决定路由策略的信息
Withdrawn Routes
用来描述已经变成不可达并正从业务中撤销的目的地址字节组(长度和前缀)
注:虽然NLRI 字段可以包含多个前缀,但每一个更新消息只描述一条BGP 路由(因为路径属性只描述一条路
径,但该路径可能会到达多个目的地)
Notification Message
当检测到差错的时候就会发送Notification 消息,通常会导致BGP 连接终止
例如使用Notification 消息进行BGP 版本的协商

IE 描 述
1 BGP 开始
2 BGP 结束
3 BGP 传输连接打开
4 BGP 传输连接终止
5 BGP 传输连接打开失败
6 BGP 传输致命差错
7 重试连接计时器超时
8 持续时间终止
9 Keepalive 计时器终止
10 收到Open 消息
11 收到Keepalive 消息
12 收到Update 消息
13 收到Notification 消息

Idle State
a) BGP 通常以Idle State 开始(此时拒绝接收所有入连接)。当一个开始事件出现,BGP 过程初始化所有BGP 资源
打开重试连接(ConnectRetry)计时器,初始化到邻居的TCP 连接,接听来自邻居的TCP 初始化消息并将它的状态
转到Connect 状态.
b) 开始事件是由一个操作者配置一个BGP 过程,或者重置一个已经存在的过程或者路由器软件重置BGP 过程引起
c) 一个差错的出现会将BGP 过程的状态转为Idle.路由器可能会试图发起另外一个开始事件.为了防止在持续差错条件
下导致的摆动,在第一次转回到空闲状态后,路由器会自动开启重试连接计时器,当计时器终止后,路由器就会放弃重
新开始BGP.重试计时器第一次的时间为60s,下一次为前一次的2 倍120s,成指数形式增加

Connect State
此状态下BGP 过程会等到TCP 连接完成以后再决定后续的动作.
1. 如果TCP 连接建立成功,BGP 连接将ConnectRetry 清零,完成初始化并给邻居发送一个Open 消息,转移到Open
状态
2. 如果TCP 连接建立失败,BGP 继续监听由邻居发起的连接,重置ConnectRetry 计时器并转移到Active 状态
3. 如果在连接状态下,ConnectRetry 超时,计时器将重新开始,并再一次试图与邻居建立TCP 连接,BGP 保持
Connect 状态,此时如果有任何其他输入事件,转入Idle 状态

Active State
在此状态,BGP 过程试图与邻居建立一个TCP 连接
1. 如果连接成功,BGP 过程将ConnectRetry 计时器清零,完成初始化,给邻居发送一个Open 消息并转移到发送Open
消息状态,Hold 计时器设置为4mins
2. 如果在激活状态,ConnectRelay 计时器超时,将回到ConnectState 并且重置ConnectRelay 计时器.也发起一个
到对等的TCP 连接并继续监听来自对等体的连接.
3. 如果邻居试图与一个未知IP 建立TCP 会话,同时ConnectRelay 计时器重置,连接被拒绝并保持在Active 状态
4. 任何一个事件(除开始事件)都回导致状态转向idle

Open send State
在此状态下,已经发送了Open 消息,BGP 等待邻居发来的Open 消息,
1. 当收到一个Open 消息,如果发现差错,将给邻居发一个Notification 消息并转入Idle 状态
2. 如果收到的Open 消息没有差错,将给邻居发送一个Keepalive 消息并将Keepalive 计时器清零,此时协商一
个较短的holdtime,如果为0,则没有启动Hold 和keepalive 计时器,根据AS 号选择IBGP 或者EBGP,同时
将状态转移到OpenConfirm 状态
3. 如果收到一个TCP 断开消息,本地断开BGP 连接,重置ConnectRetry 计时器,并转入Active 状态

Open Confirm State
此状态下BGP 会等待一个Keepalive 消息或者Notification 消息
1. 如果收到一个Keepalive 消息,转移到Establish 状态
2. 如果收到一个Notification 消息,转入Idle 状态,并断开TCP 连接
3. 如果Hold 计时器超时,检测到一个差错或出现stop 事件,BGP 将给邻居发送一个Notification 并断开连接
转入Idle 状态

Establish State
此状态下,BGP 对等体间的连接已经完全建立,可以交换Update Keepalive 和Notification 消息,如果收到Notification
自动转入Idle,并中断连接

Path-Attributers
BGP 路径属性分为4 类
1. Well-known mandatory 公认必遵 – 所有的BGP 路由器必须识别
(Update 消息必须包含该属性)
2. Well-known discretionary 公认可遵 – 所有的BGP 路由器都能识别,但是不是一定需要
(Update 消息可以不包含该属性或者该属性任选)
3. Optional transitive 可选传递 – 不是所有的BGP 路由器都能识别,但所有BGP 路由器都能传递它
(此属性即使BGP 路由器不接受也可以传递)
4. Optional nontransitive 可选非传递– 不是所有的BGP 路由器都能识别,不能识别BGP 路由器丢弃它
(此属性如果BGP 路由器不接受则立即丢弃此消息,不再传递)

TYPE Attribute Class
1 ORIGIN Well-known mandatory
2 AS_PATH Well-known mandatory
3 NEXT_HOP Well-known mandatory
4 LOCAL_PREF Well-known discretionary
5 ATOMIC_AGGREGATE Well-known discretionary
6 AGGREGATOR Optional transitive
7 COMMUNITY Optional transitive
8 MULTI_EXIT_DISC (MED) Optional nontransitive
9 ORIGINATOR_ID Optional nontransitive
10 CLUSTER_LIST Optional nontransitive

ORIGIN
属于公认必选属性,明确了路由更新的来源,用于判断路由可信
度,当BGP 有多条路由来源时,路由器会将ORIGIN 做为路由决
策的参考
来源有如下几类:
IGP---从AS 内部学到,ORIGIN 为0
EGP---NLRI 从EGP 学到,ORIGIN 为1
Incomplete---NLRI 通过其他手段获得,ORIGIN 为3
一般来说具有较低ORIGIN 值得前缀被优先选取, IGP>BGP>重分布
例如通过重分布进入BGP,ORIGIN 属性为3,通过Network 命令注入其ORIGIN 为0

AS_PATH
描述一个路由传递过程中经过那一些AS(不算自己,从离自己最近的AS 开始,以目的网段的AS 结束),为了避免
AS 环路,如果从外部收到一条包含自己AS 的路由,就说明有环路,此时BGP 将丢弃该路由
通常一条AS_PATH 含有多个同一AS 号,用于加长AS_PATH,提供策略选路

Next_Hop
该属性描述了到公布目的地址的路径的下一跳路由器的IP 地址
1. 如果正在进行路由通告的路由器和接收的路由器在不同
的AS 中,Next_Hop 为正在宣告的路由器接口的ip
2. 如果正在宣告的路由器和接收的路由器在同一个AS 内,并且更新消息中NLRI 目的地也在同一个AS 中,
则next_hop 为一宣告的路由的邻居的ip
3. 如果正在宣告的路由器和接收的路由器是内部对等体,并且更新消息的NLRI 指向不同AS,则Next_hop
为学习到路由的外部对等实体的ip

Local_Pref
仅用在本地AS,不会传到其他AS,具有较高Local_pref 的路由将被优先考虑,默认值100

Multi_Exit_Disc(MED)
Local_Pref 仅影响离开AS 的业务量,而MED 用于影响流入AS 的业务量,它允许一个AS 将其首选入口通知给另一个
AS,具有最低MED 值的路由作为首选

Atomic_Aggregate and Aggregator
BGP 支持向另一个BGP 路由器传递重叠的路由,BGP 有如下重叠处理选项
1. 同时公布精细和初略的路由
2. 只公布精细路由
3. 之公布路由中没有重叠的部分
4. 聚合两条路由并公布聚合后的路由
5. 两者都不公布

Atomic_Aggregate 属性即是用来警告下游路由器聚合时
产生路径信息丢失,可设置附加属性Aggregate 来通告汇
聚点,Cisco 采用BGP-RID 来作为Aggregator 地址

Weight
Cisco 专有,对于离开AS 的报文,从多条路径中选择哪一条。它是不
传递的。缺省下从对等体学到的所有路由器的权重值是0,由本地路
由器产生的所有路由的权重值是32768
选路时优先选用权值最高的路径

Comunity
使可以向一组源路由使用相同的策略,即一个目的地作为一些目的地团体中的一个成员,这些目的地共享一个或多
个共同特性。它有4 个字节 – 前面两个字节的AS 号,后面两个字节的管理上定义表示符,而Cisco 正好反过来,
用ip bgpcommuity new-format 改过来
当对团体路由进行聚合时,聚合路由继承了所有路由的全部团体属性
NO_EXPORT 的团体属性,携带该属性的路由允许在邻居AS 内公布但不允许邻居AS 把路由公布其他AS
NONE 属性删除现存的团体属性
NO_ADVERTISE 属性指不在IBGP 邻居间传递带有该属性的路由
DELETE 属性用于只删除匹配特定团体列表的属性
ORIGINATOR_ID
由路由反射器(RR)使用,它是有路由发起者产生的一个32 比特的值,该值是本地AS 里路由发起者的RID,如果路由
器发起者从该属性值中看到了自己的RID,就说明有环路,该路由忽略
Cluster_LIST
由路由反射器使用,它是路由经过反射器簇ID 的一个序号。如果路由反射器在该属性值中发现自己的本地簇ID,就
说明有环路,忽略掉。如果一个簇里不止一个RR,要在进程下用bgp cluster-id 手工指定簇ID,因为默认RR 将自己
的RID 当成cluster-id

AS_SET
AS_PATH 有4 种类型
1. AS_SEQUENCE ---路径上AS 号是有序的
2. AS_SET ---路径上AS 号是无规则的
3. AS_CONFED_SEQUENCE
4. AS_CONFED_SET ---用于联盟的有规则和无规则AS 号序列(亦称为子有序和子无序PATH)
由于聚合时AS_PATH 中数据丢失,导致产生环路的潜在因素增加,因此加入AS_SET 字段,通告汇聚时包含的AS 号
AS_PATH 替代了ATOMIC_AGGREGATE 的功能, 但也有其缺点:如聚合的网络出现故障,AS_SET 的改变将通告到
聚合点以外



BGP Dscision Process
BGP 路由信息库(RIB)包括
Adj-RIBs-In: 储存未经处理的路由信息,来自对等接收到的更新消息,所包含的路由是可用的
Loc-RIB: 包含的路由是运行BGP 的路由器通过对Adj-RIBs-In 中的路由使用他的本地路由策略而选择的路由
Adj-RIBs-Out:包含运行BGP 的路由器向其对等公布的路由
3 个数据库间的处理方法如下
1. 为每一条可用路由计算优先级,并对BGP update 消息中包含的路由信息变更作出处理
2. 将最优路由放入Loc-RIB
3. 将适合的路由放入Adj-RIBs-out(调用仅在上一步完成后)
BGP 路径选择顺序:
1, Weight---权重(越大越优先)
2, Local_Pref---本地优先(越大越优先)
3, 所传递路由的本地起源优先,即下一跳是0.0.0.0(在BGP 表中,当前路由器通告的路由的下一跳为0.0.0.0)
4, AS-Path(越短越优先)
5, 起源(优先:IGP > EGP > Incomplete)
6, MED(越小越优先)
7, 首选EBGP 的路由,在联盟EBGP 和IBGP 中首选联盟EBGP 路由
8, BGP 优先选择到BGP 下一跳的IGP 度量最低的路径
9, 如果有多条来自相同相邻AS 的路由并通过Maximum-paths 使多条路径可用,则将所有开销相同的路由加入
Loc-RIB
10, BGP 优先选择最老的路径,降低滚翻的影响
11, BGP 邻居的RID(越小越优先)
12, 如果多条路径始发路由器ID 或路由器ID 相同,那么优选Cluster-List 最短的路径
13, 选择邻居ip 地址最小的路由
14,
Route Dampening
路由抑制可以阻止公布不稳定的路由,它为每条路由分配一个动态的度量数字用来反映稳定程度,当一条路由出现摆动,就给
他分配一个惩罚值,摆动得越多,惩罚值越大。当一段时间不摆动,惩罚值降低,在一个半衰期后,降到原来的一半。如果惩
罚值超过抑制上限,该路由就被抑制,只有当一个半衰期后惩罚值降低到重新使用界限时,才重新使用。
缺省下, 惩罚值 – 每次摆动1000
抑制界限 – 2000
重新使用界限 – 750
半衰期 – 15 分钟
最大抑制时间 – 60 分钟,或者半衰期的4 倍



IBGP and IGP Synchronization
在某些情况下将IGBP 当IGP 使用,但是每个IBGP 路由器必须与其它每一个IBGP 路由器建立对等,即必须保证AS 内IBGP 全互连,
全互连可以防止AS 内产生BGP 环路,同时保证BGP 路由上的所有路由器都知道如何转发数据包到目的地
IBGP 和IGP 同步规则
一条从IBGP 邻居学习到的路由在进入IGP 路由表或者公布给一个BGP 对端之前,通过IGP 必须知道该路由.
同步可以防止没有足够信息的IGP 造成路由黑洞.但也会带来很多缺陷,为了使IBGP 工作正常,可以采用2 种方法:
1. 将外部路由重分发到IGP 中从而保证IGP 和BGP 同步,但对于IGP 路由器一般无法承受巨大的internet 路由条
目,在几个大型的中断事故中,多数是BGP 无意中被分发到了OSPF 或者IS-IS 中
2. IBGP 为逻辑上全网状连接,且关闭同步功能,所有路由器通过BGP 知道外部路由,且不用通知IGP 就能将路由加入
到路由表中,但如果一个AS 中有多个IBGP 路由器,一个路由器将于其他每个路由器建立对等,十分耗时,故常采
用联盟或者路由反射器来控制IBGP 逻辑上的全互连.
同步是一个较老的BGP 特性,在新版的IOS 中,同步默认被关闭


Seattle#show ip bgp
BGP table version is 7, local router ID is 206.25.193.1
Status codes: s suppressed, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 192.168.1.0 0.0.0.0 0 32768 i
* i 192.168.1.1 0 100 0 i
*>i192.168.2.0 192.168.1.1 0 100 0 i
*>i206.25.161.0 192.168.1.1 0 100 0 i
*> 206.25.193.0 0.0.0.0 0 32768 i
Seattle#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default
Gateway of last resort is not set
C 206.25.193.0 is directly connected, Loopback0
C 192.168.1.0 is directly connected, Serial0
Seattle#

关闭同步以后
Seattle#show ip bgp
BGP table version is 11, local router ID is 206.25.193.1
Status codes: s suppressed, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight
Path
*> 192.168.1.0 0.0.0.0 0 32768 i
* i 192.168.1.1 0 100 0 i
*>i192.168.2.0 192.168.1.1 0 100 0 i
* i 192.168.2.1 0 100 0 i
*>i206.25.129.0 192.168.2.1 0 100 0 i
*>i206.25.161.0 192.168.1.1 0 100 0 i
*> 206.25.193.0 0.0.0.0 0 32768 i
Seattle#show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile,
B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter
area
E1 - OSPF external type 1, E2 - OSPF external type 2,
E - EGP
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * -
candidate default
Gateway of last resort is not set
C 206.25.193.0 is directly connected, Loopback0
B 206.25.129.0 [200/0] via 192.168.2.1, 00:07:34
C 192.168.1.0 is directly connected, Serial0
B 192.168.2.0 [200/0] via 192.168.1.1, 00:07:42
B 206.25.161.0 [200/0] via 192.168.1.1, 00:07:43
Seattle#ping 206.25.129.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 206.25.129.1, timeout is 2
seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max =
4/5/8 ms
Seattle#



Managing Large-Scale BGP Peering
在一个较大规模的AS 中试图生成全互连的IBGP 对等关系是一个规模庞大的工作,同时对于BGP 对等关系的管理也十分复杂。
BGP 设计了如下4 种方式对对等关系进行管理
Peer groups
在大型互联网络中,一个路由器的策略会应用到多个对等关系,在Cisco 路由器中可以使用一个名字和一系列的路由策略
来定义一个对等组(Peer Groups),任何对等策略对整个group 生效,对等组提高了路由器性能,只需访问一次策略数据库,
生成一个Update 消息,并将副本发给所有的对等体即可。
Communities
相对于PeerGroups 是对一组路由器使用策略,而团体(Communities)是对一组路由是用策略,团体可设置成为一个公用的
值或者管理员定义的特有团体,一条路由可以属于多个团体,路由聚合可以继承所有路由的全部团体属性
Route reflectors
在大型的AS 中,全互连带来极大的工作量,通过路由反射器(RR)可以建立一种C/S 结构,如一个含有N 个路由器的AS 内,
全互连将使用对等会话数目为(N-2)N/2,如果选取一个RR,则对等会话数目将降为N-1。对一个C/S 结构称其为一个
RR-Cluster。RR 公布路由的规则:
1,如果路由是从非客户的IBGP 对等学习到的,只将它反射给客户
2,如果路由是从客户处学习到的,将它反射给除了发起该路由的客户外所有的客户以及非客户
3,如果路由是从EBGP 邻居学来的,将它反射给所有的客户和非客户
将一个路由器配置成路由反射器(RR),用neigbhor route-reflect-client 把自己配成反射器,由该命令所定义的IBGP 邻
居路由器当成客户机,这些客户机只与RR 建立对等关系。RR 不能改动它从客户处收到的路由的属性。在一个AS 内可以
做RR 冗余,因为客户并不知道自己是客户,所有一个RR 可以是另一个路由反射器的客户。只需要RR 支持路由反射,客
户不需要支持



RR 使用了2 个BGP 路径属性:
ORIGINATOR_ID
由路由反射器(RR)使用,它是有路由发起者产生的一个32 比特的值,该值是本地
AS 里路由发起者的RID,如果路由器发起者从该属性值中看到了自己的RID,就
说明有环路,该路由忽略
Cluster_LIST
由路由反射器使用,它是路由经过反射器簇ID 的一个序号。如果路由反射器在该
属性值中发现自己的本地簇ID,就说明有环路,忽略掉。如果一个簇里不止一个
RR,要在进程下用bgp cluster-id 手工指定簇ID,因为默认RR 将自己的RID 当成
cluster-id


Confederations
联盟(confederations)是一组分成子自治系统组的AS 如右图
1. 每一个联盟分配一个联盟ID,对于外端而言,此联盟ID 代表的是
整个联盟的AS 号.联盟其实质是对自治系统的再次细分.
2. AS_PATH 中加入了AS_CONFED_SEQUENCE 和AS_CONFED_SET 用法
和AS_SEQUENCE 及AS_SET 完全相同,
3. 在联盟环境下,所有路由器必须支持联盟
4. 用预留AS(64512~65535)作为联盟中的AS 编号是一中通用做法
5. 选路优先级:联盟的外部EBGP〉AS 成员的EBGP〉IBGP
6. 联盟相对于标准的AS,Next_hops MED 可以不加修改的公布给联
盟中的其他AS 成员的EBGP 对端,而且可以发送Local_Pref 属

7. 大型系统中,联盟和RR 同时使用可以更好的控制IBGP 对等关系



BGP Message Header
BGP 消息信头包含了标记,长度和类型3 个字段
Code Type
1 Open
2 Update
3 Notification
4 Keepalive


Error
Code Error Error
Subcode Subcode Detail
1 连接不同步
1 Message Header Error 2 错误的消息长度
3 错误的消息格式
1 不支持的版本号
2 错误的对等AS(peer AS)
3 错误的BGP 标识符(BGP-RID)
4 错误的可选字段
5 鉴别失败(Authentication failure)
2 Open Message Error
6 不可接受的Holdtime
1 畸形的属性列表
2 不可识别的公认(well-known)
属性
3 丢失的公认属性
4 属性标志错误
5 属性长度错误
6 非法的ORIGIN 属性
7 AS 路由环路
8 非法的下一跳属性
9 可选属性错误
10 非法的网段(invalid network)
3 Update Message Error
11 畸形的AS_Path
4 Hold 计时器超时 0 —
5 有限状态机错误 0 —
6 终止 0 —



Aggregate-address address mask attribute-map route-map-name
用于手工汇聚路由,attribute-map 用于改变聚合路由属性
aggregate-address 172.16.0.0 255.255.252.0 attribute-map ORIGIN
!
route-map ORIGIN permit 10
set origin incomplete
set metric 50
Aggregate-address address mask route-map route-map-name
用于手工汇聚路由时改变聚合路由属性,等同于attribute-map
Aggregate-address address mask summary-only
用于手工汇聚路由时抑制精细路由的发送
Aggregate-address address mask suspress-map route-map-name
用于手工汇聚路由,并抑制相关的路由,一般需要按RFC1918 抑制路由
aggregate-address 172.16.0.0 255.255.252.0 suppress-map suppress
!
access-list 1 permit 172.16.2.0 0.0.0.255
route-map suppress permit 10
match ip address 1
Auto-summary
自动汇总到ABC 三类地址,在Cisco 较新的IOS 中,no auto-summary 自动打开
bgp always-compare-med
打开这条命令后,路由器将始终比较MED 的大小来决定路径,配置这条命令需在AS 内的所有路由器上
原算法只比较来自己相同external-AS 的通告的路由,此命令将比较所有路由,而不考虑外部AS 是否相同
bgp bestpath as-path ignore
在选路时,忽略as-path 长度的比较.但需要注意,根据选路算法,weight local_pref origin 具有更高优先级
bgp bestpath med confed
打开这条命令,在选路时,路由器将只比较所有带有As_confe_seq 属性的路由条目,此命令用于联盟路由器,同时weight
和local_pref 比MED 有更高的优先级
bgp bestpath med missing-as-worst
对于收到的一条路由前缀,如果缺失MED 值,默认将MED 设置为0,此条命令用于将没有MED 的路由前缀设置为一个最大
值4,294,967,295
bgp client-to-client reflection
在配置路由反射器时,客户到客户间的反射是默认打开的。但如果客户间是全互连的,此条命令加no 前缀,关闭客户间
的反射
bgp cluster-id 32-bit_id
BGP 可以收工指定cluster-id,cluster-id 可以用普通10 进制输入,也可以用点分10 进制输入。
bgp confederation identifier as_number
bgp confederation peers 1_or_more_as_number
前面一条命令定义整个联盟的AS 号,后面一条命令定义同属于这个AS 的其它对等AS 的号。
bgp dampening
开启BGP 的路由惩罚。
bgp dampening half-life reuse suppress max_suppress_time route-map route-map-name
half-time: 半衰期,时间1~45 分钟,即在半衰期时间惩罚值降低一半
Default 15mins
Reuse: 惩罚下限,即一条路由惩罚值降低到此阀值以下,路由将不会被抑制
Range 1~20000 default 750
Suppress: 惩罚上限,即惩罚值如果超过此值,路由将被抑制
Range 1~20000 default 2000
Max_suppress_time:最大抑制时间,默认其值为half-time 的4 倍 range 1~255minutes
bgp default local-preference local-preference
设置默认的local_pref 值,range 0~4,294,967,295,默认local_pref 100
bgp deterministic-med
打开此命令后,用于确保使用来自相同AS 的不同对等通告的路由进行MED 比较
此命令和bgp always-compare-med 的关系如下
例如有相同前缀的路由如下 (默认按路由接受顺序的逆序排序)
entry1: AS(PATH) 500, med 150, external, rid 172.16.13.1
entry2: AS(PATH) 100, med 200, external, rid 1.1.1.1
entry3: AS(PATH) 500, med 100, internal, rid 172.16.8.1
1.都关闭
1,2 将先比较,2 将优选,因为2 有更小的RID,然后2 与3 比较,2 为external,所以最优路径为2
2.打开always-compare-med
先1,2 比较,选择med 更低的1 和3 比较,由于1,3 在一个相同AS 中,所以再次比较med,选择3
3.Deterministic-med 打开,路由前缀的信息将按AS 重新分组
entry1: AS(PATH) 100, med 200, external, rid 1.1.1.1
entry2: AS(PATH) 500, med 100, internal, rid 172.16.8.4
entry3: AS(PATH) 500, med 150, external, rid 172.16.13.1
此时先组内比较,由于entry2 的MED 高于entry3,所以entry2 将和entry1 比较,由于在不同的AS,所以MED
不比较,且1 为external 的路由,所以,最有路径为1
4.都打开
此时先组内比较,由于entry2 的MED 高于entry3,所以entry2 将和entry1 比较,由于always-compare-med
打开,所以2 的MED 小于1 的MED,2 将作为最佳路径
bgp fast-external-fallover
bgp fast-external-fallover 默认是打开的,如果一个接口down 了以后,BGP 会话会立即中断,如果这个接口处与振荡状态,
那么大量的BGP 的update 和withdrawn 消息将充斥着整个链路,同时从idle 到establish 状态不停改变
对一个flapping 的端口,建议使用 no bgp fast-external-fallover,此时端口shutdown 以后,BGP 会话和邻居关
系还存在,直到超过BGP 的Holdtime 才会中断
bgp log-neighbor-changes
此命令用于记录邻居关系变更的一些信息,这些信息可以发到带有syslog-daemon 的UNIX 主机或者保存在路由器的内部
缓存中,记录消息类型如下
BGP protocol initialization
No memory for path entry
No memory for attribute entry
No memory for prefix entry
No memory for aggregate entry
No memory for dampening info
No memory for BGP updates
BGP notification received
Erroneous BGP update received
User reset request
Peer time-out
Password change
Error during connection collision
Peer closing down the session
Peer exceeding maximum prefix limit
Interface flap
Router ID changed
Neighbor deleted
Member added to peer group
Administrative shutdown
Remote AS changed
RR client configuration modification
Soft reconfiguration modification

bgp router-id ip-address
手工设置BGP 的router-id,自动设置方法和OSPF 相同,如果有Loopback 口,设置最大地址的loopback 的ip-addr
否则设置活动的物理接口的最大ip 做为rid
default-information originate
用于产生一条默认路由,产生默认路由的属性为incomplete
router bgp 2
default-information originate
neighbor 172.17.1.2 remote-as 1
!
ip route 0.0.0.0 0.0.0.0 serial 2/0
default-metric metric
用于设置指派给重分布的路由的MED 值,默认为0。如下配置,手工设置ospf 的metric 为5,静态路由为默认值10
router bgp 2
redistribute static
redistribute ospf 1 metric 5
neighbor 172.17.1.2 remote-as 1
default-metric 10
distance admin-distance ip-source-address ip-address-mask ip-access-list-number
用于设置BGP 路由的管理距离。
Admin-distance 设置BGP 管理距离值
Ip-source-address/mask 设置路由信息通告源的RID 地址和子网掩码(子网掩码采用反掩码)
Ip-access-list-number 设置一个acl,对acl 所选择的路由条目进行管理距离修改
neighbor 10.1.1.2 remote-as 2
distance 50 10.1.1.2 0.0.0.0
distance bgp external internal local
用于修改BGP 3 种类型路由的管理距离,默认值为 20 200 200
Distribute-list
利用distribute-list 进行过滤,其命令方式为 neighbor {ipaddr|peer-group} distribute-list acl-number {in|out}
neighbor 192.168.1.225 distribute-list 1 out
!
access-list 1 permit 0.0.0.0
access-list 1 deny any
maximum-paths number-of-paths
在负载均衡情况下,设置最大负载均衡的路径数目,默认为1,最大值为6
neighbor {ip-address | peer-group-name} advertise-map route-map-name1 non-exist-map route-map-name2

neighbor {ip-address | peer-group-name} advertisement-interval seconds
调整BGP 邻居通告的间隔时间,range 0~600 default IBGP 5s EBGP 30s
neighbor {ip-address | peer-group-name} default-originate
产生一条默认路由,但这种做法并不推荐,因为BGP 所通告的默认路由,很有可能没有相应的路由或者默认路由down 掉

neighbor {ip-address | peer-group-name} description text
用于描述一个邻居的详细信息
Neighbor 1.1.1.1 description 56k-ISP1
neighbor {ip-address | peer-grp} distribute-list {acl-number-or-name prefix-list-name} in|out
用于对通告的路由条目进行出站或者入站的过滤

neighbor {ip-address | peer-group-name} ebgp-multihop maximum-hop-count
EBGP 多跳,用于如下的网络拓扑结构,EBGP 邻居间没有直接连接,需要EBGP 多跳解决,默认EBGP 多跳开启后,Default 255
不打开,EBGP 多跳为1。
neighbor {ip-address | peer-group-name} filter-list as-path-list-number in|out
利用AS_PATH 对路由条目进行过滤
neighbor {ip-address | peer-group-name} filter-list as-path-list-number weight weight
用于对来自特定的AS_PATH 的路由,修改他们的权重
neighbor {ip-address | peer-group-name} maximum-prefix prefix-limit threshold-value warning-only
设置最多从邻居收到的路由前缀的条目,threshold-value 是一个比例值,当超过这个比例时,发送warning,默认值为75%
rtrA#show ip bgp neighbors
BGP neighbor is 10.1.1.2, remote AS 2, external link
Index 1, Offset 0, Mask 0x2
BGP version 4, remote router ID 10.1.1.2
BGP state = Established, table version = 7, up for 00:53:07
Last read 00:00:08, hold time is 180, keepalive interval is 60 seconds
Minimum time between advertisement runs is 30 seconds
Received 375 messages, 0 notifications, 0 in queue
Sent 343 messages, 0 notifications, 0 in queue
Prefix advertised 0, suppressed 0, withdrawn 0
Connections established 20; dropped 19
Last reset 00:53:28, due to User reset
6 accepted prefixes consume 192 bytes, maximum limit 8 (warning-only)
Threshold for warning message 75%
0 history paths consume 0 bytes
Connection state is ESTAB, I/O status: 1, unread input bytes: 0
Local host: 10.1.1.1, Local port: 11015
Foreign host: 10.1.1.2, Foreign port: 179
neighbor {ip-address | peer-group-name} next-hop-self
当一个BGP 路由器学到一条EBGP 路由,他发送给IBGP 路由器时Next-hop 属性是默认不更改的
对于多路访问的拓扑结构,为了避免额外的跳数,Next-hop 属性如下
RouterB 从A 学到一条IBGP 路由,当他通告给EBGP 邻居C 时,将不会修改下一跳,依旧保留A 的下一跳属性
对于一个NBMA 型的网络
由于A 和C 之间没有直接的链路
需要人为在RouterB 上修改Next-hop 属性
neighbor {ip-address | peer-group-name} password password
在BGP 对等链路上启用TCP MD5 认证
neighbor ip-address peer-group peer-group-name
定义对等体组,简化配置
Router A (Using peer groups)
router bgp 1
neighbor local peer-group
neighbor local remote-as 1
neighbor 10.1.1.2 peer-group local
neighbor 10.1.2.2 peer-group local
neighbor local distribute-list 1 out
neighbor 10.1.2.2 peer-group local
neighbor external peer-group
neighbor 172.16.1.2 remote-as 2
neighbor 172.16.2.2 remote-as 3
neighbor 172.16.1.2 peer-group external
neighbor 172.16.2.2 peer-group external
neighbor external distribute-list 2 out
neighbor {ip-address | peer-group-name} prefix-list prefix-list-name in|out
利用前缀进行路由过滤
Router A
router bgp 1
neighbor 10.1.1.2 remote-as 2
neighbor 10.1.1.2 prefix-list aggregate in
!
ip prefix-list aggregate seq 5 permit 172.16.0.0/22
neighbor {ip-address | peer-group-name} remote-as number
定义一个邻居,并标明邻居所在的AS 号,用于区分EBGP 和IBGP 邻居

neighbor {ip-address | peer-group-name} remove-private-as
通过此命令在宣告路由时,将AS_PATH 中的私有AS 号取消掉,一般用于联盟的出口路由器
neighbor {ip-address | peer-group-name} route-map route-map-name in|out
通过route-map 过滤路由,或者对某些路由加上weight MED tag 等特征属性
Router A
router bgp 1
neighbor 10.1.1.2 remote-as 2
neighbor 10.1.1.2 route-map filter in
!
Access-list 100 deny ip 1.1.0.0 0.0.255.255
Access-list 100 permit ip any any
route-map filter permit 10
match ip address 100
set weight 90
neighbor {ip-address | peer-group-name} route-reflector-client
定义BGP 路由反射器,此命令仅作用于RR 上,client 不需要定义路由反射器
neighbor {ip-address | peer-group-name} send-community
在配置BGP 路由器团体属性时必须加入send-community 参数
neighbor {ip-address | peer-group-name} shutdown
此命令用于关闭一个BGP 会话,但在配置中却不关闭,仅为administratively shut down
neighbor {ip-address | peer-group-name} soft-reconfiguration inbound
优雅重启动,用于在BGP 策略更改后,例如distribute-list route-map 等,默认情况下需要重新启动BGP 会话
使用此条命令后将不需要重启BGP 会话,soft-reconfiguration 将不管入站策略,将邻居的update 存放到内存中,
因此inbound 将消耗很多内存,而outboound 由于不消耗内存,所以是默认打开的
router bgp 2
neighbor 10.1.1.2 remote-as 1
neighbor 10.1.1.2 soft-reconfiguration inbound
router#
BGP neighbor is 10.1.1.2, remote AS 1, external link
Index 1, Offset 0, Mask 0x2
Inbound soft reconfiguration allowed
BGP version 4, remote router ID 172.16.1.1
BGP state = Established, table version = 6, up for 00:00:33
Last read 00:00:33, hold time is 180, keepalive interval is 60 seconds
….
neighbor {ip-address | peer-group-name} timers keepalive holdtime
设置到邻居的keepalive 和hold 时间,默认时间60 180
Router A
router bgp 1
neighbor 10.1.1.2 remote-as 2
neighbor 10.1.1.2 timers 50 150
no auto-summary
neighbor {ip-address | peer-group-name} unsuppress-map route-map-name
将某条被抑制的路由改为非抑制路由
neighbor {ip-address | peer-group-name} update-source interface-name
设置BGP update 消息来源的端口,一般把BGP 进程建立在loopback 口上,以获得更大的稳定性
router bgp 1
neighbor 172.16.1.3 remote-as 1
neighbor 172.16.1.3 update-source Loopback0
neighbor {ip-address | peer-group-name} version version-number
修改到邻居的BGP 版本号,默认出现不匹配会自动协商,但协商过程较慢,可以手工设置版本号
neighbor {ip-address | peer-group-name} weight default-weight
设置邻居通告来的路由的默认权重
network ip-address mask network-mask
用于通告网络,如果不加mask 则自动按ABC 类汇总,例如10.0.1.0 自动汇总为A 类
network ip-address mask network-mask backdoor
通告后门路由,即AS1-AS2 间那条链路为后门链路,这条链路不会公布给EBGP 对端
network ip-address mask network-mask route-map route-map-name
此命令可以对通告的路由属性通过route-map 修改
network ip-address weight weight
修改通告的网络的权重
redistribute protocol route-map route-map-name metric metric
将IGP 直连和静态路由重分布到BGP 中,同时挂接route-map 可以对相应的路由进行权重等属性的设置。同时也可以设置分布
进入后的metric 值
redistribute static route-map setwt
redistribute eigrp 1 route-map block
neighbor 172.17.1.2 remote-as 2
no auto-summary
!
access-list 1 deny 172.16.2.0 0.0.0.255
access-list 1 permit any
route-map block permit 10
match ip add 1
route-map setwt permit 10
set weight 88
redistribute protocol weight weight
对于重分布进入的路由设置相应的权重
synchronization
一条从IBGP 邻居学习到的路由在进入IGP 路由表或者公布给一个BGP 对端之前,通过IGP 必须知道该路由.
同步可以防止没有足够信息的IGP 造成路由黑洞.但也会带来很多缺陷,为了使IBGP 工作正常,可以采用2 种方法:
1. 将外部路由重分发到IGP 中从而保证IGP 和BGP 同步,但对于IGP 路由器一般无法承受巨大的internet 路由条
目,在几个大型的中断事故中,多数是BGP 无意中被分发到了OSPF 或者IS-IS 中
2. IBGP 为逻辑上全网状连接,且关闭同步功能,所有路由器通过BGP 知道外部路由,且不用通知IGP 就能将路由加入
到路由表中,但如果一个AS 中有多个IBGP 路由器,一个路由器将于其他每个路由器建立对等,十分耗时,故常采
用联盟或者路由反射器来控制IBGP 逻辑上的全互连.
同步是一个较老的BGP 特性,在新版的IOS 中,同步默认被关闭
timers bgp keepalive holdtime
修改BGP 的keepalive 和holdtime,默认为60/180 改小后可以加快汇聚速度

show ip bgp | {begin |include|exclude} line
察看BGP 表的信息,可以使用begin include exclude 等关键字过滤
rtrA#show ip bgp | include 199
BGP table version is 90, local router ID is 199.172.15.1
*> 199.172.1.0 0.0.0.0 0 32768 i
s> 199.172.2.0 0.0.0.0 0 32768 i
*> 199.172.2.0/23 0.0.0.0 32768 i
s> 199.172.3.0 0.0.0.0 0 32768 i
*> 199.172.4.0 0.0.0.0 0 32768 I
s--被抑制的路由条目
*--可用的路由
d--被惩罚(dampening)的路由
h—被惩罚(dampening)的路由
>--BGP 算法选出的最优路由
i--从IBGP 学到的路由前缀
show ip bgp prefix
rtrA#show ip bgp 199.172.1.0
BGP routing table entry for 199.172.1.0/24, version 6
Paths: (1 available, best #1)
Advertised to non peer-group peers:
172.17.1.1
Local
0.0.0.0 from 0.0.0.0 (199.172.15.1)
Origin IGP, metric 0, localpref 100, weight 32768, valid, sourced, local,best, ref 2
也可以使用
rtrA#show ip bgp 199.172.1.0 255.255.255.0
rtrA#show ip bgp 199.172.1.0/22
rtrA#show ip bgp 199.172.2.0/23 longer-prefixes
BGP table version is 90, local router ID is 199.172.15.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
s> 199.172.2.0 0.0.0.0 0 32768 i
*> 199.172.2.0/23 0.0.0.0 32768 i
s> 199.172.3.0 0.0.0.0 0 32768 i
同时,如上命令也可以使用| begin include exclude 过滤显示
rtrA#show ip bgp 199.172.2.0 255.255.254.0 longer-prefixes | include s
BGP table version is 90, local router ID is 199.172.15.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
s> 199.172.2.0 0.0.0.0 0 32768 i
s> 199.172.3.0 0.0.0.0 0 32768 I
rtrA#show ip bgp 199.172.2.0 255.255.254.0 longer-prefixes | exclude s
Network Next Hop Metric LocPrf Weight Path
*> 199.172.2.0/23 0.0.0.0 32768 I
show ip bgp cidr-only | include line
显示具有非正常mask 的路由条目,正常的mask 为A 类 8bit B 类 16bit C 类24bit
show ip bgp community community-number(s) | include line exact-match
rtrA#show ip bgp community no-export
BGP table version is 41, local router ID is 10.1.1.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 172.16.1.0/24 10.1.1.1 0 0 65530 i


show ip bgp community-list community-list-number exact-match | include line
ip community-list 1 permit no-export
rtrA#show ip bgp community 1
BGP table version is 41, local router ID is 10.1.1.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 172.16.1.0/24 10.1.1.1 0 0 65530 I
show ip bgp dampened-paths | include line
rtrA#show ip bgp dampened-paths
BGP table version is 7, local router ID is 10.1.1.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network From Reuse Path
*d 172.16.2.0/24 10.1.1.1 00:19:30 1 i
show ip bgp filter-list as-path-access-list | include line
ip as-path access-list 1 permit ^2$
rtrA#show ip bgp filter-list 1
BGP table version is 90, local router ID is 199.172.15.1
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 200.1.1.0 172.17.1.1 0 0 2 i
*> 200.1.2.0 172.17.1.1 0 0 2 i
*> 200.1.3.0 172.17.1.1 0 0 2 i
*> 200.1.4.0 172.17.1.1 0 0 2 I
show ip bgp flap-statistics | include regular-expression
rtrA#show ip bgp flap-statistics
BGP table version is 9, local router ID is 10.1.1.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network From Flaps Duration Reuse Path
*d 172.16.2.0/24 10.1.1.1 3 00:02:55 00:28:10 1
show ip bgp inconsistent-as | include line
来自相同下一跳地址的路由需要来自相同的AS,此条命令显示来自不同AS 的相同下一跳地址的路由
rtrA#show ip bgp inconsistent-as
BGP table version is 3, local router ID is 172.17.1.1
Status codes: s suppressed, * valid, > best, i - internal
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
* 199.1.1.0 172.17.1.2 0 0 1 2 ?
*> 172.17.1.2 0 0 3 ?


show ip bgp neighbors ip-address routes
rtrA#show ip bgp neighbors 172.17.1.2
BGP neighbor is 172.17.1.2, remote AS 1, external link
BGP version 4, remote router ID 199.172.15.1
BGP state = Established, up for 1w1d
Last read 00:00:43, hold time is 180, keepalive interval is 60 seconds
Neighbor capabilities:
Route refresh: advertised
Address family IPv4 Unicast: advertised and received
Received 13174 messages, 0 notifications, 0 in queue
Sent 13168 messages, 0 notifications, 0 in queue
Route refresh request: received 0, sent 0
Minimum time between advertisement runs is 30 seconds
For address family: IPv4 Unicast
BGP table version 14, neighbor version 14
Index 1, Offset 0, Mask 0x2
3 accepted prefixes consume 108 bytes
Prefix advertised 40, suppressed 0, withdrawn 0
Connections established 10; dropped 9
Last reset 1w1d, due to User reset
Connection state is ESTAB, I/O status: 1, unread input bytes: 0
Local host: 172.17.1.1, Local port: 11106
Foreign host: 172.17.1.2, Foreign port: 179
Enqueued packets for retransmit: 0, input: 0 mis-ordered: 0 (0 bytes)
Event Timers (current time is 0x357A31F8):
Timer Starts Wakeups Next
Retrans 11859 0 0x0
TimeWait 0 0 0x0
AckHold 11862 11505 0x0
SendWnd 0 0 0x0
KeepAlive 0 0 0x0
GiveUp 0 0 0x0
PmtuAger 0 0 0x0
DeadWait 0 0 0x0
iss: 2220955579 snduna: 2221180949 sndnxt: 2221180949 sndwnd: 16327
irs: 1147082461 rcvnxt: 1147307991 rcvwnd: 16156 delrcvwnd: 228
SRTT: 300 ms, RTTO: 607 ms, RTV: 3 ms, KRTT: 0 ms
minRTT: 0 ms, maxRTT: 376 ms, ACK hold: 200 ms
Flags: higher precedence, nagle
Datagrams (max data segment is 1460 bytes):
Rcvd: 23247 (out of order: 0), with data: 11862, total data bytes: 225529
Sent: 23520 (retransmit: 0), with data: 11859, total data bytes: 225388
show ip bgp paths | include line
rtrA#show ip bgp paths
Address Hash Refcount Metric Path
0x125E94 0 4 0 i
0x996F4 2 1 0 1 i
0x125D6C 2 2 0 1 i


show ip bgp peer-group peer-group-name summary
rtrA#show ip bgp peer-group
BGP neighbor is demo, peer-group leader
BGP version 4
Minimum time between advertisement runs is 5 seconds
Incoming update AS path filter list is 30
Outgoing update AS path filter list is 40
Route map for outgoing advertisements is adjust-weight
show ip bgp summary | include line
rtrA#show ip bgp summary
BGP router identifier 200.1.4.1, local AS number 2
BGP table version is 14, main routing table version 14
7 network entries and 7 paths using 931 bytes of memory
3 BGP path attribute entries using 156 bytes of memory
1 BGP AS-PATH entries using 24 bytes of memory
0 BGP route-map cache entries using 0 bytes of memory
0 BGP filter-list cache entries using 0 bytes of memory
BGP activity 193/657 prefixes, 193/186 paths, scan interval 15 secs
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
10.1.1.2 4 2 7584 7590 14 0 0 5d06h 0
172.17.1.2 4 1 13359 13353 14 0 0 1w1d 3
Clear ip bgp
clear ip bgp *
clear ip bgp * soft
clear ip bgp * soft in
clear ip bgp * soft out
clear ip bgp * soft in out
clear ip bgp AS-number
clear ip bgp AS-number soft
clear ip bgp AS-number soft in
clear ip bgp AS-number soft out
clear ip bgp AS-number soft in out
clear ip bgp neighbor-ip-address
clear ip bgp neighbor-ip-address soft
clear ip bgp neighbor-ip-address soft in
clear ip bgp neighbor-ip-address soft out
clear ip bgp neighbor-ip-address soft in out
clear ip bgp peer-group peer-group-name
clear ip bgp peer-group peer-group-name soft
clear ip bgp peer-group peer-group-name soft in
clear ip bgp peer-group peer-group-name soft out
clear ip bgp peer-group peer-group-name soft in out
可以对特定的AS 或者对等体组或者特定的邻居clear bgp 消息
clear ip bgp dampening prefix mask
重置BGP 惩罚信息
clear ip bgp flap-statistics prefix mask
重置路由摆动的统计信息
debug ip bgp
debug ip bgp
debug ip bgp neighbor-ip-address updates
debug ip bgp neighbor-ip-address updates access-list-number
debug ip bgp dampening
debug ip bgp dampening access-list-number
debug ip bgp events
debug ip bgp keepalives
debug ip bgp in neighbor-ip-address updates
debug ip bgp in neighbor-ip-address updates access-list-number
debug ip bgp out neighbor-ip-address updates
debug ip bgp out neighbor-ip-address updates access-list-number
debug ip bgp updates
debug ip bgp updates in
debug ip bgp updates out
debug ip bgp updates access-list-number
debug ip bgp updates access-list-number in
debug ip bgp updates access-list-number out
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  协议 BGP 网关