Datacom HCIP笔记-BGP协议 之二

BGP的Update报文

BGP通过Network和lmport两种方式生成BGP路由,BGP路由封装在Update报文中通告给邻居。

BGP在邻居关系建立后才开始通告路由信息。Update消息主要用来公布可用路由和撤销路由,

Update中包含以下信息:·网络层可达信息(NLRI):用来公布IP前缀和前缀长度。·

路径属性:为BGP提供环路检测,控制路由优选

撤销路由:用来描述无法到达且从业务中撤销的路由前缀和前缀长度。

在通告BGP路由时,由于各种因素的影响,为了避免路由通告过程中出现问题BGP路由通告需要遵守一定的规则,下面进行详细介绍。

BGP协议产生路由的方式

1、network

BGP协议的network命令不在具备将接口加入BGP进程的逻辑

network就是将路由表中的路由引入到BGP表,并通告给邻居。

network可以精确控制发布哪些BGP路由。

2、import-route

将路由表的路由引入到BGP中,高效快捷。

1、仅传递最优路由

2、从EBGP邻居得到路由传递给所有邻居

3、从IBGP邻居得到的到路由不传递给IBGP邻居

4、从IBGP邻居得到的路由同步检测通过后传递给EBGP邻居

如何解决BGP路由黑洞

@将EBGP路由引I入到IGP协议中(基本被淘汰)。原因比较消耗设备资源,因为BGP路由数量过于庞大,引入到IGP协议,增加的IGP协议计算路由负担。BGP路由震荡,IGP路由也会产生震荡。

@AS内部所有路由器均运行BGP协议,即IBGP全互联,主流架构,此时不在需要同步检测。

BGP防环机制

1、AS内部防环,IBGP水平分割,通过IBGP邻居得到的路由不会再传递给IBGP邻居。

BGP协议的特点:

1、BGP不对路由进行计算

2、BGP只是路由的搬运工

BGP路由传递给EBGP邻居时,下一跳自动修改为向该EBGP邻居发送BGP报文的源地址。

从EBGP邻居传来的路由传给IBGP邻居时,下一跳默认保持不变,可能导致下一跳不可达问题,如何解决呢?

peer 4.4.4.4 next-hop-local

该命令仅对IBGP邻居生效,将从EBGP邻居得到的路由传递给指定的IBGP邻居时,下一跳修改为自身向该IBGP邻居发送BGP报文的源地址。

refresh bgp all export

向所有BGP邻居手动触发路由更新

undosynchronization   关闭同步功能

BGP路由同步是BGP路由黑洞检测机制,并不能解决BGP黑洞问题

BGP发布路由的逻辑:你想别人能够访问你,那么你就得把这条路由发布出去。

公认属性:所有BGP路由器都必须识别并支持的属性口公认必遵:BGP的Update消息中必须包含的属性。

公认任意:不必存在于BGP的Update消息中,可以根据需求自由选择的属性。

可选属性:不要求所有的BGP路由器都能够识别的属性

可选过渡:BGP不能识别该属性,但可以接收该属性并将其发布给它的邻居的属性。

可选非过渡:BGP可以忽略包含该属性的消息并且不向它的邻居发布。

BGP路由属性的分类

1、公认:所有运行BGP协议的路由器都能理解的属性。

2、可选:厂家开发的某些满足特殊需求的属性,但并不是所有运行BGP协议的路由器都理解的属性。

表明他的起源,怎么变成BGP路由的,修改起源属性来进行路径的控制

产生BGP路由的方式:

1、network

2、import-route

BGP路由的起源属性有3种

i   表明BGP路由是由network命令发布的I

? incomplete,表明BGP路由是由import-route发布的

e  表明BGP路由是从EGP协议引入的,EGP协议目前己经全面退出网络。

起源属性可以被修改,一般起源属性是一种BGP选路属性,可以用于BGP路径的选路,通过修改起源属性可以控制BGP路径。i>e>?

AS内部防环:IBGP的水平分割

AS_PATH

1、选路,经过AS数量少的路径最优。

2、在AS之间实现BGP环路的防范。从EBGP邻居得到路由时,检查该路由的AS_PATH属性,如果AS_PATH中存在自身的AS号,则丢弃改路由。

当BGP路由传递给EBGP邻居时会将自己的AS号添加到AS_PATH属性的最前面

当BGP路由传递给IBGP邻居时不会添加自己的AS号。

3、防环的检测机制:EBGP邻居之间进行AS_PATH检查,IBGP邻居之间不做AS_PATH检测

