You are on page 1of 17

边界网关协议 BGP:是一款公有标准的外部网关协议(EGP),运行在多个

AS 之间,提供路由信息交换、控制路由传播和选择最优路由;基于路径属性/
矢量来衡量每一条路由的优先级,也被称为高级距离矢量协议和路径矢量协
议。

版本:EGP(有类)、BGP v4(当前使用)、BGP v4+(MP-BGP,支持 address


family)
使用场景:有多条出口路径连接外网(多宿主),需要进行路由选路;一个 AS
可以作为传输 AS 时;需要在路由器上面做路由策略;路由器的硬件性能非常
高。

工作原理:当两台路由器之间通过静态路由或者 IGP 实现连通后;就会尝试跟


对方建立 TCP 连接;TCP 连接建立起来后,两台路由器先通过交互 open 报文建
立起邻居关系形成邻居表;然后邻居之间通过交互 update 报文同步各自的路由
信息并加入 BGP 表;最后路由器根据十三条选路原则将一条最优路径加入路由
表。
建立连接的两台路由器互为对等体(PEER),为了确保两边设备的 BGP 进程都
正常运行,两台路由器之间通过周期性的发送 Keepalive 消息,维护邻居关系
状态。
1、路由更新机制:采用增量更新机制同时支持主动请求邻居发送更新。
2、可靠的传输机制:使用 TCP 封装,提供可靠传输。
3、拥有丰富的路径属性,支持路由过滤和路由策略,路径操控灵活。
4、支持 VLSM、路由汇总和路由聚合。
5、对每个 AS 的可管理性要求较低。
6、路由承载数量;算法理论上支持无限的路由条目空间;目前在运行的全网路
由条目在 15 万条左右。
7、可扩展性:支持 TLV 和 address family,可扩展性强。
AS:自制系统,由同一个管理机构管理,使用统一选路策略的一些路由器的集
合。
AS 号:每个自治系统都有唯一的 AS 编号(区别于园区网),AS 编号是由 IANA
分配的;各国运营商和大型的跨国集团都需要购买 AS 号;早期的 AS 号一共有
16 位,取值范围 1-65535(0 不可用);其中 1--64511 为公有 AS 号,64512--
65535 为私有 AS 号;现已经扩展到了 32 位,取值范围 0-42 亿。
注:www.cidr.report.org(AS 号使用查询网站,电信 4134;联通 9249)

路由器 ID:Router ID 是一个 32 位的值(使用点分十进制,不要求 PING 可


达),唯一标识了一个自治系统内的路由器;手工配置为优,防止 Router ID
因为接口地址的变化而改变导致网络频繁的翻动;其次使用逻辑接口中最大的
IP 地址作为 Router ID;最后使用物理接口的最大 IP 地址作为 Router ID。
注:BGP 的 router-id 建议和 IGP 使用的 router-id 保持一致。

报头封装:Layer 2/IPv4/TCP/BGP/FCS(TCP 源端口号随机,目的端口号 179)


主动模式 active:首先指定 neighbor 的主动发送目的端口号 179 给对端
被动模式 passive:主动连接端端口号随机,被动连接端口号 179

Marker(标记):16 字节,固定为 1。
Length(长度):两字节无符号整数,指定了消息的全长,包括头部。
Type(类型):1 字节,指示报文类型,如 OPEN、UPDATE 报文等 。
1 – Open
2 – Update
3 – Notification
4 – Keepalive
X – Route-refresh
报文类型:
1、Open:负责和对等体建立邻居关系。
2、KeepAlive:在对等体之间周期性地发送,实时维护邻居关系。
3、Update:被用来在 BGP 对等体之间传递可达的路由信息及其各种路由属性。
4、Notification:当 BGP Speaker 检测到错误的时候,就发送该消息给对等
体。
5、Route-refresh:用来通知对等体自己支持路由刷新能力。

报文封装:Open 报文(只发送一次)

1、Version:BGP 的版本号;对于 BGPv4 来说,其值为 4。


