BGP的选路原则

IBGP水平分割 ---- 即当路由器从一个IBGP对等体处学习到一条路由信息,他将不再把这条路由通告给其他的IBGP对等体。

路由反射器 --- Router Reflector --- RR

    我们可以将一台IBGP设备配置成为路由反射器(RR),被配置为路由反射器的设备在一定条件下将反射学习到的路由信息。

   

    在我们指定一台设备成为路由反射器RR的同时,必须指定一个或者多个邻居成为他的客户,RR和客户之间构成的系统我们称为反射簇,每一个簇设定一个簇ID --- 这个反射簇中RR的RID。其他没定义为客户的邻居被称为非客户。

反射规则:

1,如果路由反射器从自己客户处学来一条IBGP路由,则他将反射给自己所有的客户和非客户。

2,如果路由反射器从自己非客户处学来一条IBGP路由,则他将反射给自己所有的客户,但是不反射给非客户。 ----- 非非不传

3,当路由器在进行路由反射时,只反射自己BGP路由中最优的路由。 --- 和BGP路由的传递规则相同。

 

    因为IBGP水平分割主要时为了防止路由环路产生,而路由反射器反射后相当于打破了IBGP水平分割的规则,则将有可能出现路由环路。所以,为了避免路由环路从产生,路由反射器在设计的时候,专门引入了两个属性,来避免环路从产生。 ----- Originator_ID(起源者ID),

Cluster_list(簇列表)

     起源者ID --- 放射这条路由信息始发者的RID ---- 当这条路由经过RR反射之后,反射出来的路由信息中将增加这个属性。如果RR收到一条路由信息中已经存在起源者ID属性,则不去修改这个属性。当一台设备收到一条路由信息后,发现里面的起源者ID是自己本地的RID,则将不去接受这条路由信息,避免路由回传。

    如果,一个AS内部存在多次反射的话,那么,一定存在多个反射簇,则每个RR在放射路由信息的时候,会在路由信息中的簇列表属性中加入本地的簇ID。

    注意:这两个属性,只是用来在IBGP内部进行防环的,所以,当这些路由被传递到EBGP对等体时,将不携带这两属性。

    RR在进行路由反射时,除了会在路由信息中添加以上两个属性外,其他属性不变。

RR的配置

[r3-bgp]peer 2.2.2.2 reflect-client  ---- 指定R2作为反射器客户,同时R3自己成为RR。

联邦

     联邦EBGP关系之间仅继承EBGP之间路由传递的规则,但是不能像 EBGP对等体一样修改路由属性,还需要遵守AS-BY-AS规则,是一种特殊的存在。

    联邦EBGP之间防环可以直接采用EBGP水平分割的机制来进行防环,直接在AS_PATH属性中增加成员AS号来进行防环,只不过,联邦的AS号会使用括号括起来,来进行区分。 ---- 这个属性主要是用来进行AS内部防环使用,所以,也不会传递给EBGP对等体。

[r2]bgp 64512  ---- 联邦成员启动BGP进程时需要使用小号(联邦成员

的AS号)启动

[r2-bgp]router-id 2.2.2.2

[r2-bgp]confederation id 2  ---- 联邦成员进程中一定要声明自己的

大号(真实所在的AS号)

[r2-bgp]peer 12.0.0.1 as-number 1

[r2-bgp]peer 3.3.3.3 as-number 64512 --- 和联邦成员建立IBGP邻居

关系时使用小号

