BGP知识点整理

一、BGP的基本概念 BGPv4


1、BGP(边界网关协议)是几乎是当前唯一被用于在不同AS之间实现路由交互的EGP。BGP适用于大型的网络环境,例如运营商网络,或者大型企业网。BGP支持VLSM、支持CIDR(无类域间路由),支持自动路由汇总、手工路由汇总。

2、BGP使用TCP作为传输层协议,目的TCP端口为179

3、两台互为对等体的BGP路由器首先会建立TCP连接,随后协商各项参数并建立对等体关系,初始情况下,两者会同步双方的BGP路由表,在BGP路由表同步完成后,路由器不会周期性发送BGP路由器更新,而只发送增量或在需要时进行触发性更新,这大大减小了设备的负担及网络带宽损耗

4、同时,BGP定义了多种路径属性

二、BGP对等体关系类型


1、我们将建立BGP邻居关系的路由器称为BGP对等体(peer)

BGP有两种对等体关系:IBGP和EBGP

2、EBGP对等体关系

①如果建立对等体关系的两台BGP路由器位于不同的AS,那么它们之间的关系被称为EBGP对等体关系

②EBGP对等体关系必须基于直连接口建立,是因为缺省情况下,EBGP对等体之间发送的BGP协议报文的TTL值为1,这使得这些协议报文只能够被传输1跳

3、IBGP对等体关系

①如果建立对等体关系的两台BGP路由器位于相同的AS,那么它们之间的关系被称为IBGP对等体关系

②在两台路由器之间建立IBGP对等体时,并不要求它们必须直连

三、IBGP水平分割规则 用于AS内部防环


1、AS _Path属性可以用于BGP路由在EBGP对等体之间传递时发生环路,然而当路由在IBGP对等体之间传递时,AS_Path属性的值是不会发生改变的

2、水平分割规则:当路由器从一个对等体学习到某条BGP路由时,它将不能再把这条路由通告给任何IBGP对等体

3、但水平分割规则会产生新加设备学习不到路由的问题,可以通过在AS内部建立IBGP对等体关系的全互联模型(AS中所有的BGP路由器两两之间建立IBGP对等体关系)

4、还有两种解决方案:路由反射器和联邦

四、路由黑洞问题及BGP同步问题 (回包时无路由)


1、路由黑洞的产生是由于BGP和IGP同步检查默认关闭导致的

2、为了规避路由黑洞问题,BGP引入了同步规则:当一台路由器从自己的IBGP对等体学习到BGP路由时,它将不能使用该条路由或把这条路由通告给自己的EBGP对等体,除非它又从IGP协议学习到这条路由,也就是要求IBGP与IGP同步

3、同步方法(路由黑洞解决方法):

①将数据包所经过的路径运行BGP

②将部分BGP路由引入到IGP

③使用MPLS,即使中间路由器没有路由,数据包也根据标签转发

五、BGP的通告原则


1、仅将自己最优的路由发布给邻居

2、通过EBGP获得的最优路由发布给所有BGP邻居

3、通过IBGP获得的最优路由不会发布给其他的IBGP邻居

4、BGP与IGP同步

六、报文类型及格式


1、所有的BGP报文都有一个相同格式的头部,一共19byte

2、常见的报文类型:open报文、update报文、Keepalive报文、notification报文

3、Open报文

一旦TCP连接被正确建立,双方就开始交换open报文,open报文包含设备所处的AS号、BGP版本号、Router-id以及一些可选参数等信息,如果路由器认可对方发送过来的open报文,则立即回送一个Keepalive报文以做确认

4、update报文

BGP路由器使用update报文向其对等体通告路由信息,还能够用于撤销一条或多条BGP路由

5、Keepalive报文

① BGP并不依赖TCP的保活机制,而是使用周期性发送的Keepalive报文来了解对等体的存活情况

② BGP路由器会为对等体维护保活计时器,BGP路由器周期性发送Keepalive报文的时间间隔缺省为1/3的保活计时器时间

③ 保活计时器的时间缺省为180s,Keepalive报文的周期性发送间隔为60s

七、BGP的路由宣告


BGP协议本身不会自己计算路由,只是负责转发从其他BGP邻居传递过来的路由条目,

同时可以将本地路由表中任意的路由宣告到BGP协议中,

BGP协议配置时,只能宣告本地路由表中的任意条目,且宣告配置中网络号和掩码必须和路由表中一致。

[r1]bgp 1