2、My Autonomous System:本地 AS 编号,通过比较两端的 AS 编号可以确定是
EBGP 连接还是 IBGP 连接。
3、Hold Time:在建立对等体关系时两端要协商 Hold time,并保持一致。如
果两端所配置的 Hold time 时间不同,则 BGP 会选择较小的值作为协商的结
果。如果在这个时间内未收到对端发来的 Keepalive 消息,则认为 BGP 连接中
断。
4、BGP Identifier:BGP 路由器的 Router ID,用来识别 BGP 路由器。
5、Opt Parm Le:可选参数的长度。如果为 0 则没有可选参数。
6、Optional Parameters:是一个可选参数用于 BGP 验证或多协议扩等功能。

报文封装:KeepAlive 报文
KeepAlive 报文的组成只包括一个 BGP 报头;缺省情况下,发送 KeepAlive 的
时间间隔为 60 秒,Hold Time 是 180 秒。每次从邻居处接收到 KeepAlive 报
文将重置 Hold Time 定时器,如果 Hold Time 定时器超时,就认为对等体 Down
掉。
报文封装:Update 报文

1、Withdrawn Routes Length :撤销路由长度,表示 Withdrawn Routes 字段


的数据长度。如果 Withdrawn Routes Length 字段数值为 0,则表示 Withdrawn
Routes 字段没有任何数据,在 update 消息中不会被显示。
2、Withdrawn Routes :撤销路由;该字段包括一系列的 IP 地址前缀信息,以
<length, prefix>的格式来表示。 用<19,198.18.160.0>表示
3、Path Attribute Length :路由属性长度,表示 Path Attribute 字段的数
据长度;如果 Path Attribute Length 数值为 0,则表示 Path Attribute 字段
没有任何数据,在 UPDATE 消息中不会被显示。
4、Path Attributes :路径属性。每个路径属性都是由三元组所组成:<属性
类型 attribute type, 属性长度 attribute length, 属性值 attribute
value>。
5、Network Layer Reachability Information :网络层可达性信息;包括一
系列的 IP 地址前缀(路由本身)。
注:最小 update 消息的长度为 23 个字节(19 字节的报文头+2 字节的撤消路由
长度+2 字节的路径属性长度),这样的 update 消息被称之为 End-of-RIB。
一条 update 消息可以发布多条具有相同路由属性的可达路由,这些路由可共享
一组路由属性。所有包含在一个给定的 Update 消息里的路由属性适用于 update
消息中的 NLRI 字段里的所有目的地(用 IP 前缀表示)。
一条 UPDATE 消息可以撤销多条不可达路由。每一个路由通过目的地(用 IP 前
缀表示),清楚的定义了 BGP Speaker 之间先前通告过的路由。
一条 UPDATE 消息可以只用于撤销路由,这样就不需要包括路径属性或者网络可
达信息。相反,也可以只用于通告可达路由,就不需要携带 Withdrawn
Routes。报文封装:Notification 报文

Error code:错误码,表示报头内容有问题,每个不同的错误都使用唯一的代
码表示,而每一个错误码都可以拥有一个或多个错误子码,但如果某些错误码
并不存在错误子码的话,则该错误子码字段以全 0 表示。
Error subcode:错误子代码,详细内容参照 TCP/IP 协议卷一。

报文封装:Route-refresh 报文
1、AFI(Address Family Identifier):地址族标识符(2 字节)。
2、Res(Reserved field):保留区域(1 字节),发送方应将其设置为 0,接
收方应当忽略该区域的信息。
3、SAFI(Subsequent Address Family Identifier):子地址族标识符(8 字
节);在所有 BGP 路由器使能 Route-refresh 能力的情况下,如果 BGP 的入口
路由策略发生了变化,本地 BGP 路由器会向对等体发布 Route-refresh 消息,
收到此消息的对等体会将其路由信息重新发给本地 BGP 路由器。这样,可以在
不中断 BGP 连接的情况下,对 BGP 路由表进行动态刷新,并应用新的路由策
略。
BGP 状态机:

1、Idle:BGP 连接初始状态;在空闲状态,BGP 在等待一个启动事件


