BGP总结

BGP

bgp边界网关路由协议是一个在AS与AS之间的路由协议

AS:自治系统 标准编号0-65535 16位二进制 其中1-64511 公有 64512-65535私有
扩展AS 号 32位二进制

回顾之前的AS协议分类可分为IGP和EGP
IGP协议(内部网关协议):RIP/OSPF/EIGRP/ISIS 目的是让一个AS内部全网可达
特性:收敛快、选路佳(避免环路)、资源占用少

EGP协议(外部网关协议):BGP/EGP 目的是AS之间全网可达
特性:可控性高、可靠性(基于TCP协议)、AS-BY-AS

针对EGP的特性进行解释
可控性:AS间的路由更新量巨大,同时运行BGP的设备只能单个AS来管理;故路由选路问题严重,需要协议具有较高的可控性进行干涉
可靠性:AS间的路由更新量巨大,必须取消周期更新,仅存在触发更新;故需要协议极高的可靠性;TCP优势是只能基于单播工作,在传输数据前必须经过三次握手建立传输通道;需要管理员手工指定邻居ip地址;同时BGP需要使用非直连建立邻居关系(缩小设备的成本TCP可以实现非直连建立邻居关系)
注意:建立BGP的前提是IP可达,BGP承载于IGP之上
AS-BY-AS:一个AS为一跳

BGP特点

1、无类别距离矢量型(携带子网掩码)
2、使用单波更新发送所有消息;基于TCP 179 端口工作
3、增量更新–仅有触发无周期
4、有大量属性来干涉IGP的选路
5、可以在接口的入/出方向进行强大的路由策略–高可控性
6、默认不被用于负载均衡(可备份路径)
7、BGP支持聚合(汇总)和认证

BGP数据包

BGP数据包 基于TCP的179端口工作;故BGP协议中所有的数据包均需要在tcp会话建立后,基于TCP的会话来进行传输及可靠性的保障;

首先 通过TCP三次握手寻找邻居
OPEN 仅负责邻居关系的建立,正常进收发一次即可;携带route-id,hold time 默认3min
KEEPLIVE 周期1min查询邻居关系是否存在;实际保活TCP会话;
UPDATE 携带路由条目 目标网络号+各种属性
Notification 仅出现错误数据时收发;

BGP的工作过程

BGP的建立条件是IP可达

1、TCP三次握手,建立端到端虚链路,之后所有BGP数据包基于TCP的会话进行通信
2、OPEN报文进行邻居关系的建立,OPEN报文中携带AS号,RID等参数; 正常情况open报文收发一次;
邻居关系建立后生成“邻居表”;
3、邻居关系建立后,管理员手工选择传递的路由,通过更新包共享到邻居处
生成“BGP表”,装载本地发出/接收到的所有路由信息
4、之后BGP协议,将BGP表中最优路由仅选择一条加载于“路由表”中;
5、收敛完成后正常仅keeplive包周期(1min)保活即可;若有路由变化,使用更新包,触发更新即可;
6、在一些错误的参数出现时,使用Notification 进行报错;比如AS配置错误,IP地址填写错误等;

BGP的路由黑洞

由于运行BGP协议的设备需要存储大量的路由条目,故硬件成本极高;
故为控制层面有效管理,一个AS中仅“部分”设备运行BGP协议,基于TCP会话来跳过未运行BGP协议的设备传递路由;最终导致控制层面正常学习路由,但数据层面流量再经过未运行BGP协议的路由时,无法传递;控制层面显示可达,实际数据层面不可达–路由黑洞
解释:数据层面pingIP是无法通过没有运行BGP的设备,出现路由黑洞

BGP的防环机制–BGP水平分割

EBGP水平分割 :通过EBGP学习来的路由进入下个AS区域,如果该路由自身有本地的AS号,则拒绝接受此路由
IBGP水平分割 : 默认一个AS区域为一跳,所以BGP路由在AS内部传递,属性不变化,只可以传递一跳 注:如果允许IBGP内部传递不受限制,AS内部的邻居关系呈指数增加(只有建立邻居关系的设备才可以传递BGP路由)

BGP配置

建立BGP的邻居关系 注:建立邻居的目标IP必须可达
1、直接建立EBGP邻居关系
[r1]bgp 1 启动时需要定义本地的AS号,BGP不存在多进程概念
[r1-bgp]router-id 1.1.1.1 建议配置RID,若不配置;自动生成,规则同OSPF一致;
[r1-bgp]peer 12.1.1.2 as-number 2 对端ip地址,以及对端所在AS;