[r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0

[r3]bgp 64512

[r3-bgp]router-id 3.3.3.3

[r3-bgp]confederation id  2

[r3-bgp]peer 2.2.2.2 as-number 64512

[r3-bgp]peer 2.2.2.2 connect-interface LoopBack 0

[r3-bgp]confederation peer-as 64513 ---- 需要建立联邦的EBGP对等

体关系时,需要先声明对方的小号

[r3-bgp]peer 4.4.4.4 as-number 64513

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

[r3-bgp]peer 4.4.4.4 ebgp-max-hop 2 --- 因为联邦EBGP之间是按照

EBGP对等体的传输规则来完成的,所以,默认的TTL值1,并且存在直连检测,所以,需要通过修改TTL值的方式,让其关闭直连检测。

    联邦解决IBGP水平分割的缺陷是一个联邦内部只能存在一对IBGP对等体关系,因为IBGP之间路由只能传递一次,所以,实际工程中,往往可以将联邦和路由反射器结合来使用。

BGP的选路原则

BGP选路的前提条件 --- 丢弃所有不可用的路由信息

属性名称

传播范围

默认值

评判标准(大优还是小优)

PV

不传播

0(0 - 65535)

越大越优

LP

IBGP对等体之间

100

越大越优

AS_PATH

BGP对等体之间

记录的数量越少越优

OGN

BGP对等体之间

根据起源类型决定

I > e > ?

MED

BGP对等体之间

默认取值为全局路由表中的开销值

越小越优

1,优选Preferred-value属性值最大的路由

这个属性是华为设备的私有属性,可以理解为权重。

    PV属性是本设备上选路优先级最高的属性,这个属性越大越优。 --这个属性是不会进行传递的,只能在本设备上进行修改,也只能在本设备上生效,传递出去的路由条目中将不携带这个属性,所以,对方收到路由后,这个属性依然会依据默认值进行加表。

    所以,这个属性是本设备上干涉选路最方便的属性。

    第一种修改方法:

[r4-bgp]peer 3.3.3.3 preferred-value 100  --- 通过这个命令可以修改对应邻居发送的路由信息的PV值

   

负载分担 --- 即不同的流量走不同的线路,分担一条单一线路的压力。

第二种方法:通过流量抓取进行属性修改

1,前缀列表抓取流量

[r4]ip ip-prefix pv permit 10.0.0.0 24

2,路由策略修改属性

[r4]route-policy pv permit node 10

Info: New Sequence of this List.

[r4-route-policy]if-match ip-prefix pv

[r4-route-policy]apply preferred-value 100

[r4-route-policy]q

[r4]route-policy pv permit node 20 ---- 添加空表,放通剩

余流量

Info: New Sequence of this List.

[r4-route-policy]q

3,在BGP上调用路由策略

[r4-bgp]peer 3.3.3.3 route-policy pv import ---- 注意,调用的时候需要选择方向;入方向影响自身,出方向影响他人。

2,优选Local-Preference属性最大的路由

    LP --- 本地优先级属性,默认值为100,越大约优。LP属性可以进行传递,但是只能在IBGP邻居之间传递,传递到EBGP邻居时将不携带该属性,所以,这个属性是在IBGP内部选路最常用的属性

修改方法一:

[r3-bgp]default local-preference 200 --- 将R3发送的路由信息中的LP值修改为200

修改方法二:

[r3]ip ip-prefix lp permit 10.0.0.0 24

[r3]route-policy lp permit node 10

Info: New Sequence of this List.

[r3-route-policy]if-match ip-prefix lp

[r3-route-policy]apply local-preference 200

[r3-route-policy]q

[r3]route-policy lp permit node 20 Info: New Sequence of this List.

[r3-bgp]peer 4.4.4.4 route-policy lp export ---- 针对

4.4.4.4执行出方向的路由策略 3,自己始发的大于从别人那学的,自己发布的路由的多种方法的优先级为:手工聚合>自动聚合>network>重发布

4,优选AS_PATH属性最短的路由

AS_PATH选路的基本原则 --- 记录AS号越少越优

1,我们在聚合路由时开启AS_SET功能后,将不同的AS明细路由的AS号用大括号括起来放入AS_PATHS属性中。但注意,在比较选路时,不管大括号中包含多少个AS号,我们都当作是一个来看待。

2,联邦时,我们联邦内部也需要使用AS来进行防环,我们用小括号括起来表示。这种情况下,我们在进行AS_PATH长度比较时,将不考虑小括号中的内容。

R1的出方向

[r1]ip ip-prefix as permit 10.0.0.0 24

[r1]route-policy as permit node  10

Info: New Sequence of this List.

[r1-route-policy]apply as-path 11 22 33 ?

  INTEGER<1-4294967295>  AS number in asplain format

(number<1-4294967295>)

  STRING<3-11>           AS number in asdot format                                     (number<1-65535>.number<0-65535>)

  additive               Append to original As Number   ----

指在原有的AS号基础上增加AS号

  overwrite              Overwrite original As Number  ----

清楚原有的AS号,之后添加AS号

[r1-route-policy]apply as-path 11 22 33 additive ---- 处于防环的考虑,建议使用additive

[r1]route-policy as permit node 20  --- 空表放通所有 Info: New Sequence of this List. [r1-route-policy]

[r1-bgp]peer 12.0.0.2 route-policy as export  --- 出方向调用影响AR2

[r2-route-policy]apply as-path 1 1 1 additive ---- 我们随便添加的AS号,可能在真实网络中存在。因为AS_PATH属性还可以进行防环,所以,这样写可能导致这几个AS无法接受该路由信息。所以,为了避免这种情况发生,我们可以将添加的AS号全改为真实离开的AS 号,毕竟,选路只跟长度有关,和内容无关。

5,优选起源码属性最优的

OGN --- 起源码 --- 1,通过Network发布的路由 ---- I  ---- I代表该路由起源于IGP协议(包括静态路由和直连路由)。

       --- 2,通过EGP协议发布的路由 ---- e ---- 指的是BGP协议之前的外部网关协议 -- EGP协议,因为目前该协议基本上不用了,所以,e标记很少见。

       --- 3,通过除了以上两种方式发布的路由 ---- ? ---- 重发布路由的起源码标记就是?这三种起源码的优先级关系为:I > e > ?

[r1]route-policy ogn permit node 10

Info: New Sequence of this List.

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

[r1-route-policy]apply origin ?

  egp         Remote EGP   igp         Local IGP   incomplete  Unknown heritage

[r1-route-policy]apply origin incomplete

6,优选MED值最小的路由

MED --- 多出口鉴别属性 --- MED属性的初始值,是继承了IGP协议或者是静态路由或直连路由在路由表中的开销值。     该属性可以影响其他AS的流量如何流入自己AS中     BGP协议在进行宣告时,可以宣告路由表中任意的路由条目,默认将这些路由的开销值继承到BGP路由的MED属性中。若本地宣告的 BGP路由传递给EBGP邻居,将携带MED值,便于EBGP邻居所在的AS内部的设备进行选路。若本地通过IBGP邻居学到的BGP路由,也会传递给自己的EBGP邻居,但是将会将MED值归0传递。因为这些度量并不是本地产生的。总结:存在EBGP邻居关系的所有设备都建议宣告内部AS的路由。

注意:我们在进行MED值比较时,多条相同的路由信息必须来自同一个AS才可以,即AS_PATH属性中最左边的AS号必须相同,否则没有可比性,将直接跳过这一条的比较。

[r2]route-policy med permit node  10

Info: New Sequence of this List.

[r2-route-policy]if-match ip-prefix med

[r2-route-policy]apply cost 100 [r2-route-policy]q

[r4]ping -r -a 4.4.4.4 1.1.1.1  ---  记录命令,可以记录数据传递的路径信息

扩展:

BGP有11条选路原则
比较前提:关闭同步、下一跳可达、路径皆优
1.Prefer highest weight(local to router)
首先比较weight 越大越优-不传递 CISCO私有属性
EBGP/IBGP之间选路均可用

2.Perfer highest local preference(global within AS)
比较本地优先级,默认为100,仅IBGP邻居之间传递,越大越优

3.Prefer rotue originated by the local rotuer(next hop=0.0.0.0)
优选本地下一跳

4.Prefer shortest AS path
比较AS-path,经过的AS数量少优,EBGP邻居可增添
EBGP/IBGP之间选路均可用

5.Prefer lowest origin code(IGP<EGP<incomplete)
起源码最小 i=igp(0) e=egp(1) ?=incomplete=2 i>e>?
EBGP/IBGP之间选路均可用

6.Prefer lowest MED(exchanged between autonomous systems)
MED值最小,越小越优
EBGP/IBGP之间选路均可用

7.Prefer EBGP path over IBGP path
普通的EBGP邻居优于联邦内EBGP邻居优于IBGP邻居

8.Prefer the path through the closest IGP neighbor
优选最近的IGP邻居(IGP度量值小的)

9.Prefer oldest route for EBGP paths
优选最先建立EBGP邻居

10.Prefer the path with the lowest neighbor BGP rotuer ID
最小BGP邻居RID,比较BGP邻居RID,小优

11.Prefer the path with the lowest neighbor IP address
优选最小的建邻地址

BGP默认负载均衡的条目数为1,也就是说BGP默认无负载均衡,可以人为定义,通过修改max-path参数来改变负载均衡条目数,一旦修改的值大于1,那么选路原则只会工作到第8条

总结用法:
1.一个路由器有多个出口时一般用weight来控制选路
2.一个AS内有多个出口时一般用Local_pref
3.影响其他人选路用MED out方向,影响自己选路用MED in方向
4.影响多个AS选路用AS-path
5.origin next-hop一般不用,有时会影响BGP的正常选路
 

 

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张小元.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值