(neighbor 邻居),BGP 初始化资源,复位连接重试计时器(Connect-
Retry),发起一条 TCP 连接,同时转入 Connect(连接)状态。
2、Connect:BGP 发起第一个 TCP 连接,如果连接重试计时器超时,就重新发起
TCP 连接,并继续保持在 Connect 状态,如果 TCP 连接成功,就转入 OpenSent
状态,如果 TCP 连接失败,就转入 Active 状态。
3、Active: BGP 总是在试图建立 TCP 连接,如果连接重试计时器(Connect-
Retry)超时,就退回到 Connect 状态,如果 TCP 连接成功,就转入 OpenSent
状态,如果 TCP 连接失败,就继续保持在 Active 状态,并继续发起 TCP 连接。
4、OpenSent:TCP 连接已经建立,BGP 也已经发送了第一个 Open 报文,剩下的
工作,BGP 就在等待其对等体发送 Open 报文。并对收到的 Open 报文进行正确性
检查,如果有错误,系统就会发送一条出错通知消息并退回到 Idle 状态,如果
没有错误,BGP 就开始发送 Keepalive 报文并复位 Keepalive 计时器,开始计
时。同时转入 OpenConfirm 状态。
5、OpenConfirm:BGP 等待一个 Keepalive 报文同时复位保持计时器,如果收到
了一个 Keepalive 报文,就转入 Established 阶段,BGP 邻居关系就建立起来
了。
6、 Established:BGP 邻居关系已经建立,这时,BGP 将和它的邻居们交换
Update 报文,同时复位保持计时器。
BGP 邻居建立需要满足的条件:
1、IGP 路由不通导致 BGP 报文转发不可达。
2、ACL 过滤了 TCP 的 179 端口导致 TCP 三次握手不能正常建立。
3、邻居的 Router ID 冲突。
4、未指定该邻居、指定的更新源地址和 AS 号错误。
5、两端的地址簇不匹配。

BGP 路由信息处理过程:
1、邻居表:对等体邻居清单列表。
2、Adj-RIB-In:对等体宣告给本地 Speaker 的未处理的路由信息库。
3、BGP 表 (Loc-RIB):BGP 路由信息库,包括本地 BGP Speaker 选择的路由信
息。
4、IP 路由表 (IP-RIB):全局路由信息库,包括所有 IP 路由信息。
5、Adj-RIB-Out:本地 Speaker 宣告给指定对等体的路由信息库。

外部 BGP:EBGP 运行在不同的 AS 之间,既表示路由属性,也表示两台路由器


之间的邻接关系,管理距离为 20;EBGP 之间建议直连建立邻居(TTL 值默认为
1)
当两台 EBGP 路由器之间存在冗余链路时,可以用环回口来建立邻居,保证邻居
关系的稳定性,此时需要使用静态路由让两端的更新源地址可达,另外开启
EBGP 的多跳属性(2-255)。
EBGP 的水平分割机制:EBGP 路由可以发送给所有的 EBGP 邻居,也可以发送给
所有的 IBGP 邻居;当路由器接收到邻居发送过来的 EBGP 路由,通过检查路由
中 AS-path 属性是否包含了自身的 AS 号,不包含就可以接受,包含了就直接丢
弃,以防止环路产生。

内部 BGP:IBGP 运行在相同的 AS 中,当一个 AS 有多个外网出口且多个外网


出口不直连时,需要让这些外网出口路由器之间建立 IBGP 邻居(不一定物理直
连);既表示路由属性,也表示两台路由器之间的邻接关系,管理距离 200;
TTL 值默认为 255,当两台 IBGP 路由器之间存在冗余链路时,建议用环回口来
建立邻居,保证邻居关系的稳定性;在建立 IBGP 邻居时,可以设置路由反射器
/BGP 联邦,让所有边界路由器和路由反射器建立邻居关系,可以优化路径连
接。
IBGP 的水平分割机制:当一台路由器接收到 IBGP 路由时,是不能将其发送给其
他的 IBGP 邻居,只能发送给 EBGP 邻居;而路由反射器会打破水平分割机制,
可以把 IBGP 路由反射给其他 IBGP 邻居。

