BGP的选路
BGP选路的前提条件 ----丢弃所有不可用的路由信息
属性的名称 | 传播范围 | 默认值 | 评判标准(大优还是小优) |
PV | 不传播 | 0(0-65535) | 越大越优 |
LP | IBGP对等体之间 | 100 | 越大越优 |
AS_PATH | IBGP对等体之间 | 记录的数量越少越优 | |
OGN | BGP | 根据起源类型决定 | 1>e>? |
MED | BGP对等体之间 | 默认继承全局路由表中路由的开销值 | 越小越优 |
1.优选PV值最大的路由
PV---这个属性是华为的私有属性,可以理解为权重。----这个属性是本设备上选路优先级最高的属性,这个属性越大越优。----这个属性不能传递。
第一种方法:
[R4-bgp]peer 3.3.3.3 preferred-value 100
负载分担---即让不同的流量通过不同的路线来走,分担单一路线的压力。
第二种方法:
1.抓取流量
[r4]ip ip-prefix pv permit 10.0.0.0 24
2.做路由策略修改pv值
[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
2.优选LP属性值最大的路由。
LP---本地优先级----在不做任何更改的情况下,默认值为100,也是越大越优。LP这个属性,它可以传递给自己的IBGP对等体关系,但是,不能传递给EBGP对等体关系。---- 这个属性是IBGP对等体之间选路最常用的属性。
第一种修改方法:
[r3-bgp]default local-preference 200
第二种修改方法:
r3出方向修改:
1.抓取流量
[r3]ip ip-prefix lp permit 10.0.0.0 24
2.做路由策略
[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 300
[r3-route-policy]q
[r3]route-policy lp permit node 20lnfo: New Sequence of this List.
3,BGP进程中进行调用
[r3-bgp]peer 4.4.4.4 route-policy lp export
3.始发的优于学来的,发布路由的方法又有很多种,他们之间的优先级关系为---手工聚合》自动聚合>network>重发布
4.优选AS_PATH属性值最短的路由
1.我们在聚合路由时开启AS_SET属性时,将不同的AS明细路由的AS号用大括号括起来,放到AS_PATH中。需要注意的是,不管括号中有多少个AS号,在选路时都看做一个。
2.联邦时,联邦内部也需要使用AS_PATH属性来进行防环,我们使用小括号括起来,在这种情况下,我们选路时,不考虑小括号中的内容。
第一种方法:
在r1出方向修改AS_PATH
1.抓流量
[r1]route-policy as permit 10.0.0.0 24
2.做策略
[r1]route-policy as permit node 10
Info: New Sequence of this List.
[r1-route-policy]if-match ip-prefix as
[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<O-65535>)
additive Append to original As Number ---添加,在原先AS号的基础上增加配置的AS号
overwrite overwrite original As Number ---重写,将原先的AS号清除后按配置的添加
[r1-route-policy]apply as-path 1122 33 additive ----建议选用添加,因为原先的AS号依旧要保证防环作用,所以,清除可能导致路由回传。
[[r1]route-policy as permit node 20 ----做空表放通所有
lnfo: New Sequence of this List.
3,BGP进程中调用
[r1-bgp]peer 12.0.0.2 route-policy as export
*>10.0.0.0/24 12.0.0.1 o o 111 22 33i
第二种方法:
在R2的入方向修改AS_PATH
*>10.0.0.0/24 12.0.0.1 0 0 1122 331i
[r2-route-policy]apply as-path 1 1 1 additive---因为我们添加的AS号可能会影响路由信息的传入,因为AS_PATH本身防环功能的限制导致。所以在修改这个属性时,建议添加真实离开的的AS号,这样依然可以起到影响选路的效果,因为选路只看长短,不看内容,而且,可以避免防环误伤。
5.根据OGN属性的优先级进行选路判断----优先级关系为l>e>?
OGN---起源码---标示BGP路由的来源
1.通过NETWORK命令发布出来的路由信息-----l----表明这些路由都是起源于IGP(包含静态和直连)协议。
2通过EGP协议(EGP指的是BGP之前使用的外联网关协议EGP)
发布的路由信息----e
3.通过除了以上两种方法学到的路由----?----重发布路由起源码就是 ?
干涉选路的方法:
1.抓取流量
[r1]ip ip-prefix ogn permit 10.0.0.0 24
2.做路由策略
[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 lGP
incomplete Unknown heritage
[r1-route-policy]apply origin incomplete
[r1]route-policy ogn permit node 20lnfo: New Sequence of this List.
3,在BGP进程中调用
[r1-bgp]peer 12.0.0.2 route-policy ogn export
6.优选MED属性值最小的路由
MED---多出口鉴别属性---这个MED值默认的初始值并不是0,而是继承路由表中路由条目的开销值。
MED这个属性可以在本AS内部进行修改,最终影响其他AS的流量的出口的选择。相当于影响其他AS的流量如何进入本AS的一个属性。
MED属性自身宣告的路由本身将会把IGP的开销值作为MED属性添加到路由信息中。之后,在IBGP对等体之间传递时,也会携带这个值。如果是自身发布的,则发送给EBGP对等体时,也会携带这个值。如果是转发别人的路由信息,在需要发送EBGP对等体时,将需要清除这个MED值。
结论:如果存在多个边界路由器,AS内的一些网段只在部分设备上进行发布,则有可能造成选路不佳的情况。所以,建议AS内部需要发布的网段在所有的边界设备上都进行发布。
这个MED值作为多出口的鉴别属性,在比较时有一个前提条件,就是多个出口必须属于同一个AS中,即收到的路由信息AS_PATH属性最左边的AS号必须相同,如果不同,则将不比较这个属性,直接向后比较。
干涉选路的方法:
在R2上做出方向的策略,影响R1选择到达4.0/24网段的出口。
1,抓取流量
[r2]ip ip-prefix med permit 4.4.4.0 24
2,做路由策略
[r2]route-policy med permit node 10
lnfo: New Sequence of this List.
[r2-route-policy]if-match ip-prefix med
[r2-route-policy]apply cost 10
[r2-route-policy]q
[r2]route-policy med permit node 20
3,在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,通过路由策略过滤
R2入方向的过滤
1,抓流量
[r2]ip ip-prefix aa permit 192.168.1.024
2,做策略
[r2]route-policy aa deny node 10
Info: New Sequence of this List.
[r2-route-policy]if-match ip-prefix aa
[r2-route-policy]q
[r2]route-policy aa permit node 20
3,在BGP中进行调用
[r2-bgp]peer 12.0.0.1 route-policy aa import
2,通过前缀列表进行过滤
1,配置前缀列表
[r2]ip ip-prefix bb deny 192.168.2.0 24
[r2]ip ip-prefix bb permit 0.0.0.0 0 less-equal 32---放通所有
2,在BGP中进行调用
[r2-bgp]peer 12.0.0.1 ip-prefix bb import
3,通过过滤列表进行过滤
1,使用ACL列表抓取流量(因为BGP中调用过滤列表时,只能调用ACL抓取的流量)
[r2]acl 2000
[r2-acl-basic-2000]rule deny source 192.168.3.0 o ---选用的动作时拒绝,因为过滤列表本身没有拒绝功能。
[r2-acl-basic-2000]rule permit source any ---放通所有
2,在BGP进程中调用过滤列表
[r2-bgp]peer 12.0.0.1 filter-policy 2000 import
BGP的社团属性:
社团属性本身可以理解为是一种路由标签,所以其本质是--- 32位的二进制。----社团属性存在两种表达方式,
1,直接由十进制来标识。
2,通过前16位二进制:后16位二进制的方式来表达。(前16位一般是本地AS的AS号,后16位是自定值)
在—条路由条目中,我们可以给他标识多个社团属性。
BGP中定义了几个公认的社团属性,即给路由条目打上这样的社团属性,将必须按照BGP设定的动作来执行。
ox00000000 --- internet ---如果通过全0的社团属性来抓取流量,则将抓取到所有BGP的流量。即BGP的所有流量缺省情况下都属于"internet"
OXFFFFFFO2 --- NO-advertise ----如果给一条路由条目打上这个社团属性,则这条路由信息将无法发送给自己的IBGP对等体或EBGP对等体。
OXFFFFFFO1 --- no - export ---如果给一条路由条目打上这个社团属性,则这条路由信息将可以发送给自己的IBGP对等体但是无法发送给自己的EBGP对等体。(不能离开这个AS),但是可以发送给自己的联邦EBGP对等体关系。
OXFFFFFFO3 --- no - export - subconfed ----如果给一条路由条目打上这个社团属性,则这条路由信息将可以发送给自己的IBGP对等体但是无法发送给自己的EBGP对等体。包括自己的联邦EBGP对等体关系。
注意:目前大部分厂商默认在传递BGP路由信息时是不传递社团属性的,所以,如果需要传递社团属性,需要通过命令开启。
[r1-bgp]peer 12.0.0.2 advertise-community
自定义社团属性使用的思路是先在发布路由时打入社团属性,之后根据社团属性抓取流量,再根据抓取的流量做策略。
[r1]route-policy com1 permit node 10
Info: New Sequence of this List.
[r1-route-policy]apply community 1:11 ---通过路由策略修改属性
[r1-bgp]network 172.16.1.0 24 route-policy com1 ---在发布路由时调用属性,给路由中打入社团属性
根据社团属性抓取流量需要使用---社团属性过滤器---community-filter
[r1]ip community-filter 1 permit 1:11
[r1]ip community-filter 2 permit 1:22
[r1]route-policy com deny node 10
lnfo: New Sequence of this List.
[r1-route-policy]if-match community-filter 1
[r1-route-policy]q
[r1]route-policy com permit node 20
lnfo: New Sequence of this List.
[[r1-route-policy]if-match community-filter 2
[r1-route-policy]apply community no-export ?
INTEGER<O-4294967295> Specify community numberSTRING<3-11>
Specify aa<0-65535>:nn<O-65535>
additive Add to the existing community
internet lnternet(well-known community attributes)
no-advertise Do not advertise to any peer (well-known community attributes)
no-export Do not export to external peers(well-known community attributes)
no-export-subconfed Do not send outside a sub-confederation(well-known communit attributes)
<cr> Please press ENTER to execute command
[r1-route-policy]apply community no-export additive ---添加多个社团属性需要添加这个参数
[r1-route-policy]q
[r1]route-policy com permit node 30 ---空表放通
lnfo: New Sequence of this List.
[r1-bgp]peer 12.0.0.2 route-policy com export ---调用