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 AS number in asplain format (number)
STRING <3-11> AS number in asdot format (number<1-65536>.number<1-65536>) 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
*>10.0.0.0/24 12.0.0.1 0 0 1 11 22 33 i
第二种方法
在R2入的方向修改as_path
*>10.0.0.0/24 12.0.0.1 0 0 11 22 33 1i
[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,通过除了以上两种方式发布的路 由 ---- ? ---- 重发布路由的起源码标记就是?
[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
[r1]route-policy ogn permit node 20
[r1-bgp]peer 12.0.0.2 route-policy ogn export
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]ip ip-prefix med permit 4.4.4.0 24
[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
[r2]route-policy med permit node 20
在BGP里面调用
[r2-bgp]peer 12.0.0.1 route-policy med export
[r4]ping -r -a 4.4.4.4 1.1.1.1 --- 记录命令,可以记录数据 传递的路径信息
7,EBGP 路由优于IBGP路由
8,优选到达NEXT_HOP的IGP度量值最小的路由 指的是到达下一跳本地路由表中的开销值进行比较,和其他参数无 关。
10. 在存在路由反射器时,将比较O_ID,不存在路由反射器时,就比较RID.
BGP的路由过滤
1,通过路由策略进行过滤
抓流量
[r1]ip ip-prefix aa permit 192.168.1.0 24
做策略
[r1]route-policy aa deny node 10
Info: New Sequence of this List.
[r1-route-policy]if-match ip-prefix aa
[r1-route-policy]q
[r1]route-policy aa permit no 20
Info: New Sequence of this List.
[r1-route-policy]q
[r1]bgp 1
在BGP中进行调用
[r2-bgp]peer 12.0.0.2 route-policy aa export
2,通过前缀列表来进行过滤
[r2]ip ip-prefix aa deny 192.168.2.0 24
[r2]ip ip-prefix aa permit 0.0.0.0 0 less-equal 32
在BGP中进行调用
[r2]bgp 2
[r2-bgp]peer 12.0.0.1 ip-prefix aa import
3,通过过滤ACL列表进行过滤
[r3]acl 2000
[r3-acl-basic-2000]rule deny source 192.168.3.0 0
[r3-acl-basic-2000]rule permit source any 放通所有
[r3-acl-basic-2000]q
在BGP中进行调用过滤列表
[r3]bgp 2
[r3-bgp]peer 13.0.0.1 filter-policy 2000 import
BGP的社团属性
社团属性可以类似的理解为路由标记。我们可以给不同的BGP路由当 中打入不同社团属性,之后,携带社团属性进行通告,之后,便可以根据 路由中的社团属性抓取流量,制定策略。
社团属性本身其实就是个标号,用来区分路由的 --- 由32位二进制 构成 --- 两种写法:
1,直接十进制表示;
2,十六位:十六位 --- 前16 位设定为该路由所在AS的AS号,后16位为自定义编号。
注意,一条路由中可以打入多个社团属性BGP当中,也定义了几个公认的社团属性
1,0X00000000 ---- internet 所有BGP路由默认属于这个名称为“internet”的社团中。如果 我们使用路由过滤器匹配社团属性为internet的路由时,将匹配到任 意一条BGP路由
2,0XFFFFFF02 --- no - advertise 被打上这个社团属性的路由将不被通告给其对等体
3,0XFFFFFF01 --- no - export 被打上这个社团属性的路由间无法通告给自己的EBGP邻居(不包 括联邦的EBGP邻居)
4,0XFFFFFF03 --- no - export - subconfed 被打上这个社团属性的路由间无法通告给自己的EBGP邻居,包括 联邦的EBGP邻居