路由反射器 RR:router reflector,使用在 IBGP 环境中,用来打破 IBGP 的水


平分割机制,能够把收到的 IBGP 路由反射给其他 IBGP 邻居,让 IBGP 路由能够
在一个 AS 内正常传递;相比较 IBGP 间全互联方案,更具有扩展性;RR 使用的
是 cluster 体系,包含 server、client 和 non client 路由器;且路由反射器
是不会修改路由的下一跳、MED、AS-path 等属性。
Server 路由器通过 client 路由器收到的 IBGP 路由,该路由能够反射给所有的
client 邻居和 non-client 邻居;
Server 路由器通过 non-client 由器收到的 IBGP 路由,该路由只能够反射给所
有的 client 邻居,不能反射给 non-client 邻居;
部署原则:让一级 RR 和二级 RR 建立 IBGP 邻居;二级 RR 和其他所有普通的 BGP
路由器建立 IBGP 邻居。
防环机制 1:集群列表 cluster-list 属性,由 Server 路由器产生,默认使用
router-id 来做 cluster-id(可手工指定),Server 路由器会先将自身
router-id 放入 cluster-list 字段中,邻居路由器接收到反射的 IBGP 路由时,
会查看路由的 cluster-list 中是否包含自身的 cluster-id,不包含就可以正常
接收;该属性只在一个 AS 范围内有效。
防环机制 2:起源标识符 originator-id 属性,由 Server 路由器产生,默认使
用 router-id 来做 originator-id(可手工指定),Server 路由器会先将发送
路由的邻居 router-id 放入 originator-id 字段中,下游 server 路由器接收到
反射的 IBGP 路由时,会查看路由的 originator-id 中是否是自身的 router-
id,不是就可以正常接收;originator-id 属性只在一个 cluster 范围内有效。
注:在复杂的环境中,RR 需要部署很多台,配置的工作量也是相当大的。

BGP 的联邦:使用在 IBGP 环境中,配合路由反射器一起使用,可以减少 RR 的数


量和配置量;通过把一个大的主 AS 划分成多个子 AS,子 AS 之间使用子 AS 号建
立 EBGP 邻居,邻居之间传递的是 EBGP 路由,这样就不用增加多台路由反射器
就可以在主 AS 之间正常发送 EBGP 路由;子 AS 号一般使用私有 AS 号且只在一个
AS 范围内有效,当路由传递出主 AS 后,路由器就会将子 AS 号改变为主 AS 号;
不会影响路由选路;路由的下一跳、本地优先权等属性不发生改变。