2、AS内部的IBGP邻居关系建立 注:由于AS内部环境一般较为复杂,两台BGP设备间存在大量的备份路径;故若使用物理接口地址来作为TCP会话的源、目ip,将失去备份和负载均衡链路;因此建议IBGP邻居使用环回接口作为源、目标ip地址;前提是环回接口地址需要ip可达;
[r2]bgp 2
[r2-bgp]peer 3.3.3.3 as-number 2 此时,源ip地址设备依然会使用物理接口,故两端源、目ip无法固定,必须同时修改源ip地址为环回
[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0 修改源地址为本地的环回接口

3、EBGP邻居间存在多条物理链路时,也建议使用环回接口作为源/目IP 注:EBGP使用环回建立邻居需要写静态,BGP协议的数据包在IBGP邻居间TTL=255,在EBGP邻居TTL=1 故使用环回作为EBGP邻居建立地址,将无法到达,必须修改TTL值
[r5]bgp 3
[r5-bgp]peer 4.4.4.4 as-number 2
[r5-bgp]peer 4.4.4.4 connect-interface LoopBack 0

两端配置完成后,将进行TCP的三次握手来建立端到端的会话
[r1]display tcp status 查看设备上的TCP会话状态
TCPCB Tid/Soid Local Add:port Foreign Add:port VPNID State
b4d13778 164/5 12.1.1.1:179 12.1.1.2:49646 0 Established
正常两端均会进行会话请求,故建立两条会话,之后断开其中一条;

TCP 会话建立后,BGP协议基于会话正常收发一次open报文,建立BGP的邻居关系;生成邻居表:
[r1]display bgp peer
BGP local router ID : 1.1.1.1
Local AS number : 1
Total number of peers : 1 Peers in established state : 1
Peer V AS MsgRcvd MsgSent OutQ Up/Down State PrefRcv
12.1.1.2 4 2 7 8 0 00:05:14 Established 0

BGP路由宣告

一台运行了BGP协议的路由器,可以将本地路由表中无论何种方法获取到的路由条目,任意宣告到BGP协议中;

1、逐条宣告:宣告本地路由表中的任意路由条目;宣告时网络号必须和路由表中的记录完全一致
[r1] bgp 1
[r1-bgp]network 1.1.1.0 24
宣告配置完成后,本地生成BGP表,表中记录本地发出以及接收到的所有BGP路由信息;同时该路由被BGP使用更新包共享给本地的邻居,邻居也将其加载到它的BGP表中;
[r1]display bgp routing-table
BGP Local router ID is 1.1.1.1
Status codes: * - valid, > - best, d - damped,
h - history, i - internal, s - suppressed, S - Stale
Origin : i - IGP, e - EGP, ? - incomplete
Total Number of Routes: 1
Network NextHop MED LocPrf PrefVal Path/Ogn
*> 1.1.1.0/24 0.0.0.0 0 0 i
状态 网络号 属性

  • 可用 > 优秀 =可以加表(路由表) 可以传递(继续传递给其他邻居)状态处的i标识该条目通过IBGP邻居传递过来

条目优秀的条件:
1、同步问题 --早期BGP协议为解决路由黑洞问题,要求一台BGP通过BGP协议学习到一条路由时,本地的IGP协议也要同时需要到该条目,才能满足同步需求;但将导致IGP协议负载过大;因此当前各厂家设备中均默认关闭同步规则; (过时,了解)
2、下一跳可达问题基于 AS-BY-AS规则,路由条目在一个AS内部传递时,其属性默认不变化;可能导致内部BGP设备学习到的路由信息中,下一跳地址不可达,需要修改下一跳的IP地址
注:EBGP邻居间传递路由时将自动修改下一跳为本地

切记:在BGP协议中,BGP邻居传递过来的BGP路由,在本地路由表中已经通过其他协议(IGP协议)存在,那么将不在本地加表而是继续传递给本地的其他邻居;在BGP协议中,BGP邻居传递过来的BGP路由,在本地路由表中已经通过其他协议存在,同时该路由还被用于本地该传递路由的设备,建立邻居时作为底层路由;那么该条目在本地不优,将无法继续传递;

本地直连路由的度量值为0,通过其他协议学习的路由大于0;BGP宣告路由时,将携带本地路由表中的度量值到BGP协议中来;
意义:让本地的EBGP邻居可以选择离目标最近的EBGP设备来路由。
注意:若本地通过IBGP邻居关系学习到的路由中存在度量值,之后本地再将这些路由传递给本地的其他EBGP邻居时将删除该值,度量为0; 所以只要BGP设备存在EBGP邻居,均需要自己宣告一次AS内部的路由,以便其他AS对本地进行路径优选

BGP的自动汇总问题

当下各厂商的BGP协议中,自动自动汇总均被默认关闭
[r2]bgp 64512
[r2-bgp]summary automatic 开启自动汇总,不建议手工开启,保持默认关闭即可

距离矢量协议比如rip、eigrp均存在自动汇总行为;若开启将主类掩码路由,若关闭将传递真实掩码的路由;在BGP协议中,自动汇总行为对正常宣告的BGP路由不影响;对从IGP重发布到BGP的路由有作用,关闭自动汇总 产生的路由携带正常掩码和度量 开启自动汇总,携带主类掩码,不携带度量值; 这将会影响到其他AS对本地AS的路径优选

GP的聚合(汇总)

(1)利用了BGP协议的宣告特征,本地路由表中无论来源均可被宣告;
即使该条目为手写的空接口路由,依然可以宣告,将网络号传递给邻居;
不宣告明细路由,而是直接在准备进行汇总配置的设备上,手写一条到达汇总网段的空接口路由;然后将该空接口路由宣告到BGP协议中即可; 该操作的优势在于不用逐条宣告明细了;
注:因为BGP协议工作于AS之间,而AS间正常存在多条互联路径,故为了选路较佳,还需要管理员在传递聚合路由条目的同时,传递部分的明细路由;起到干涉选路的效果;使用该种汇总配置方式,仅需要宣告汇总路由的同时,该设备再宣告部分明细路由即可实现;

(2)先逐条宣告所有的明细路由,宣告完成后,由BGP再进行汇总配置 BGP的聚合配置完成后,进行配置的设备将自动生成到达空接口的防环路由;
[r2] bgp 64512
[r2-bgp]aggregate 3.3.0.0 21 此时,明细和聚合条目同时传输
[r2-bgp]aggregate 3.3.0.0 21 detail-suppressed 所有的明细路由被抑制,将无法传递给邻居,仅传递一条聚合条目
在第二种汇总配置的前提下,若需要在传递聚合条目的同时,再传递部分的明细路由的方法:
1、抑制列表
[r2]ip ip-prefix s permit 3.3.3.3 32
[r2]route-policy s permit node 10
[r2-route-policy]if-match ip-prefix s
[r2-route-policy]q
[r2]bgp 64512
[r2-bgp]aggregate 3.3.0.0 21 suppress-policy s 注意调用时,为抑制列表;
因为调用时使用的是抑制行为,因此策略表被允许的路由条目,最终反而被抑制传输;

2、路由策略(CISCO:route-map)
先让BGP将所有的明细和聚合同时传输出去,之后使用策略逐条管理
[r2]ip ip-prefix qq permit 3.3.3.3 32
[r2]route-policy qq deny node 10
[r2-route-policy]if-match ip-prefix qq
[r2-route-policy]q
[r2]route-policy qq permit node 20
[r2-route-policy]q
[r2]bgp 64512
[r2-bgp]peer 12.1.1.1 route-policy qq export 在BGP中和邻居调用,注意方向,方向为控制层面方向

3、路由过滤(分发列表)
先让BGP将所有的明细和聚合同时传输出去,之后使用分发策略逐条管理
[r2]acl 2000
[r2-acl-basic-2000]rule deny sou 3.3.3.3 0.0.0.0
[r2-acl-basic-2000]rule permit source any
[r2-bgp]peer 12.1.1.1 filter-policy 2000 export 控制层面方向,只能使用acl

4、前缀列表–在BGP中可以直接将前缀列表作为分发列表使用
[r2]ip ip-prefix ee deny 3.3.3.3 32
[r2]ip ip-prefix ee permit 0.0.0.0 0 le 32
[r2]bgp 64512
[r2-bgp]peer 12.1.1.1 ip-prefix ee export

BGP认证 --BGP使用密文传输认证秘钥

[r1]bgp 1
[r1-bgp]peer 12.1.1.2 password cipher cisco123

BGP的属性

BGP协议存在多种属性,用于选路的比较参数,人为修改任何一个参数都可能影响到选路;
存在6种基本属性,和多种社团属性;属性:
华为和cisco均存在6种基本属性 第一种均为私有属性
一、基本属性
1、私有属性
传播范围 默认值 大优或小优
Preference_Value 不传播 0 大
华为设备的私有属性全局操作:
[r3-bgp]pe 2.2.2.2 preferred-value 1 本地从邻居2.2.2.2处学习到的所有路由优先值修改为1;
负载分担:访问不同的目标网段时,让流量进入不同链路来进行通讯;将所有链路利用起来,而不是仅只用唯一链路通讯;

使用前缀抓取需要修改属性的网段
[r3]ip ip-prefix w permit 1.1.1.0 24定制策略来进行修改,一定关注是否需要空表来允许其他路由通过
[r3]route-policy w permit node 10
[r3-route-policy]if-match ip-prefix w
[r3-route-policy]apply preferred-value 1
[r3-route-policy]q
[r3]route-policy w permit node 20
[r3-route-policy]q
再在协议中针对某个邻居调用
[r3]bgp 2
[r3-bgp]peer 2.2.2.2 route-policy w import 因为该属性为私有不传递属性,故调用时,只能在控制层面的入向调用,来影响本地的BGP生成;

2、本地优先级
传播范围 默认值 大或小优
本地优先级 IBGP邻居关系间 100 大
第一个公有属性,
也是最常用于干涉IBGP选路,
最常使用的属性
全局修改;
[r4-bgp]default local-preference 101
本地所有传输到IBGP的路由条目,其中本地优先级修改为101;
使用本地优先级实现负载分担
[r2]ip ip-prefix p permit 1.1.1.0 24
[r2]route-policy p permit node 10
[r2-route-policy]if-match ip-prefix p
[r2-route-policy]apply local-preference 101
[r2-route-policy]q
[r2]route-policy p permit node 20
[r2-route-policy]q
[r2]bgp 2
[r2-bgp]pe 3.3.3.3 route-policy p export 调用时在控制层面的出或入向均可,但必须为IBGP邻居关系;

3、 as-path 优选经过AS数量较少路径;该属性的自动添加是在EBGP邻居关系间进行;
[r4]ip ip-prefix as permit 1.1.1.0 24
[r4]route-policy as permit node 10
[r4-route-policy]if-match ip-prefix as
[r4-route-policy]apply as-path 3 4 5 additive
[r4-route-policy]q
[r4]route-policy as permit node 20
[r4-route-policy]q
[r4]bgp 2
[r4-bgp]pe 14.1.1.1 route-policy as import
注:可以在控制层面的入或出方向调用,但只能在ebgp邻居间操作;可干涉ebgp、ibgp关系选路;

4、起源属性 条目的产生方式
network 宣告本地路由表中的任意路由 i
import 将本地通过其他协议学习的路由重发布到BGP协议中 ?
egp 早期的ebg协议学习的路由重发布到BGP协议中 e
该属性的修改可以在整个控制层面流量经过的任意接口修改;
[r4]ip ip-prefix o permit 1.1.1.0 24
[r4]route-policy o permit node 10
[r4-route-policy]if-match ip-prefix o
[r4-route-policy]apply origin egp 2 此处配置的AS为对端邻居的AS号
[r4]route-policy o permit node 20
[r4-route-policy]q[r4]bgp 2
[r4-bgp]pe 3.3.3.3 route-policy o export

5、MED 多出口的鉴别属性
BGP协议默认不存在cost;MED就是人为的利用路由器优选路径的规则—先比较管理距离(华为为优先级),若一直再比较度量值(华为为cost)
BGP协议在特定条件下携带本地到达目标的cost值;本地宣告(重发布)自己路由表中的路由后,将其传递给本地的ebgp邻居,将携带cost值;对于其他AS的设备学习到从同一个as传递过来的路由,优选MED最小的路径;
管理员可以在控制层面传递路由的过程中,手工修改MDE;最常用于干涉ebgp选路;
常常用于AS1干涉AS2对AS1的选路;
[r1]ip ip-prefix med permit 1.1.1.0 24
[r1]route-policy med permit node 10
[r1-route-policy]if-match ip-prefix med
[r1-route-policy]apply cost 10
[r1-route-policy]q
[r1]route-policy med permit node 20
[r1-route-policy]q
[r1]bgp 1
[r1-bgp]pe 14.1.1.2 route-policy med export

由于实际工程中,管理员只能在一个AS中配置,故无法通过查看BGP表来判断选路结果,可以通过扩展ping来解决
[r1]ping -r -a 1.1.1.1 3.3.3.3

二、BGP的社团属性 –BGP的扩展属性
默认大多数厂商的产品在BGP协议中不携带社团属性
例:控制传播范围的社团属性
[r1]route-policy com permit node 10
[r1-route-policy]apply community no-advertise 针对所有的流量修改属性
[r1]bgp 1
[r1-bgp]peer 12.1.1.2 route-policy com export
默认华为设备也不传递社团属性,故使用社团属性时,必须定义传递性
[r1-bgp]peer 12.1.1.2 advertise-community 逐跳行为,每台设备均需开启传递性
no-advertise 接收到的条目中若存在该社团属性,将不再传递该路由
no-export 接收到的条目若存在该社团属性,将不传递给下一个AS
no-export-subconfed 接收到的条目若存在该社团属性,将不传递给下一个小AS
若网络没有小AS,仅存在大AS时no-export和no-export-subconfed作用一致

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值