02-补充-BGP
Internet设计理念
概述:
动态路由协议可以按照工作范围分为IGP以及GP。IGP工作在同一个AS内,主要用来发现和计算路由,为AS内提供路由信息的交换;而EGP工作在AS与AS之间,
在AS间提供无环路的路由信息交换,BGP则是EGP的一种
BGP是Border Gateway Protocol的简称。
BGP是一种增强的路径矢量路由协议,同时BGP是拥有丰富的策略控
BGP多运行于AS与AS之间。
自治系统AS:
1、由同一个技术管理机构管理、使用统一选路策略的一些路由器的集合
2、每个自治系统都有唯一的自治系统编号,这个编号是由IANA分配的。
3、自治系统的编号范围是从1到65535,其中1到64511是注册的因特网编号,64512到65535是私有网络编号(BGP网络中AS号码标识)
BGP概述:
1、外部网关协议
BGP是一种外部网关协议(EGP),与OSPF、RIP等内部网关协议(IGP)不同,其着眼点不在于自动发现网络拓扑,而在于在AS之间选择最佳路由和控制路由的传播。
2、使用TCP作为其传输层协议
1)BGP使用TCP作为其传输层协议(监听端口号为179),提高了协议的可靠性,且不需要专门的机制来确保连接的可控性。
2)BGP进行域间的路由选择,对协议的稳定性要求非常高。因此用TCP协议的高可靠性来保证BGP协议的稳定性。
3)BGP的对等体之间必须在逻辑上连通,并进行TCP连接。目的端口号为179,本地端口号任意。
3、支持CIDR
支持无类域间路由像
4、增量更新
1)路由更新时,BGP只发送更新的路由,大大减少了BGP传播路由所占用的带宽,适用于在Internet上传播大量的路由信息。
2)BGP从设计上避免了环路的发生
5、增强型的路径矢量路由协议
BGP通过携带AS路径信息来标记途经的AS
6、无环路
1)AS之间∶BGP通过携带AS路径信息来标记途经的AS,带有本地AS号的路由将被丢弃,从而避免了域间产生环路。
2)AS内部∶ BGP在AS内学到的路由不再通告给AS内的BGP邻居,避免了AS内产生环路。
7、路由策略丰富
1)BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。
8、可防止路由振荡
1)BGP提供了防止路由振荡的机制(路由衰减),有效提高了Internet网络的稳定性。易于扩展
2)BGP易于扩展,能够适应网络新的发展。主要是通过TLV进行扩展。
BGP分为 EBGP 和 IBGP :
1、当BGP运行于同一AS内部时,被称为IBGP
2、当BGP运行于不同AS之间时,称为EBGP
注意:因为要建立TCP连接,所以两端的路由器必须知道对的单地址,可以通过直连端口,静态路由或者IGP学习
EBGP/IBGP配置:
注意:1、建立 ENGP 或 IBGP 时,路由表中必须有所使用的IP的路由
2、建立号之后,必须通过命令将自己的路由条目传给对方,因为它只是建立了邻居关系
router id IP(图中有误)
查看 BGP 邻居表
dis bgp peer (状态为active表示连接还未建立起来,需要等等)
查看 BGP 路由:
dis bgp rout (该路由并不能用来转发包)
注: 该路由中带有 >(尖括号)的为最优路由(当有多个指向同一个下一跳的路由时);
带有 * (星号)的表示下一跳可达。该路由可用;
最优且带星号的路由会被加载进 全局路由表中 (用 dis ip rout 查看的那个路由表)
BGP之间传路由信息:传递的路由在路由表中必须存在
1、network命令:(bgp视图下)
net IP 作为掩码
eg:net 10.1.1.0 255.255.255.0
用network需要一条一条敲命令
2、import (bgp视图下)
import-route ospf/rip/isis/static/direct
可以一次性引入直连的或静态的或通过rip或ospf或isis学习的路由
注意:1、若是EBGP使用环回接口时,在传路由时需要指定TTL值
2、EBGP学习的路由传给IBGP时,下一跳不改
3、IBGP学习的路由传给EBGP时,下一跳会自动改变(改为自己)
4、IBGP从EBGP学习的路由传给另一个IBGP(同一个AS内)时,需要将下一跳改为自己;加一条命令
peer 对端IP nex-hop-local (bgp模式下)
5、refresh bgp all export/import
软刷新;不要在实际环境中使用
详细讲解:
https://www.bilibili.com/video/BV12k4y167uT?p=1
BGP工作原理
1、报文类型(TCP连接建立后才发)
Open报文
●协商BGP参数;主要包括BGP版本,AS号等信息。试图建立BGP邻居关系· 的两个路由器在建立了TCP会话之后开始交换OPEN信息以确认能否形成邻
居关系,是TCP建立后发送的第一个消息。Update报文
● 交换路由信息;该报文则是邻居之间用于交换路由信息的报文,其中包括
撤销路由信息和可达路由信息及其各种路由属性。
Keepalive报文
● 保持邻居关系;该报文用于BGP邻居关系的维护,为周期性交换的报文,
用于判断对等体之间的可达性。Notification报文
● 差错通知;BGP的差错检测机制,一旦检测到任何形式的差错,BGP
Speaker会发送一个NOTIFICATION报文,随后与之相关的邻居关系将被关闭。Route-Refresh报文
●用于在改变路由策略后请求对等体重新发送路由信息;
2、BGP协议中消息应用
1)通过TCP建立BGP连接时,发送OPEN消息
2)连接建立后,如果有路由需要发送或路由变化时,发送UPDATE消息通告对端
3)稳定后要定时发送KEEPALIVE消息以保持BGP连接的有效性
4)当本地BGP在运行中发现错误时,要发送NOTIFICATION消息通告BGP对等体
3、对等体之间的交互原则
1)IBGP路由,只发布给EBGP对等体
2)EBGP路由,发布给所有EBGP和IBGP对等体
3)只将最优路由发布给对等体
4)只发送更新的BGP路由
4、BGP路由通告原则
1)连接一建立,BGPSpeaker将把自己产生的所有BGP路由通告给新对等体;当有多条路径时,BGP Speaker只选最优的给自己使用,
且只把自己使用的最优路由通告给对等体(即带 >(尖括号))
2)BGP Speaker从EBGP获得的路由会向它所有BGP对等体通告(包括EBGP和IBGP)
前提是保证IBGP下一跳可达,因此在IBGP发送它学习到的路由给另一个IBGP时,需要加一条命令
peer 对端IP next-hop-local (将下一跳改为自己;目的是为了保证对方收到路由的下一跳可达,该路由可用)
3)BGP Speaker从IBGP获得的路由不会通告给它的IBGP邻居。(不能IBGP-1传给IBGP-2,然后IBGP-2有传给IBGP-3)
(即IBGP路由器能够学习另一个IBGP路由器发给它的路由条目,但它不会将学习的路由传给下一个IBGP路由器)
也叫IBGP水平分割,目的是为了避免环路产生;但会造成路由黑洞
可以用ITBGP全互连解决黑洞,但会导致AS内部路由器需要维护更多的IBGP会话,因此要用到路由反射器(RR)或 联盟
4)BGP Speaker从IBGP获得的路由是否通告给它的EBGP对等体要依IGP和BGP同步的情况来决定
BGP同步BGP同步:
在IBGP路由加入路由表并发布给EBGP对等体之前,会先检查IGP路由表。只有在IGP也知道这条IBGP路由时,它才会被加入到路由表,
并发布给EBGP对等体
注意:BGP路由表、IGP路由表(如ospf路由表)和路由表不能混为一谈;只有路由表中的路由才能做数据转发
5、数据库
IP路由表IP-RIB)
● 全局路由信息库,包括所有IP路由信息BGP
路由表(Loc-RIB)
●BGP路由信息库,包括本地BGP Speaker选择的路由信息
邻居表
●对等体邻居清单列表
Adj-RIB-In
●对等体宣告给本地Speaker的未处理的路由信息库
Adj-RIB-Out
●本地Speaker宣告给指定对等体的路由信息库
详细讲解:
https://www.bilibili.com/video/BV12k4y167uT?p=2
BGP属性特点
BGP路由属性是一套参数,它是对特定的路由进一步的描述;简单来说就
是一组描述BGP前缀特性的参数。(四大类)
1、 公认必遵(Well-known mandatory)
1)所有BGP路由器都可以识别,且必须存在于Update消息中
2)如果缺少这种属性,路由信息就会出错
2、公认任意((Well-known discretionary)
1) 所有BGP路由器都可以识别,但不要求必须存在于Update消息中
2) 即就算缺少这类属性,路由信息也不会出错
3、可选过渡(Optional transitive)
1)在AS之间具有可传递性的属性
2)BGP路由器可以选择是否在Update消息中携带这种属性。接收的路由器如果不识别这种属性,可以转发给邻居路由器,邻居路由器可能会识别并使用到这种属性
4、可选非过渡(Optional non-transitive)
BGP路由器可以选择是否在Update消息中携带这种属性。如果接受的BGP路由器不支持此属性,则相应的这类属性会被忽略,且不会传递给其他对等体
常见的路由属性: (在bgp路由表中能看到部分)
1、origin (属于 well-known mandatory)
Origin属性用来定义路径信息的来源,该属性为公认必遵
IGP
1)通过路由始发AS的IGP得到的路由信息(通过network命令注入的路由)
2) 标识符为"i"
EGP
1) 通过EGP得到的路由信息
2)标识符为"e"
Incomplete
1)通过其他方式学习到的路由信息(通过import命令注入的路由)
2)标识符为"?"
2、AS_PATH (属于 well-known mandatory)
AS_Path属性按矢量顺序记录某条路由从本地到目的地址所要经过的所有AS编号。该属性为公认必遵,且只有路由传出 AS,
才会加上该AS的编号
3、Next hop (属于 well-known mandatory)
Next_Hop属性记录了路由的下一跳信息,该属性为公认必遵
4、MED (属于 optional non-transitive)
MED属性相当于IGP的代价值 用于判断流量进入AS时的最佳路由,即用来影响邻居AS流量进入本AS的最佳路径,该属性为可选非过渡
5、Local-Preference (属于 well-known discretionary)
Local_Pref属性表明路由器的BGP优先级,用于判断流量离开AS时的最佳路由。该属性为公认任意,默认值为0,可改
6、Atomic-Aggregate (属于 well-known discretionary)
7、Aggregator (属于 optional transitive)
8、Community (属于 optional transitive)
9、Originator-ID (属于 optional non-transitive)
10、Cluster-List (属于 optional non-transitive)
11、MP_Reach_NLRI
12、MP_Unreach_NLRI
13、Extended Communities
BGP团体属性:
团体属性用于标识具有相同特征的BGP路由,该属性为可选过渡团体属性分为∶
●自定义团体属性 ●公共团体属性
详细讲解:
https://www.bilibili.com/video/BV12k4y167uT?p=3
BGP选路原则
当到达同一目的地存在多条路由时,BGP采取如下策略进行路由选择(按顺序一个一个的来)∶
1、如果此路由的下一跳不可达,忽略此路由
2、优选协议首选值(PrefVal)最高的路由
3、优选本地优先级(Local_Pref)最高的路由
4、优选本地生成的路由
5、优选AS路径(AS_Path)最短的路由
6、 比较Origin属性,依次优选Origin类型为IGP、EGP、Incomplete的路由
7、 优选MED值最低的路由
8、 优选从EBGP邻居学来的路由(EBGP路由优先级高于IBGP路由)
9、优选到BGP下一跳IGP Metric较小的路由
10、 当以上全部相同,则为等价路由,可以负载分担
注∶AS PATH必须一致;当负载分担时,以下3条原则无效
11、优选Cluster_List最短的路由
12、优选Originator ID或者RouterID最小的路由器发布的路由
13、比较对等体的IPAddress,优选从具有较小IP Address的对等体学来的路由
2、Preferved Value (越大优先级越高)
手工设置该preferved-value值时,只对收到的且没有preferved-value值的路由有效
3、Local-Preference
default local-preference命令用来配置BGP的缺省本地优先级,该值越大则优先级越高。
[Router-bgp] default local-preference preference 缺省情况下,BGP本地优先级的值为100。
配置不同本地优先级会影响BGP的路由选择。当一个运行BGP的路由器有多条路由到达同一目的地址时,会优先选择本地优先级最高的路由。
本地优先级属性仅在IBGP对等体之间交换,不通告给其他AS。
设置Local-Preference默认值
[RTC-bgp]default local-preference 1000
通过策略设置Local-Preference
通过EBGP学到的路由没有Local-preference值
4、优选本地生成
1) 优选聚合路由(聚合路由优先级高于非聚合路由)。
2)通过aggregate命令生成的手动聚合路由的优先级高于通过summary automatic命令生成的自动聚合路由。
3)通过network命令引入的路由的优先级高于通过import-route命令引入的路由。
5、AS_Path(越短,即个数越少,优先级越高;且能防环路)
只有传出本AS时,才会在路由中产生该值
bestroute as-path-ignore
6、Origin
如果通过三种方式同时学到一条相同的BGP路由前缀,那么优选的顺序为i>E>?
7、MED (值越低优先级越高)
MED属性仅在相邻两个AS之间传递,收到此属性的AS一方不会再将其通告给任何其他第三方AS。
8、BGP学到的路由优先于IBGP学到的路由
10、当以上全部相同,则为等价路由
可以负载分担
注∶ AS_PATH必须一致;当负载分担时;选路即刻结束
11-12、和RR相关
1)优选ClusterList最短的路由
2)优选OriginatorID或者RouterID最小的路由器发布的路由
详细讲解:
https://www.bilibili.com/video/BV12k4y167uT?p=4
BGP拓展特性
1、MD5认证
peer password
命令功能
peer password命令用来配置BGP建立TCP连接时进行MD5认证。
undo peer password命令用来取消该配置。
命令格式
peer 对端IP password cipher/simple 密码
undo peer 对端IP password
参数说明
group-name∶对等体组的名称。
peer-address∶对等体的IP地址。点分十进制形式。
cipher∶以密文形式显示设置的密码。
simple∶以明文形式显示设置的密码。
password∶密码。字符串形式。长度取值范围依据cipher和simple两个参数选择与否而定∶当选择cipher参数但以明文形式输入密码、或选择simple参数时,长度取值范围是1~16。
当选择cipher参数并以密文形式输入密码时,长度必须为24。
2、GTSM 介绍
GTSM(Generalized TTL Security Mechanism),即通用TTL安全保护机制。GTSM通过检查IP报文头中的TTL值是否在一个预先定义好的范围内,对IP层以上业务进行保护。在实际应用中,主要用于保护建立在TCP/IP基础上的控制层面(路由协议等)免受CPU利用(CPU-utilization)类型的攻击,如CPU过载(CPU overload)
解决的安全问题:
网上的"有效报文"攻击导致路由器设备有限资源(如CPU)的过载和消耗。例如,攻击者模拟真实的BGP协议报文,对一台路由器不断地发送报文,路由器收到这些报文后,发现是发送给本机的报文,转发层面则直接上送控制层面由BGP协议处理,而不加辨别其"合法性",这样导致路由器因为处理这些"合法"报文,系统异常繁忙,CPU占用率高。
实现手段:
GTSM是一种利用TTL防止以上类型攻击的通用化技术,主要手段如下∶
对于直连的协议邻居∶将需要发出的协议报文的TTL值设定为255,这样部署了GTSM功能的
邻居收到时,邻居转发层面会将TTL值非255的协议报文直接丢弃,避免了对控制层面的攻击。
对于多跳的邻居∶ 可以定义一个合理的TTL范围,例如251~255,邻居转发层面将超出这个TTL范围的协议报文直接过滤掉,从而避免了控制层面受到攻击。
配置命令
peer valid-ttl-hops
命令功能
peer valid-ttl-hops命令用来在对等体(组)上应用GTSM功能。
undo peer valid-ttl-hops命令用来撤销在对等体(组)上应用的GTSM功能。
命令格式
peer 对端IP valid-ttl-hops hope值(有效范围)
undo peer 对端IP valid-ttl-hops
ttl缺省值为255
被检测报文的TTL值有效范围为 {255-hops +1,255}.缺省情况下,参数hops取值为255,即TTL有效值范围为{1,255}。例如,对于EBGP直连路由,hops的取值为1,即有效的TTL值为255。
3、限制路由数量
peer route-limit(BGP)
命令功能
peer route-limit命令用来设置允许从对等体收到的路由数量。
undo peer route-limit命令用来取消该功能。
命令格式
peer 对端IP route-limit limit [percentage]
undo peer 对端IP route-limit
limit∶指定对等体允许的最大路由数量。整数形式,取值范围是1~2000000。
percentage∶指定路由器开始生成告警消息时的路由数量的百分比,取值范围1~100。缺省值为75。
alert-only∶ 对路由超限仅限于产生告警,不再接收超限后的路由。
idle-forever∶路由超限断连后,不自动重新建立连接直到reset bgp。
idle-timeout times∶路由超限断连后,自动重新建立连接的超时定时器。整数形式,取值范围
是1~1200,单位是分钟。在定时器超时前,可执行命令reset bgp重新建立连接。不配置以上参数的时候,路由超限产生告警并记入日志,邻居断开,30秒后自动重新尝试建立邻居关系
4、AS_Path长度保护
as-path-limit
命令功能;
as-path-limit命令用来自设置AS_Path属性中AS号的最大个数。
undo as-path-limit命令用来恢复缺省配置。
缺省情况下,AS Path属性中AS号的最大限制值是2000。
命令格式;
as-path-limit 经过的AS号
undo as-path-limit
配置影响
配置as-path-limit命令后,接收路由时会检查AS_Path属性中的AS号是否超限。如果超限则丢弃路由,因此,AS_Path属性中AS号的最大个数被限制得过小,会造成路由的丢失
5、路由衰减
用来解决路由不稳定的问题
抑制阀值
路由衰减(Route Dampening)用来解决路由不稳定的问题。路由不稳定的主要表现形式是路由振荡(Route flaps),即路由表中的某条路由反复消失和重现。发生路由振荡时,路由协议就会向邻居发布路由更新,收到更新报文的路由器需要重新计算路由并修改路由表。所以频繁的路由振荡会消耗大量的带宽资源和CPU资源,严重时会影响到网络的正常工作。
在多数情况下,BGP协议都应用于复杂的网络环境中,路由变化十分频繁。为了防止持续的路由振荡带来的不利影响,BGP使用衰减来抑制不稳定的路由。
BGP衰减使用惩罚值来衡量一条路由的稳定性,惩罚值越高则说明路由越不稳定。路由每发生一次振荡(路由从激活状态变为未激活状态,称为一次路由振荡),BGP便会给此路由增加一定的惩罚值(1000)。当惩罚值超过抑制阈值时,此路由被抑制,不加入到路由表中,也不再向其他BGP对等体发布更新报文。
被抑制的路由每经过一段时间(900S),惩罚值便会减少一半,这个时间称为半衰期(Half-life)。当惩罚值降到再使用阈值时,此路由变为可用并被加入到路由表中,同时向其他班2对等体发布更新报文
操作步骤
执行命令system view,进入系统视图。执行命令bgp as-number,进入BGP视图。
执行命令ipv6-family【 unicast】,进入IPv6单播地址族视图。
执行命令dampening 【 half-1ife-reach reuse suppress ceilingroute-policy route-policy-name】*,
配置BGP 路由衰减参数。
配置BGP路由衰减时,所指定的reuse、suppress、ceiling三个阈值是依次增大的,即必须满足∶reuse<suppress<ceiling。
备注;max-suppress-limit=reuse-limitx 2(max-suppress-time/half-time)
https://www.bilibili.com/video/BV12k4y167uT?p=6
https://www.bilibili.com/video/BV12k4y167uT?p=7
BGP联盟和RR
BGP联盟:(通常不建议用联盟,因为他需要将原来的BGP配置全部undo)
1、 将一个AS划分为若干个子AS,每个子AS内部建立IBGP全连接关系,子AS之间建立EBGP连接关系
2、联盟的防环机制
1)AS CONFED SEQUENCE 2)AS_CONFED_SET
命令:
bgp 联盟成员AS
confederation id 联盟AS
confederation peer-as 对端成员AS (当有EBGP邻居时)
peer 对端IP as-number AS/对端联盟成员AS
若是使用环回接口,加上 peer 对端IP next-hop-local
https://www.bilibili.com/video/BV12k4y167uT?p=8
路由器反射(RR):
降低对指定路由器IBGP路由通告机制的限制,允许将从IBGP对等体接收到的更新信息传给某些IBGP对等体
1、允许将从IBGP邻居学习到的路由发送给特定IBGP邻居,打破了IBGP邻居关系全互联的需求,减少IBGP会话数量
2、包括路由反射器(RR)和客户机(Client)、非客户机(Non-Client;既不是RR,也不是客户机的路由器)
RR中对等体(对端)之间的关系
1、Client只需维护与RR之间的IBGP会话
2、RR与RR之间需要建立IBGP的全互连
3、Non-Client与Non-Client之间需要建立IBGP全互连
4、RR与Non-Client之间需要建立IBGP全互连
反射规则:
在向IBGP邻居发布学习到的路由信息时,RR按照以下规则发布路由
1、从EBGP对等体学到的路由,发布给所有的非客户机和客户机。
2、从非客户机IBGP对等体学到的路由,发布给此RR的所有客户机。
3、从客户机学到的路由,发布给此RR的所有非客户机和客户机(发起此路由的客户机除外)。
命令:
bgp AS号
peer 对端IP as-number AS号
peer 对端IP connect-interfase lo环回接口号 (使用环回接口配置时)
peer 对端IP reflect-client (将对端配为客户机)
以上命令在 RR 路由器上配;客户端配置时,不要最后一条命令
路由反射器的防环机制
1、Originator ID属性
1)该属性为可选非过渡 2)用于集群内的防环 3)由路由反射器(RR)产生,携带了本地AS内该路由发送者的Router ID
2、ID Cluster_List属性
1)该属性为可选非过渡 2)用于集群间的防环 3)由每个路由反射器(RR)产生,记录反射路由经过的集群。
1、Originator_ID
Originator_ID属性用于防止在反射器和客户机/非客户机之间产生环路Originator_ID属性长4字节,可选非过渡属性,属性类型为9,是由路由反射器(RR)产生的,携带了本地AS内部路由发起者的RouterID
当一条路由第一次被RR反射的时候,RR将Originator_ID属性加入到这条路由,标识这条路由的始发路由器。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID
当其它BGPSpeaker接收到这条路由的时候,将比较收到的Originator ID和本地的RouterID,如果两个ID相同,BGP Speaker会忽略掉这条路由,不做处理
2、路由反射簇(Cluster)
当一个AS内存在多台RR为Client提供冗余时,RR间的路由更新很有可能会形成环路,为防止该现象,引入了Cluster的概念
1) 通过4字节的Cluster_ID来标识Cluster,通常会使用Loopback地址作为Cluster_ID(在没有配置Cluster_ID的情况下)
2)一个Cluster里可以包括一个或多个RR;一个Client可以同时属于多个Cluster
Cluster_List属性用于防止AS内部的环路
Cluster_List是可选非过渡属性,属性类型编码为10
Cluster_List由一系列的Cluster_ID组成,描述了一条路由所经过的反射器路径,
这和描述路由经过的As路径的AS_Path属性有相似之处,ClUster List由路由反射器产生
当RR在它的客户机之间或客户机与非客户机之间反射路由时,RR会把本地Cluster_ID添加到ClusterList的前面。如果ClusterList为空,RR就创建一个
当RR接收到一条更新路由时,RR会检查ClusterList。如果Cluster List中已经有本地Cluster_ID,丢弃该路由;如果没有本地Cluster_ID,将其加入Cluster_List,然后反射该更新路由
配Cluster_List: (bgp模式下)
reflector cluster-id IP
路由反射器—备份RR:
1、相同集群中的路由反射器要共享相同的Cluster_ID
2、Cluster_List的应用保证了同一 AS 内的不同 RR 之间不出现路由循环
路由反射器—同级反射器同级反射器
一个AS中可能存在多个集群,各个RR之间是IBGP对等体的关系
路由反射器一分级反射器分级反射器
将较低网络层次的RR配成客户机
https://www.bilibili.com/video/BV12k4y167uT?p=9
BGP路由聚合
路由聚合
1、只向对等体发送聚合后的路由,从而减少对等体的路由条目
2、明细路由如果发生路由振荡,不会对网络造成影响
3、路由聚合分为自动聚合和手动聚合
路由聚合一自动聚合
1、对BGP引入的路由进行有类聚合
2、配置聚合后,明细路由在路由表中将被抑制
3、不能对network发布的路由进行聚合
4、只对BGP引入的路由进行聚合
自动聚合注意事项
● 该命令对BGP引入的路由进行聚合,引入的路由可以是直连路由、静态路由、RIP路由、0SPF路由、IS-IS路由。配置聚合后,BGP将按照自然网段聚合路由,明细路由在BGP表中将被抑制。该命令对network命令引入的路由无效。
● BGP只向对等体发送聚合后的路由
●缺省情况下BGP不启用自动聚合
路由聚合一—手动聚合
对BGP本地路由进行聚合。手动聚合可以控制聚合路由的属性,以及决定是否发布具体路由。
手动聚合
●聚合路由不会携带AS PATH属性。
●通过AS_SET属性来携带AS号,以避免环路。SET和SEQUENCE的不同之处在于,SET选项下的AS列表通常用干路由聚合,将来自不同AS的AS号无序排列AS列表里;而SEQUENCE选项下的AS列表是有序的,每经过一个AS都会将其AS号排列在列表的前端。
● 聚合路由中添加AS_SET有可能产生路由震荡。
命令:
bgp AS号
aggregut IP 子网掩码 [detail-suppressed as-set]
具体路由和聚合路由都转发;若加上后面方括号中的则不转发具体路由
注意:RR路由器不一定参与数据转发
https://www.bilibili.com/video/BV12k4y167uT?p=10
BGP增强特性
1、BGP ORF
使能BGP基于前缀的ORF(Outbound Route Filtering)功能
1、基于本地的入口策略构建对端的出口策略,实现BGP按需发布路由
2、包括基于前缀的ORF和VPN
注:A与B做BGP,在B上做的ORF在A上生效
BGP ORF 配置
bgp AS号
peer 对端IP/组名 capability-advertise orf ip-prefix both/send/receive(both表示发送和接收都可;一端配send,则另一端配receive)
BGP对等体(组)使能基于地址前缀列表的ORF功能。
备注;缺省情况下,未使能BGP对等体(组)基于地址前缀列表的ORF功能
peer 组名/IP ip-prefix 表号 import 配置对等体(组)基于地址前缀列表的入口路由过滤策略。
在其对端上配置时不要配最后一条命令
路由策略:
sys
ip ip-prefix 表号 permit/deny IP/IP网段 子网掩码
查看ORF
<AR1>dis bgp peer X.X.X.X orf ip-prefix
2、Active-Route-Advertise
1)默认情况下路由只需在BGP中优选即可向邻居发布。配置了此特性之后,路由必须同时满足在BGP协议层面优选与在路由管理层面活跃两个条件,才
能向邻居发布。
2)与命令bgp-rib-only(用来禁止BGP路由下发到IP路由表)互斥。
●active-route-advertise
命令功能
● active-route-advertise命合用来配置BGP仅发布在IP路由表中被优选的路由。
● undo active-route-advertise命合用来恢复缺省配置。
缺省情况下,BGP发布所有在BGP路由表中优选的路由给邻居。
3、BGP按组打包
1、按组打包技术将所有拥有共同出口策略的BGP邻居当作是一个打包组
2、每条待发送路由只被打包一次然后发给组内的所有邻居
bgp AS号
group 组名 internal (intternal表示这是在IBGP中创建;若是创建EBGP的则为 external)
peer 组名 as-number AS编号(若是在EBGP中创建则必须有它,在IBGP中则没有)
peer 组名 具体的命令
eg:peer 组名 reflect-client (将对端配置为客户机)
peer 对端IP group 组名 (向对等体组中加入对等体;即使组中的具体命令生效)
按组打包的作用是,将重复的命令装进一个组中,然后应用时直接: peer 对端IP group 组名
4、4字节AS号概念
4字节AS号定义的角色
● New Speaker∶支持4字节AS号扩展能力的对等体。
● Öld Speaker∶不支持4字节AS号扩展能力的对等体。
●New Session ∶New Speaker之间建立的BGP连接。
● Old Session∶New Speaker和Old Speaker之间或者Old Speaker之间建立的BGP连接。
协议扩展
● 定义了2种新的可选过渡属性AS4_Path(属性码为0x11)和AS4_Aggregator属性(属性码为0x12)用于在Old Session上传递4字节AS信息。
● 如果New Speaker和Old Speaker建立连接,定义AS_TRANS(保留值为23456)用于衔接2字节AS和4字节AS。
拓扑描述
● R2收到R1的一条四字节AS的路由,AS号码为10.1;● R2与R3建立邻居,需要令R3认为R2的AS号为AS_TRANS;
● R2发送路由给R3的时候把AS_TRANS记录在AS_Path里面,把10.1与自己的AS号码20.1按照BGP要求的顺序记录在AS4_Path;
●R3对于不识别的属性AS4_Path不作处理依然保留,它只按照BGP的规则来发送路由给R4。当然它认为R4的AS号码也是AS_TRANS;
● 这样当R4收到从R3来的路由会把AS TRANS按照顺序来替换为AS4_Path里所记录的相应的地址,在R4上把AS4_PATH属性还原为30 20.110.1。
4字节AS号
● 4字节AS号特性是将AS号的编码范围由2字节扩大为4字节协议扩展
● 定义了一种新的Open能力码用于进行BGP连接的能力协商
● 2种新的可选过渡属性,AS4_Path和AS4_Aggregator属性
●定义AS_TRANS(保留值为23456)用于衔接2字节AS和4字节AS
https://www.bilibili.com/video/BV12k4y167uT?p=11
Internet设计理念
1、优化BGP能力
1) 建立对等体会话
●IBGP&EBGP ●安全机制 ●IBGP是否要全互联
2)路由更新起源
●引入或者network 。
3)优化路由策略
●可配置输出或者输入策略 ●ORF
4)路由过滤和属性控制
●发送接收路由进行过滤 ●属性控制
5)路由聚合缩减路由表规模
2、提高BGP可用性
1) 冗余
●路径要冗余 ● RR冗余
2) 流量对称
●科学的设计网络、具体策略的应用以保证来去流量路径一致
3)负载均衡
● 当有多条路径存在时,可考虑通过适当策略实现流量的负载分担,以充分利用带宽。
3、控制AS内部路由
控制AS内部路由
1)非BGP路由与BGP路由之间的交互。
● 一般情况下,非BGP路由可以通过路由引入或者network分发到BGP路由表中,对于分发到BGP中的路由,以使合适路由加载到BGP路由表中。
2)默认路由
●对于默认路由的发放,可以通过策略使默认路由根据某些具体条件来下放默认路由。
3)策略路由
● 通过策略路由来优化流量路径。
4、控制大型AS
1)BGP按组打包
●通过策略路由来优化流量路径。
2)路由反射器
3) 联盟
●通过路由反射器和联盟,减少IBGP会话数量,优化BGP大型网络
5、设计稳定的Internet
1)减少不稳定路由的产生
●使用稳定的IGP路由协议。 ●提升路由器性能。 ●减少人为失误。 ●扩展链路带宽。
2)提升BGP稳定性
●应用新的BGP策略时,使用BGP软复位。
●对于不稳定的路由,对其进行合理的惩罚,以减少对BGP的冲击.。
https://www.bilibili.com/video/BV12k4y167uT?p=12
故障排除:
在进行故障排除时,需要考虑如下因素
●确保清晰定义故障;
● 收集所有相关的现象、考虑各种潜在的可能;
● 定义一个计划,并执行它,观察执行的结果;
●如果问题未解决,收集额外的现象采用其他计划。这时需要注意,你应该消除哪些因为执行计划带来的额外变化;
●如果问题解决,记录下来你如何解决这个问题的。
BGP故障排除:
BGP邻居状态无法到达Established状态
1、IGP不通 ACL过滤了TCP的179端口· 2、邻居的Router ID冲突
3、配置的邻居的AS号错误 4、用Loopback口建立邻居时没有配置peer connect-interface
5、用Loopback口建立EBGP邻居未配置peer ebgp-max-hop 6、 peer valid-ttl-hops配置错误。
7、对端发送的路由数量是否超过peer route-limit命令设定的值。· 8、对端配置了peer ignore
9、两端的地址族不匹配
https://www.bilibili.com/video/BV12k4y167uT?p=13
注意:BGP学习和传递的路由是在BGP中宣告的路由(network或import)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!