BGP 的路由传递:发送
1.1、通过 network 或重分发将 IGP 路由转换并通告给 BGP,BGP 通过汇总或聚
合产生新的 BGP 路由并加入自身的 BGP 表,此时该路由可能携带两种下一跳属
性;
1.2、直连路由和静态路由(不包含下一跳)的下一跳属性默认为 0.0.0.0;该
路由可以发送给所有的 EBGP 和 IBGP 邻居。
1.3、当原 IGP 路由已经包含了下一跳时,BGP 会继承原 IGP 的路由下一跳;该
路由可以发送给除了下一跳地址对应的路由器以外的所有 EBGP 和 IBGP 邻居。
注:在始发路由器上发送 BGP 路由时,路由器会强制性将路由下一跳改写成自
身的更新源地址(直连接口/环回口地址),然后发送给所有 EBGP 和 IBGP 邻
居。
BGP 的路由传递:接收
1.1、当路由器接收到一条 EBGP 路由时,先检查路由的 AS-pah 属性,如果没有
包含自身的 AS 号,则可以接收并发送给所有 EBGP 和 IBGP 邻居。
2.1、当路由器接收到一条 IBGP 路由时,先检查路由的下一跳是否可达且是否
满足同步原则,满足则可以接收并发送给其他 EBGP 邻居,不能发送给 IBGP 邻
居。
2.2、下一跳可达:路由器在 AS 之间发送 EBGP 路由时,会先将路由的下一跳改
写成自身的更新源地址(直连接口/环回口地址);路由器在 AS 内将路由发送
给 IBGP 邻居时,默认不会修改路由的下一跳,这样会导致 IBGP 邻居接收到该
路由时,该路由的更新源地址往往是不可达的。
解决方案:手工开启 BGP 的 next-hop-self 特性,这样路由器在 AS 内将路由发
送给 IBGP 邻居时,会强制性将路由的下一跳改写成自身的更新源地址(直连接
口/环回口地址)。
2.3、同步原则:路由器接收到 IBGP 路由时,会检查该路由是否也可以通过 IGP
接收到,可以则接收并转发给 EBGP 邻居;否则就丢包了,用来防止 BGP 数据层
面的路由黑洞;12.3 以后的版本默认关闭该特性;可以优化的解决方案如下:
解决方案 1:AS 内的路由器之间实现全互联(成本太大,不可用)。
解决方案 2:AS 内所有路由器都运行 BGP,建立 BGP 的全互联邻居关系(不可
用)。
解决方案 3:边界路由器将 BGP 路由重分发进 IGP(BGP 路由太多,不好操
控)。
解决方案 4:边界路由器之间建立 GRE tunnel(点到点)或 DMVPN(点到多
点)。
解决方案 5:使用多协议标签交换技术 MPLS(公有协议,配置简单)。
路径属性和路径矢量:
公认属性 well-known:由 IETF 规定所有厂商都必须支持的
--公认强制属性 mandatory:
1、AS 路径/AS-path:描述一条 BGP 路由从产生达到目的地一共经过了多少个
AS,当路由器收到一条 EBGP 路由时,就会检查该路由的 AS-path 是否包含自身
的 AS 号,不包含就可以接收,主要用于防止路由环路;AS-path 默认值为 10,
在路由表中,新添加的 AS-path 在左边,旧添加的 AS-path 在右边。
注:在多个私有 AS 互联的环境中,使用 MPLS-VPN 的技术:AS over ride(PE-
CE)和 allowas-in(CE-PE)可以设置路由表中出现在本地 AS 的次数上限。

2、下一跳属性/next-hop:
2.1、在始发路由器上发送 BGP 路由时,路由器会强制性将路由下一跳改写成自
身的更新源地址(直连接口/环回口地址),然后发送给所有 EBGP 和 IBGP 邻
居。
2.2、从 EBGP 邻居学到的一条路由,传递给自己的 EBGP 邻居时,下一跳一定会
改变为自身连接邻居的更新源地址。
2.3、从 EBGP 邻居学到的一条路由,传递给自己的 IBGP 邻居时,下一跳不变,
仍为上游 EBGP 邻居的更新源地址。
2.4、从 IBGP 邻居学到的一条路由,传递给自己的 EBGP 邻居时,下一跳改变为
自身连接邻居的更新源地址。
2.5、在 MA 网络中,如果去往上游邻居的下一跳地址和去往下游邻居的下一跳
地址在同一个子网段内,在传递路由时,会将下一跳地址改写为去往上游邻居
的下一跳地址(特例,现网环境中不存在)。
2.6、路由反射器在反射路由时,不会修改路由的下一跳属性。

3、起源属性/origin:描述是通过什么方式将 IGP 协议通告进 BGP 协议中的;


3.1、“i” 表示 IGP,是通过 network 或路由聚合通告的。
3.2、“e” 表示 EGP,是通过 EGP 协议重分发通告的。
3.3、“?”表示 incomplete,是通过除 EGP 以外的协议重分发通告的。
优先级:“i”>“e”>“?”

--公认自由属性 discretionary:
1、本地优先权/local preference:专门用来操控路由选路的,影响一条路由
去往外网应该从哪个出口出去;默认值 100,EBGP 路由默认不携带该属
性,IBGP 路由会携带该属性;
2、原子聚合属性/atomic aggregate:描述一条 BGP 路由是否是聚合路由;

可选属性 optional:厂家私有添加的属性
-可选传递属性 transitive:对本地不能识别的属性仍会继续转发给邻居
---完整属性 complete:发送路由时不对路由做任何修改
---不完整属性 incomplete/partial:发送路由时告诉下游路由器自身不能识