[r1-bgp]network 1.1.1.0 24 //宣告路由

当完成BGP的宣告配置之后,本地会生成BGP表,此表装在着本地发出的以及接收到的所有BGP路由

[r1]display bgp routing-table //查看BGP表

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

网络号/掩码 属性

BGP表中的号表示,此路由条目可用。

BGP表中的>号表示,此路由条目优秀–可以加载到路由表,可以传递给其他BGP邻居

BGP表中的i表示,此路由条目是从IBGP邻居处学习到的

路由条目不优秀的原因:

1、下一跳不可达–若BGP表中的条目信息下一跳本地不可达,则此条目不优秀(因为AS by AS)

[r2]bgp 2

[r2-bgp]peer 3.3.3.3 next-hop-local //修改下一跳属性为本地-2.2.2.2

注意:

1.路由条目传递给本地的EBGP邻居时,自动修改属性,包括下一跳修改为本地。联邦内的EBGP邻居关系是不修改下一跳属性。

2.若本地路由表中有去往目标网段更好的路由,则在华为设备中BGP途径过来的路由不优秀,可以修改一下。

八、反射器


三个角色:RR 客户端 非客户端

此三种角色构建成为一个簇,可以理解为RR是中心,客户端和非客户端是分支

要求所有的分支与中心为IBGP邻居关系,在一个簇里至少存在一台客户端设备。

一台设备可以同时是RR和客户端。

反射规则:

1、RR从一台EBGP邻居处学习到的路由可以传递给本地的客户端、非客户端和其他EBGP邻居关系

2、RR从一个客户端邻居处学习到的路由可以传递给本地的其他客户端,非客户端和其他EBGP邻居

3、RR从一个非客户端邻居处学习到的路由可以传递给本地的客户端和其他EBGP邻居,不得传递给本地的非客户端

非非不非     注意:若路由条目不优秀,则RR不能反射。

[r3]bgp 2 //R3为RR

[r3-bgp]peer 2.2.2.2 reflect-client //该指令指定了本地为RR同时2.2.2.2邻居为本地的客户端。

本地的客户端

九、联邦


将一个真实的大AS逻辑的分成若干个小AS,小AS的编号建议使用私有AS号(64512-65535);

小AS之间构成了联邦内的EBGP邻居关系,可以像真实的EBGP邻居关系一样传递BGP路由条目,但是基于AS-BY-AS,属性不会法神变化。

对于该大AS之外的其他真实的AS,不知道内部小AS的情况。

[r2]bgp 64512 //配置时基于小AS号进行

[r2-bgp]confederation id 102 //在联邦内指定大AS号

[r3-bgp]confederation peer-as 64513 //小AS之间需要互相指定小AS号

注意:华为路由器中,必须先定义大AS的ID,再配置小AS号的互指,然后再手工指定邻居关系。

[r3-bgp]peer 4.4.4.4 as-number 64513

[r3-bgp]peer 4.4.4.4 connect-interface LoopBack 1

[r3-bgp]peer 4.4.4.4 ebgp-max-hop 2

在实际工程中,联邦和反射器会被同时使用,降低配置量。

十、BGP的路由手工聚合–手工汇总


【1】不是标准的BGP聚合配置。利用了BGP协议宣告特点–本地路由表中无论路由条目怎么来的,无论去哪里的,均可以

宣告进BGP协议中(BGP协议宣告仅关注网络号)

可以现在本地路由表中添加关于汇总路由的空接口防环路由,然后再在BGP协议中宣告此空接口路由,就可以达到汇总

BGP路由条目的目的,减少了工程师宣告明细路由的工作量。

注:BGP在实际的工作环境中,控制选路的情况十分常见,AS间可以在传递聚合路由条目的同时,再让部分的明细条目传输过去,

可以实现干涉选路的功能(路由表的最长匹配)

【2】BGP的标准聚合配置:先逐条宣告本地所有的明细路由,然后再进行聚合配置

[r1]bgp 1

先逐条宣告明细路由:

[r1-bgp]network 20.1.1.0 24

[r1-bgp]network 20.1.2.0 24

然后再做聚合配置:

[r1-bgp]aggregate 20.1.1.0 22 //聚合路由和明细路由都会发送

可以通过命令选择不转发明细:

[r1-bgp]aggregate 20.1.0.0 255.255.252.0 detail-suppressed

基于需要:在传递BGP的聚合路由条目之后,还需要再传递部分明细路由,所以使用策略来干涉

