BGP的选路
BGP选路的前提条件---丢弃所有不可用的路由信息。
属性的名称 | 传播范围 | 默认值 | 评判标准(大优还是小优) |
PV | 不传播 | 0(0-65535) | 越大越优 |
LP | IBGP对等体 之间 | 100 | 越大越优 |
AS_PATH | BGP对等体 之间 |
| 记录的数量越少越优 |
OGN | BGP对等体 之间 | 根据起源类型决定 | I > 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.
3,在BGP中进行调用
[r4-bgp]peer 3.3.3.3 route-policy pv import
[r4-bgp]
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 20
Info: 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]ip ip-prefix 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<0-65535>)
additive Append to original As Number---添加,在原先AS号的基础上增加配置的AS号
overwrite Overwrite original As Number---重写,将原先的AS号清除后按配置的添加
[r1-route-policy]apply as-path 11 22 33 additive ----建议选用添加,因为原先的AS号依旧要保证防环作用,所以,清除可能导致路由回传。
[[r1]route-policy as permit node 20----做空表放通所有
Info: 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 0 0 1 11 22 33i
第二种方法:
在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号,这样依然可以起到影响选路的效果,因为选路只看长短,不看内容,而且,可以避免防环误伤。
5,根据OGN属性的优先级进行选路判断---优先级关系为I > e > ?
OGN ---起源码---标识BGP路由的来源
1,通过NETWORK命令发布出来的路由信息----I ---表明这些路由都是起源于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 IGP
incomplete Unknown heritage
[r1-route-policy]apply origin incomplete
[r1]route-policy ogn permit node 20
Info: 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
Info: 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.0 24
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 0---选用的动作时拒绝,因为过滤列表本身没有拒绝功能。
[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设定的动作来执行。
0X00000000 ---internet---如果通过全0的社团属性来抓取流量,则将
抓取到所有BGP的流量。即BGP的所有流量缺省情况下都属
于"internet"
0XFFFFFF02 ---NO-advertise ----如果给一条路由条目打上这个社
团属性,则这条路由信息将无法发送给自己的IBGP对等体或EBGP对
等体。
0XFFFFFF01 ---no -export---如果给一条路由条目打上这个社团属
性,则这条路由信息将可以发送给自己的IBGP对等体但是无法发送给
自己的EBGP对等体。(不能离开这个AS),但是可以发送给自己的
联邦EBGP对等体关系。
0XFFFFFF03 ---no -export -subconfed----如果给一条路由条目打上这
个社团属性,则这条路由信息将可以发送给自己的IBGP对等体但是无
法发送给自己的EBGP对等体。包括自己的联邦EBGP对等体关系。
[r1]route-policy aa permit node 10
Info: New Sequence of this List.
[r1-route-policy]apply community ?
INTEGER<0-4294967295> Specify community number
STRING<3-11> Specify aa<0-65535>:nn<0-65535>
internet Internet(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 community attributes)
none No community attribute
[r1-route-policy]apply community no-advertise
[r1-bgp]peer 12.0.0.2 route-policy aa export --在peer中调用
注意:目前大部分厂商默认在传递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
Info: New Sequence of this List.
[r1-route-policy]if-match community-filter 1
[[r1-route-policy]q
[r1]route-policy com permit node 20
Info: New Sequence of this List.
[[r1-route-policy]if-match community-filter 2
[r1-route-policy]apply community no-export ?
INTEGER<0-4294967295> Specify community number
STRING<3-11> Specify aa<0-65535>:nn<0-65535>
additive Add to the existing community
internet Internet(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
community 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---空表放通
Info: New Sequence of this List.
[r1-bgp]peer 12.0.0.2 route-policy com export ---调用