1、聚合者/aggregator:使用聚合路由的路由器 Router ID 告诉下游接收者该
路由是由哪一台路由器聚合的
2、团体属性/community:默认各个厂商不开启该属性,需手工添加
2.1、标准团体属性/Standard,功能类似于“TAG”,表示 xxyy 或 xx:yy
no-advertise:邻居接收该属性路由,只会加入本地路由表不会转发给邻居
No-export:邻居接收该属性路由,可以发送给 IBGP 邻居和联邦内的 EBGP 邻居
Local-AS:邻居接收该属性路由,只会发送给 IBGP 邻居
注:路由发送时,默认不携带该属性,需每台路由器手工指定 send-community
2.2、扩展团体属性/extended,用于 MPLS-VPN 环境中的“RT”

-可选非传递属地 non-transitive:对本地不能识别的属性直接丢弃
1、权重属性/weight:功能类似于 IGP 中的管理距离,在路由发送时会将该属
性值置为 0,只有在本地接收时才会携带该属性加入路由表;取值范围 0-
65535,本地产生的路由 weight 默认值 32768;非本地产生的路由 weight 默认
值0
3、多出口鉴别器/MED:专门用来操控路由选路的,影响一条外网路由应该从哪
个入口进入;当前所有厂商都能识别;默认值 0(最优先),发送 EBGP 路由会
将 MED 置为 0,发送 IBGP 路由时不会修改该 MED 值;

BGP 的十三条选路原则和路由操控:
1、比较权重属性 weight 的大小,以大为优
注:路由操控时入方向将权重属性值改大,一般不建议修改
2、比较本地优先权 local preference 的大小,以大为优(*)
注:路由操控时入/出方向改大,不建议边界路由器之间建立 IBGP 邻居
3、本地始发路由优于外部传递的 IBGP 路由和 EBGP 路由
4、比较 AS-path 属性的长短,以短为优
注:进行路由操控时入/出方向修改,建议添加多条 AS-path 而不修改 AS-path
属性;优选添加自身的 AS 号,其次添加私有 AS 号;不建议修改
5、比较路由起源属性代码,“i”>“e”>“?”
注:不建议修改
6、比较路由的 MED 属性的大小,以小为优(*)
注:进行路由操控时在出方向改大,只有通过相同邻居 AS 路由器收到相同的
BGP 路由时才会比较 MED 值,开启 BGP always compare med 可以无视该条件;
当邻居路由器发送的路由没有携带 MED 值,开启 BGP bestpath med missing as
worst,路由器就会给该条路由设置一个最大度量值(42 亿)。
7、EBGP 路由优于 IBGP 路由,无视管理距离
8、比较更新源地址到达本地的 IGP 度量值大小,以小为优
9、如果存在多条等价路径,就可以加入路由表进行负载均衡
注:前提是开启了负载均衡的功能,参加负载均衡的路由要么都是汇总路由要
么都不是汇总路由(汇总路由优于非汇总路由)且路由的 AS-path 属性完全一
致。
10、当部署了路由反射器 RR,比较集群列表 cluster-list 的长度,以短为优
11、当部署了路由反射器 RR,比较 originator-id 的大小,以小为优
12、比较邻居路由器的 BGP 路由器 ID 的大小,以小为优
13、比较邻居路由器的更新源地址的大小,以小为优
前提条件:只有有资格打“>”的路由,如 EBGP 路由和部分 IBGP 路由(满足
下一跳可达和同步原则)才可以进行路由选路;利用十三条选路原则一定会选
出一条最优路径,BGP 默认不支持负载均衡,需手工开启,
R1(router-config)#maximum-paths(1-32)ibgp(1-32)

BGP 的特性:
BGP 本身不会产生任何路由,只有当把 IGP 路由、静态或直连路由通过 network
通告转换或者重分发进 BGP,然后由 BGP 汇总或聚合才能产生新的 BGP 路由;
1.1、Network:支持精确 network 和主类 network,一般使用前者,通告进 BGP
的路由会继承原 IGP 路由的下一跳地址,用 MED 属性继承原有路由的 metric
值。
1.2、重分发:重分发进来的 IGP 路由,BGP 会继承原有路由的下一跳地址,也
会用 MED 属性继承原有路由的 metric 值。
注:将 BGP 重分发进 IGP 时,默认只有 EBGP 路由和自身产生 BGP 路由能够重分
发进入,IBGP 路由则不可以被重分发进入。

