文章目录
11、 BGP 的 AS-PATH 属性有什么作用?
-
用于防环
即路由经过一个AS区域后,会将其AS号记录在AS-PATH中,此时,这条路由就不能再进入到AS-Path中记录的AS内了;即出本AS的路由是不能在进入本AS内的
-
用于选路
AS-Path越短,路径越优
12、 BGP 的 local-performance 属性有什么作用?如何使用?
作用
- 优选本地优先级 (Local_Prefereace)最高的路由;
- 最常干涉IBGP关系的选路;只在IBGP邻居关系间传递;
- 用于限制离开本AS的流量;大优;
- 进来的路由的选路 对内import 不能对外,因为传不出去,只在IBGP间传播,可以对IBGPexport
使用
- IBGP的import、export
- EBGP的import
13、 BGP的反射器间如何防环
环路分析
由于反射器会根据邻居的角色(客户端、非客户端)来进行路由的反射,则这种宽泛的情况下就会产生一下两种的由反射器所导致的环路情况
- 始发路由器宣告的路由被反射回来
- 被反射的路由在反射器间进行无休止的反射
环路产生1
R2的A路由宣告进BGP后,经R1反射给R3,R3做为一个反射器,又会将此路由反射给始发路由器R2,至此,造成环路
环路产生2
A路由经反射器反射后,在三个反射器间进行无休止的传递,产生环路
解决
环路产生1:Originator-ID,即始发路由器将路由传递出去时,将自己的RID携带称为Originator-id,当这条路由进来时,若起源id与本地的RID相同,则不收
环路产生2:将RR的RID在反射路由的时候携带,放到Cluster_List里;每经过一个反射器,记录反射器的RID,放到Cluster-list
14、 BGP 的反射原则?
反射规则是对于BGP中的路由反射器而言的,即用于打破IBGP水平分割的一种技术,再路由反射器上可以将路由器设置为客户端,没有设置的路由器就是非客户端,除了从非客户端接收到的路由不会传递给非客户端外,其他所有情况都是会传递的,即菲菲不传
15、 BGP 的数据包与工作过程?
数据包
Open报文—>用于协商BGP参数
邻居关系的建立,正常仅收发一次即可;
存在hold time (180s) router-id生成规则同OSPF一致=手工-环回最大地址-物理接口最大地址
Update —>交换路由信息
更新包 路由信息 目标网络号+属性(大量的不同参数,便于干涉选路)
Keeplive —>保持邻居关系
周期保活 60s 实际保活的是TCP的会话,自然保活到了BGP的邻居关系
Notification —>差错通知
报错 错误信息产生时,出现提示 比如AS号配置错误
Route-Refresh—>用于在改变路由策略后请求对等体重新发送路由信息
工作过程
条件:IP可达 IGP工作完成,路由可达之后BGP才能工作
1、启动配置完成后,peer间进行TCP会话的建立,3次握手完成邻居会话建立后;
2、BGP使用open报文建立邻居关系,生成邻居表;正常open报文收发一次即可;
3、之后BGP使用update来进行路由条目的共享;所有的信息可靠性由TCP保障;
4、接收到update消息后,BGP将条目存储于BGP表中;–本地发出接收到的所有BGP路由信息;默认将最优路径加载于路由表中;
5、路由共享结束后,BGP正常仅keeplive周期保活即可,若条目变化进行触发更新;
Active是TCP重连接与TCP连接失败的情况
连接重试时间:32s
数据库
in—>策略–>loc表–>out
16、谈谈 BGP 的对等体
对等体之间的交互原则
-
IBGP水平分割
从IBGP对等体获得的路由,只发布给EBGP对等体;
这其实就是AS内部的防环,即完全不转发,把事做绝
-
EBGP全转发,即给EBGP邻居也给IBGP邻居
1、将EBGP邻居学习路由传递给IBGP邻居时,下一跳不发生变化(导致下一跳不可达)
下一跳不可达导致路由不能优选
2、将IBGP邻居学习到的路由传递给EBGP邻居时,下一跳发生改变 下一跳属性改成更新源地址
-
只将BGP的最优路由发布给对等体
-
只发生更新的BGP路由
-
IBGP与IGP的同步
为了解决数据层面的路由黑洞,在还没有MPLS-VPN的时代有两种解决方案
1、全互联 缺点:不靠谱,低端路由器起不了BGP 2、路由引入,即将BGP引入到IGP中 同步机制
什么是同步?
IGP、BGP中都存在的路由,在之前的BGP版本中如果发现某条路由我BGP有,IGP没有,我就不敢将此路由变成最优路由;当MPLS-为屁嗯杀出来后,就必须关闭同步,因为MPLS-为屁嗯是建立了一条隧道,与同步与否毫无关系
17、谈谈BGP的Origin属性如何防环的?
Origin用于BGP路由引入的防环,可以阻止起源于BGP的路由引入给其他路由协议产生的环路问题,能够形成类似OSPF那样的一种水平分割,10-150
起源类型 IGP>EGP>Incomplete。 起源属性 i优于e优于?; 可在控制层面任意接口修
network 宣告本地路由表中的任意路由 i 0
egp 早期的ebg协议学习的路由重发布到BGP协议中 e 1
import 将本地通过其他协议学习的路由重发布到BGP协议中 ? 2
18、BGP的Next-Hop属性在不同邻居间的传递问题?
1、将EBGP邻居学习路由传递给IBGP邻居时,下一跳不发生变化(导致下一跳不可达)
下一跳不可达导致路由不能优选
分为如下两种场景
从EBGP邻居传递给IBGP
将自己的路由传递给IBGP邻居
2、将IBGP邻居学习到的路由传递给EBGP邻居时,下一跳发生改变 下一跳属性改成更新源地址
19、BGP的MED是什么?
MED作为BGP的第6条选路规则,是最常用的选路规则之一(最常用的是Local-Preference和MED)
- 对于来自同一AS的路由,优选MED(多出口的鉴别属性)值小的;
- 最常用于干涉EBGP选路的属性,干涉别人对我的选路;即出去的路由的选路 对外export;说白了就是我去修改你对我的选路
- MED就是人为的利用路由器优选路径的规则—先比较管理距离(华为为优先级),若相同再比较度量值(华为cost)
应用场景:
可以对内,也可对外;但是只能用于两个AS间的传递,需要比较也可以,开启一个开关即可
compare-different-as-med
20、说下BGP的聚合
路由聚合概述
聚合后的路由会去掉原本明细的属性;所以需要标明其是被聚合的路由
聚合的本质:把明细干掉,新生成一条路由
聚合的意义:由于清洗掉了明细,则明细路由的一些防环属性,下一跳属性等就会被清洗,所有聚合属性的意义在于是否要标明聚合,是否要继承
1、聚合者 aggregator
2、有没有聚合 atomic_aggregate
继承明细
我们的需求是,让聚合的路由不要清洗掉明细的属性,这种需求是非常常见的,比如有时候的AS-Path属性的清洗会直接导致环路的产生
那么如何让聚合路由继承明细呢?
在聚合的时候,在其后配置as-set这条命令
[R2-bgp]aggregate 100.0.0.0 8 as-set
抑制明细
正常的聚合后,明细路由还是存在的,如何抑制明细的发送呢?
在聚合的时候,在其后配置detail-suppressed这条命令
[R2-bgp]aggregate 100.0.0.0 8 as-set detail-suppressed
抑制+继承属性
使用attribute-policy
set这条命令
[R2-bgp]aggregate 100.0.0.0 8 as-set