4、AS_PATH可以在IBGP和EBGP邻居之间修改,思科只允许在EBGP邻居之间修改。

Local_Preference

仅传递给IBGP邻居,不会传递给EBGP邻居,即在AS内部传递。默认为100,越大越优先。

华为设备通告MED属性的规则

MED属性在IBGP和EBGP邻居(包括成员EBGP)in和out方向都可以修改。

1、本地始发的路由MED值传递给所有邻居。

2、从EBGP邻居得到的路由的MED不会传递给EBGP邻居,影响邻居AS的选路。

3、从EBGP邻居得到的路由的MED可以传递给IBGP邻居。

4、从IGBP邻居得到的路由传递给EBGP邻居不携带MED。

5、从联盟EBGP邻居或联盟内始发的的路由的MED值在整个联盟保持传递。

如果从EBGP邻居学习到的路由不带MED属性,则传给IBGP邻居时,将MED属性设置0.(华为设备如果从EBGP邻居学到的路由不带MED属性,在传给IBGP邻居时也不携带MED属性)

如果路由是联盟内部的路由,MED属性在整个联盟内部都可以传递。如果从成员IBGP传递来的路由有MED属性,可以传递给成员EBGP邻居,但不会传给联盟EBGP邻居。在EBGP和IBGP邻居之间in和out方向都可以对med属性做修改。

BGP的团体属性

限制BGP路由的传递范围,公认团体属性

给BGP路由添加标记,方便管理,扩展的团体属性。

BGP路由可以同时拥有公认团体属性和扩展团体属性

不同于IGP TAG,TAG只能打一个,管理能力有限,不能多维度的标识路由。

BGP路由可以拥有多个团体属性,根据管理需求,业务需求等灵活进行路由管理。

Internet:缺省属性,所有路由都属于Internet,此属性的路由可以通告给所有BGP邻居;

No_Export:收到此属性的路由后,不将该路由发布到其他AS。

No_Advertise:收到此属性的路由后,不将该路由通告给任何其他的BGP邻居。

No_Export_Subconfed:在联盟中使用,仅在成员As内传递当路由存在多个公认团体属性时,传递范围最小的生效。

BGP路由优选原则BGP路由器将路由通告给邻居后,每个BGP邻居都会进行路由优选,路由选择有三种情况:

1. 该路由是到达目的地的唯一路由,直接优选。

2.对到达同一目的地的多条路由,优选优先级最高的。

3.对到达同一目的地且具有相同优先级的多条路由,必须用更细的原则去选择一条最优的。

一般来说,BGP计算路由优先级的规则如下:

丢弃下一跳不可达的路由。

优选Preference_Value值最高的路由(私有属性,仅本地有效)

优选本地优先级(Local_Preference)最高的路由。

优选手动聚合>自动聚合>network>import>从对等体学到的。

优选ASPath短的路由。

起源类型IGP>EGP>Incomplete。

对于来自同一AS的路由,优选MED值小的。

优选从EBGP学来的路由(EBGP>IBGP)。

优选AS内部IGP的Metric最小的路由。

优选ClusterList最短的路由。

优选OrginatorID最小的路由。

优选RouterID最小的路由器发布的路由。

优选具有较小IP地址的邻居学来的路由。

EBGP邻居的路由优于IBGP邻居的路由

1、利用静态路由执行BGP汇总并不是真正意义上BGP路由汇总,只是利用BGP发布路由的特点来实现汇总的效果。

明细路由并不会被抑制,还是会正常的通告给邻居,需要做明细路由的过滤。

会丢失明细路由的某些BGP路由属性,存在路由环路的风险。

明细路由是否存在和汇总路由之间不存在依赖关系,导致汇总路由不能真实反应网络的现状。

2、BGP自动汇总,一般不用

仅对自身通过import-route命令发布的路由生效

只能汇总成主类网络号。

明细路由会被抑制。

3、BGP手动汇总,主流方式

只要在BGP表中存在的路由都能被手动汇总

可以实现精确汇总,可以支持CIDR。

可以对汇总路由的属性做编辑a可以继承明细路由的属性,防止环路。

明细路由全部失效,汇总路由才会失效。

as-path表明路由传递的AS的次序,有序的

as-set{}无序的AS-PATH,防环用的,并不表明路由传递的次序。

{}中的AS号,只算1个AS长度。

你可能感兴趣的:(网络,BGP协议,HCIP笔记,路由协议)