1、抑制策略–定义抑制列表策略,对路由传递过程中,对部分路由不希望传递的路由做抑制

先定义要抑制的路由条目

[r1]ip ip-prefix aa permit 20.1.1.0 24

[r1]route-policy aa permit node 10

[r1-route-policy]if-match ip-prefix aa

[r1-route-policy]qu

[r1]bgp 1

[r1-bgp]aggregate 20.1.0.0 22 suppress-policy aa

此时,再聚合时使用抑制策略,则匹配到的被允许的流量将被抑制传递

2、过滤策略

[r1]bgp 1

先逐条宣告明细路由:

[r1-bgp]network 20.1.1.0 24

[r1-bgp]network 20.1.2.0 24

然后再做聚合配置:

[r1-bgp]aggregate 20.1.1.0 22 //聚合路由和明细路由都会发送

先定义要过滤的路由条目,动作直接为拒绝

[r1]ip ip-prefix bb deny 20.1.1.0 24

[r1]ip ip-prefix bb permit 0.0.0.0 0 less-equal 32 //允许所有

再定义过滤策略

[r1]bgp 1

[r1-bgp]filter-policy ip-prefix bb export //通过BGP发出的流量,策略中拒绝的不再被传递

3、路由策略(Route-policy)最常用的方式

[r1]bgp 1

先逐条宣告明细路由:

[r1-bgp]network 20.1.1.0 24

[r1-bgp]network 20.1.2.0 24

然后再做聚合配置:

[r1-bgp]aggregate 20.1.1.0 22 //聚合路由和明细路由都会发送

先定义要过滤的路由条目

[r1]ip ip-prefix cc permit 20.1.1.0 24

指定策略,大动作为拒绝

[r1]route-policy cc deny node 10

[r1-route-policy]if-match ip-prefix cc

[r1-route-policy]qu

添加空表允许其他所有

[r1]route-policy cc permit node 20

[r1-route-policy]qu

然后调用策略,针对某BGP邻居调用该策略。发出的时候直接过滤

[r1]bgp 1

[r1-bgp]peer 12.1.1.2 route-policy cc export 通过BGP发出的流量,路由策略中拒绝的不再被传递

4、直接使用前缀列表实现过滤策略的目的

[r1]bgp 1

先逐条宣告明细路由:

[r1-bgp]network 20.1.1.0 24

[r1-bgp]network 20.1.2.0 24

然后再做聚合配置:

[r1-bgp]aggregate 20.1.1.0 22 //聚合路由和明细路由都会发送

先定义要过滤的路由条目

[r1]ip ip-prefix dd deny 20.1.1.0 24

[r1]ip ip-prefix dd permit 0.0.0.0 0 less-equal 32

直接在BGP邻居间调用该前缀列表

[r1]bgp 1

[r1-bgp]peer 12.1.1.2 ip-prefix dd export //通过BGP发出的流量,前缀列表中拒绝的不再被传递
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OSPF、ISIS和BGP是三种常用的路由协议,它们在路由器之间交换路由信息以实现网络的动态路由。以下是它们的一些异同点: 1. 目标网络类型:OSPF和ISIS主要用于内部网关协议(IGP),而BGP主要用于外部网关协议(EGP)。这意味着OSPF和ISIS通常用于构建企业内部网络,而BGP主要用于连接不同的自治系统(AS)。 2. 路由算法:OSPF和ISIS使用链路状态路由算法(Link State Routing),而BGP使用路径向量路由算法(Path Vector Routing)。链路状态路由算法基于每个路由器了解网络中的所有链路状态,而路径向量路由算法基于每个路由器收到的路径向量信息。 3. 路由信息交换:OSPF和ISIS使用邻居关系来交换路由信息,邻居之间通过发送链路状态更新来保持路由表同步。BGP使用对等关系来交换路由信息,对等关系之间通过发送路径更新来通知对方网络的可达性。 4. 路由策略和控制:OSPF和ISIS通常使用最短路径优先(SPF)算法来选择最佳路径,而BGP可以使用各种策略来选择最佳路径,例如基于AS路径长度、自治系统内部策略等。 5. 网络规模和复杂性:OSPF和ISIS适用于中小型网络,而BGP适用于大型网络,因为BGP可以处理更复杂的路由策略和大规模的自治系统之间的连接。 需要注意的是,这只是它们的一些异同点,并不包括所有方面。每种协议都有其特定的应用场景和优势,选择适合自己网络需求的协议是很重要的。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值