BGP 的重置:修改路由策略时、路由发生变化时
2.1、软重置/软清:请求对方将我需要的路由进行重新发送或者针对邻居请求
的路由重新发送,建议使用。
Router# clear ip bgp * soft (in/out)
Router# clear bgp ipv4 unnicast * soft (in/out)
2.2、硬重置/硬清:重新建立 TCP 的三次握手和邻居,重新发送所有路由;慎
重操作!!!
Router# clear ip bgp *(1.1.1.1)/clear bgp ipv4 unnicast
*(1.1.1.1)
Router#show bgp ipv4 unnicast neighbor 1.1.1.1 advertised-routes(发
送)
Router#show bgp ipv4 unnicast neighbor 1.1.1.1 received-routes(接
收)
注:思科默认不缓存从邻居接收到的路由,需要使用命令设置 neighbor
1.1.1.1 soft-reconfiguration inbound

自动汇总/聚合:auto-summary
3.1、Network 主类路由时,当开启了自动汇总,如果本地路由表中是有对应的
明细路由,会将明细路由抑制,产生汇总路由,路由的下一跳和 MED 属性为全 0
3.2、路由重分发时,当开启了自动汇总,一律会将该路由汇总成主类路由,路
由的下一跳和 MED 属性全为 0
注:当通告超网路由时,需要本地路由表中存在该路由;自动汇总不会对精确
network 产生影响;由于自动汇总容易产生路由黑洞,12.X 以后的版本默认关
闭。
手工汇总/聚合:summary
3.3、Router(config)#ip route 192.168.0.0 255.255.254.0 null 0
Router(config)#network 192.168.0.0 mask 255.255.254.0
注:该汇总路由由于缺少原子聚合属性,后续不好再使用路由策略。
3.4、Router(config)#network 192.168.0.0 mask 255.255.255.0
Router(config)#network 192.168.1.0 mask 255.255.255.0
Router(router-config)#aggregate-address 192.168.0.0 255.255.254.0
注:一个 network 只能通告一条路由;建议在始发路由器的 BGP 进程中汇总:
默认既会发送明细路由,也会发送汇总路由且汇总路由携带原子聚合属性,后
面接:
Summary-only:抑制明细路由,发送汇总路由。
Route-map:设置汇总路由携带的属性。
Attribute-map:功能等同于 route-map,设置汇总路由携带的属性。
Advertise-map:结合 route-map,当明细路由携带相关的属性时才可以被汇
总。
Suppress-map:结合 route-map,发送汇总路由时,抑制部分不需要发送的明
细路由,发送部分需要的明细路由。
AS-set:当在非始发路由器上进行路由汇总时,默认汇总路由不会继承原路由
的下一跳、MED 和 AS-path 属性,后面加 AS-set 参数,非始发路由器产生的汇
总路由就可以携带原路由的 AS-path 属性,用来防止超长距离的路由黑洞。
条件路由注入:从接收到的汇总路由中在本地注入其中的部分明细路由;
Bgp inject-map route-map(name)exist-map route-map(name)后面加
[copy-attributes]表示明细路由会携带汇总路由的属性。

4.1、认证:支持 MD5 密文认证,在对等体两端配置认证


Router(config-router)#neighbor 12.1.1.2 password cisco
5.1、BGP 的路由标识:

6.1、BGP 路由重分发
将 BGP 路 由 重 分 发 进 其 他 路 由 协 议 , 默 认 只 能 将 EBGP 路 由 重 分 发 其 他 协
议,IBGP 路由不能重分发进其他协议,需要在 BGP 进程工修改参数来将 IBGP 路
由重分发进其他协议:bgp redistribute-internal

7.1、BGP 的 backdoor 特性

8.1、BGP 的 AS 号伪装

You might also like