BGP选路规则的实验验证与解析

描述

顺序也要记住
1.优选协议首选值(Preference_Value)最高的路由。(私有属性,仅本地有效)
2.优选本地优先级(Local_Preference)最高的路由。 (100,IBGP,越大越优)
3.优选本地生成的路由。手动聚合>自动聚合>network>import>从对等体学到的。
4.优选 AS_Path 短的路由。
5.比较 Origin 属性,起源类型 IGP>EGP>Incomplete。 i>e>?
6.优选 MED(Multi Exit Discriminator)值最低的路由。 (0,EBGP,越小越优)
7.优选从 EBGP 学来的路由(EBGP>IBGP)。
8.优选 AS 内部 IGP 的 Metric 最小的路由。
前 8 条选路规则一样,可以实现 BGP 的负载分担
bgp 100
maximum load-balancing 2

9.优选 Cluster_List 最短的路由。 (有做路由反射器RR才考虑)
10.优选 Router_ID 最小的路由器发布的路由。
11.优选具有较小 IP 地址的邻居学来的路由。

如果配置了负载分担,当前8个规则相同,且存在多条AS_Path完全相同的外部路由,则根据配置的路由条数选择多条路由进行负载分担

PreVal

BGP 路由属性的比较过程中,首先要比较的就是路由信息首选值 Preference Value,也简称为 PreVal。相当于BGP选路规则中的Weight值,值越大,优先级越高,默认为 0,不会发送给任何 BGP 邻居,仅作为本地路由器用来选路使用。

ip ip-prefix 1 permit 55.55.55.0 24
route-policy 10 permit node 1
if-match ip-prefix 1
apply preferred-value 100
route-policy 10 permit node 2
bgp 100
peer 2.2.2.2 route-policy 10 import

路由器

router id: 1.1.1.1 。根据11条路由选路规则,R1的Router ID更小,他默认会往R1那条路走。
现在我想让他往R2走

 

 

1、基本配置
R1:
sys
sysname R1
int loop 0
ip add 1.1.1.1 32
int g0/0/0
ip add 192.168.13.1 24
int g0/0/1
ip add 192.168.14.1 24
q

R2:
sys
sysname R2
int loop 0
ip add 2.2.2.2 32
int g0/0/1
ip add 192.168.23.2 24
int g0/0/0
ip add 192.168.24.2 24
q

R3:
sys
sysname R3
int loop 0
ip add 3.3.3.3 32
int loop 1
ip add 33.33.33.33 32
int g0/0/0
ip add 192.168.13.3 24
int g0/0/1
ip add 192.168.23.3 24
q

R4:
sys
sysname R4
int loop 0
ip add 4.4.4.4 32
int loop 1
ip add 44.44.44.44 32
int loop 2
ip add 55.55.55.55 32
int g0/0/0
ip add 192.168.14.4 24
int g0/0/1
ip add 192.168.24.4 24
q

2.配置RIP协议
R1:
rip
version 2
net 192.168.13.0
net 1.0.0.0

R2:
rip
version 2
net 192.168.23.0 
net 2.0.0.0

R3:
rip
version 2
net 192.168.13.0
net 192.168.23.0
net 3.0.0.0

3.配置IBGP邻居
R1:
[R1]bgp 100
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 3.3.3.3 as-n 100
[R1-bgp]peer 3.3.3.3 con loo0
[R1-bgp]peer 3.3.3.3 next-hop-local
[R1-bgp]peer 2.2.2.2 as-n 100
[R1-bgp]peer 2.2.2.2 con loo0
[R1-bgp]peer 2.2.2.2 next-hop-local

R2:
[R2]bgp 100
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 1.1.1.1 as-n 100
[R2-bgp]peer 1.1.1.1 con loo0
[R2-bgp]peer 1.1.1.1 next-hop-local
[R2-bgp]peer 3.3.3.3 as-n 100
[R2-bgp]peer 3.3.3.3 con loo0
[R2-bgp]peer 3.3.3.3 next-hop-local

R3:
[R3]bgp 100
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 1.1.1.1 as-n 100
[R3-bgp]peer 1.1.1.1 con loo0
[R3-bgp]peer 2.2.2.2 as-n 100
[R3-bgp]peer 2.2.2.2 con loo0

4.配置静态路由
解决R1、R2的静态路由,回包路由
[R1]ip route-static 4.4.4.4 32 192.168.14.4
[R2]ip route-static 4.4.4.4 32 192.168.24.4
[R4]ip route-static 1.1.1.1 32 192.168.14.1
[R4]ip route-static 2.2.2.2 32 192.168.24.2

5.建立EBGP邻居
现在R1R2来和R4建立邻居
[R1]bgp 100
[R1-bgp]peer 4.4.4.4 as-n 200
[R1-bgp]peer 4.4.4.4 con loo0
[R1-bgp]peer 4.4.4.4 ebgp-max-hop

[R2]bgp 100
[R2-bgp]peer 4.4.4.4 as-n 200
[R2-bgp]peer 4.4.4.4 con loo0
[R2-bgp]peer 4.4.4.4 ebgp-max-hop

[R4]bgp 200
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 1.1.1.1 as-n 100
[R4-bgp]peer 1.1.1.1 con loo0
[R4-bgp]peer 1.1.1.1 ebgp-max-hop
[R4-bgp]peer 2.2.2.2 as-n 100
[R4-bgp]peer 2.2.2.2 con loo0
[R4-bgp]peer 2.2.2.2 ebgp-max-hop

6.宣告网段,传递路由
把R3的条目放到BGP里
[R3-bgp]net 33.33.33.33 32

[R4]bgp 200
[R4-bgp]net 44.44.44.44 32
[R4-bgp]net 55.55.55.55 32

[R3-bgp]dis bgp routing-table 44.44.44.44  查看详细参数
发现 IGP cost 1, not preferred for router ID
选择R1是因为 是通过Router ID,越小越优先
最优可用的路由条目会放在全局路由表
[R3]dis ip routing-table
 44.44.44.44/32  IBGP    255  0          RD   1.1.1.1   

7.负载分担
希望在R3的全局路由表有1.1.1.1也有2.2.2.2
选路规则前八条必须一模一样,然后开启负载分担
哪台路由器看,就哪台路由器开
[R3]bgp 100
[R3-bgp]maximum load-balancing 2
dis ip routing-table
44.44.44.44/32  IBGP    255  0          RD   1.1.1.1        GigabitEthernet 0/0/0
                IBGP    255  0          RD   2.2.2.2       


8.首选值 PreVal
BGP路由默认是 1.1.1.1
现在想要 55.55.55.55 最优选2.2.2.2。
达到一种合理分流的效果
想 R3经过R1去44网段,R3经过R2去55网段

路由器

R4的路由到R2再进入到R3,import到R3
R2产生的路由条目 发给R3 import
R3产生的路由条目 发给R2 export

三步骤:
[R3]acl 2000
[R3-acl-basic-2000]rule permit source 55.55.55.55 0.0.0.0
[R3]route-policy 10 permit node 10
[R3-route-policy]if-match acl 2000
[R3-route-policy]apply preferred-value 99
[R3]route-policy 10 permit node 20
[R3]bgp 100
[R3-bgp]peer 2.2.2.2 route-policy 10 import
如果是R3产生的路由条目发送给R2,那就是export

路由器

 

 

Local_Preference

BGP属性 —— Local_Preference
Local_Pref属性仅在IBGP邻居之间有效,不通告给其他AS。它表明路由器的BGP优先级,用于判断流量离开AS时的最佳路由,也就是控制流量从哪个出口离开AS。默认为100,越大越优 (EBGP之间路由传递不携带Local_Preference)

修改默认本地优先级
bgp 200
default local-preference 200

修改一条路由的本地优先级
ip ip-prefix 1 permit 1.1.1.0 24
route-policy 10 permit node 1
if-match ip-prefix 1
apply local-preference 500
route-policy 10 permit node 2
8
bgp 200
peer 192.168.12.1 route-policy 10 import

路由器

R2的Router ID比R3的Router ID小,默认走的是R2路线,现在想R3也要走

 

 

1、基本配置
R1:
sys
sysname R1
int loop 0
ip add 1.1.1.1 24
int loop 1
ip add 11.11.11.11 24
int g0/0/0
ip add 192.168.12.1 24
int g0/0/1
ip add 192.168.13.1 24
q

R2:
sys
sysname R2
int loop 0
ip add 2.2.2.2 24
int g0/0/0
ip add 192.168.12.2 24
int g0/0/1
ip add 192.168.24.2 24
q

R3:
sys
sysname R3
int loop 0
ip add 3.3.3.3 24
int g0/0/1
ip add 192.168.13.3 24
int g0/0/0
ip add 192.168.34.3 24
q

R4:
sys
sysname R4
int loop 0
ip add 4.4.4.4 24
int loop 1
ip add 44.44.44.44 24
int g0/0/1
ip add 192.168.24.4 24
int g0/0/0
ip add 192.168.34.4 24
q


2.配置OSPF
R2:
ospf 1 router-id 2.2.2.2
 area 0.0.0.0
  network 2.2.2.2 0.0.0.0
  network 192.168.24.2 0.0.0.0

R3:
ospf 1 router-id 3.3.3.3
 area 0.0.0.0
  network 3.3.3.3 0.0.0.0
  network 192.168.34.3 0.0.0.0

R4:  44.44.44.44 放在BGP
ospf 1 router-id 4.4.4.4
 area 0.0.0.0
  network 192.168.24.4 0.0.0.0
  network 192.168.34.4 0.0.0.0
  network 4.4.4.4 0.0.0.0

3.建立 BGP
R1:
[R1]bgp 100
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 192.168.12.2 as-n 200
[R1-bgp]peer 192.168.13.3 as-n 200
[R1-bgp]net 1.1.1.0 24
[R1-bgp]net 11.11.11.0 24

R2:
[R2]bgp 200
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 192.168.12.1 as-n 100
[R2-bgp]peer 4.4.4.4 as-n 200
[R2-bgp]peer 4.4.4.4 con loo0
[R2-bgp]peer 4.4.4.4 next-hop-local
[R2-bgp]peer 3.3.3.3 as-n 200
[R2-bgp]peer 3.3.3.3 con loo0
[R2-bgp]peer 3.3.3.3 next-hop-local

R3:
[R3]bgp 200
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 192.168.13.1 as-n 100
[R3-bgp]peer 2.2.2.2 as-n 200
[R3-bgp]peer 2.2.2.2 con loo0
[R3-bgp]peer 2.2.2.2 next-hop-local
[R3-bgp]peer 4.4.4.4 as-n 200
[R3-bgp]peer 4.4.4.4 con loo0
[R3-bgp]peer 4.4.4.4 next-hop-local

R4:
[R4]bgp 200
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 2.2.2.2 as-n 200
[R4-bgp]peer 2.2.2.2 con loo0
[R4-bgp]peer 3.3.3.3 as-n 200
[R4-bgp]peer 3.3.3.3 con loo0
[R4-bgp]net 44.44.44.0 24

[R4-bgp]dis bgp routing-table
R4去往 11网段是 往R2走,因为R2的Router ID更小
 Total Number of Routes: 5
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  1.1.1.0/24         2.2.2.2         0          100        0      100i
 * i                     3.3.3.3         0          100        0      100i
 *>i  11.11.11.0/24      2.2.2.2         0          100        0      100i
 * i                     3.3.3.3         0          100        0      100i
 *>   44.44.44.0/24      0.0.0.0         0                     0      i
[R4-bgp]


4.修改优先级
单单改R3 default (换汤不换药)
可以dis default-parameter bgp 查看默认
如果想走R3,就在R3上改
[R3]bgp 200
[R3-bgp]default local-preference 200
改了之后,在R4上查看 dis bgp routing-table
 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  1.1.1.0/24         3.3.3.3         0          200        0      100i
 *>i  11.11.11.0/24      3.3.3.3         0          200        0      100i
 *>   44.44.44.0/24      0.0.0.0         0                     0      i
刚才是都走 2.2.2.2,现在都走3.3.3.3
换汤不换药,没达到分流效果


在上面R3 改了本地优先级的基础上,再改R2
R2上做了后通过IBGP邻居传给R4
[R2]ip ip-prefix 1 permit 1.1.1.0 24
[R2]route-policy 10 permit node 10
[R2-route-policy]if-match ip-prefix 1
[R2-route-policy]apply local-preference 299
[R2]route-policy 10 permit node 20

[R2]bgp 200
[R2-bgp]peer 192.168.12.1 route-policy 10 import
关键:路由条目是R1产生的,针对R1进入(import)到R2的时候改变属性值为 299,然后通过IBGP 传给R4,从而影响R4离开当前 AS 200选 R2

[R4]dis bgp routing-table
 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>i  1.1.1.0/24         2.2.2.2         0          299        0      100i
 *>i  11.11.11.0/24      3.3.3.3         0          200        0      100i
 *>   44.44.44.0/24      0.0.0.0         0                     0      i

 

 

AS-Path

AS_Path 属性顺序记录了某条 BGP 路由所经过的 AS 信息,BGP 在比较
AS_Path 属性后,会优选 AS_Path 长度较短的那条路由。另外,AS_Path 还可以用来防止路由之间的环路。当路由器从 EBGP 邻居收到 BGP 路由时,如果该路由的 AS_Path 中包含了自己的 AS 编号,则该路由将会直接丢弃。

ip ip-prefix asp permit 2.2.2.0 24
route-policy 10 permit node 1
if-match ip-prefix asp
apply as-path 500 500 additive
9
route-policy 10 permit node 2
bgp 100
peer 192.168.15.5 route-policy 10 import
apply as-path 500 500 additive
apply as-path 300 500 500 100 overwrite
Warning: The AS-Path lists of routes to which this route-policy is applied
will be overwritten. Continue? [Y/N] y

路由器

 

 

1、基本配置
R1:
sys
sysname R1
int loop 0 
ip add 1.1.1.1 24
int g0/0/1
ip add 192.168.15.1 24
int g0/0/0
ip add 192.168.13.1 24
q

R2:
sys
sysname R2
int loop 0
ip add 2.2.2.2 24
int g0/0/1
ip add 192.168.26.2 24
int g0/0/0
ip add 192.168.24.2 24
q

R3:
sys
sysname R3
int g0/0/0
ip add 192.168.13.3 24
int g0/0/1
ip add 192.168.34.3 24
q

R4:
sys
sysname R4
int g0/0/0
ip add 192.168.24.4 24
int g0/0/1
ip add 192.168.34.4 24
q

R5:
sys
sysname R5
int g0/0/1
ip add 192.168.15.5 24
int g0/0/0
ip add 192.168.56.5 24
q

R6:
sys
sysname R6
int g0/0/0
ip add 192.168.56.6 24
int g0/0/1
ip add 192.168.26.6 24
q


2.配置BGP
R1:
bgp 100
router-id 1.1.1.1
peer 192.168.15.5 as-n 500
peer 192.168.13.3 as-n 300
net 1.1.1.0 24

R2:
bgp 200
router-id 2.2.2.2
peer 192.168.26.6 as-n 500
peer 192.168.24.4 as-n 400
net 2.2.2.0 24

R3:
bgp 300
router-id 3.3.3.3
peer 192.168.13.1 as-n 100
peer 192.168.34.4 as-n 400

R4:
bgp 400
router-id 4.4.4.4
peer 192.168.34.3 as-n 300
peer 192.168.24.2 as-n 200

R5:
bgp 500
router-id 5.5.5.5
peer 192.168.15.1 as-n 100
peer 192.168.56.6 as-n 500
peer 192.168.56.6 next-hop-local

R6:
bgp 500
router-id 6.6.6.6
peer 192.168.26.2 as-n 200
peer 192.168.56.5 as-n 500
peer 192.168.56.5 next-hop-local

[R1]dis bgp routing-table  
 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   1.1.1.0/24         0.0.0.0         0                     0      i
 *>   2.2.2.0/24         192.168.15.5                          0      500 200i
 *                       192.168.13.3                          0      300 400 20

[R1]dis bgp routing-table 2.2.2.2
 可以查看详细为什么到达2.2.2.2下一跳是15.5
 AS-path 300 400 200, origin igp, pref-val 0, valid, external, pre 255, not preferred for AS-Path.
 因为下面要经过3个AS号,上面只需要经过2个AS号

3.增加AS,修改优先级
希望R1 走 13.3 ,下面走,增加AS号 
针对R5发送给R1的路由,import
[R1]ip ip-prefix 2 permit 2.2.2.0 24
[R1]route-policy 10 permit node 10
[R1-route-policy]if-match ip-prefix 2
[R1-route-policy]apply as-path 499 599 additive   也可以覆盖 overwrite
[R1]route-policy 10 permit node 20
[R1-route-policy]bgp 100
[R1-bgp]peer 192.168.15.5 route-policy 10 import

[R1]dis bgp routing-table   选择AS-Path更短的 13.3
 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   1.1.1.0/24         0.0.0.0         0                     0      i
 *>   2.2.2.0/24         192.168.13.3                          0      300 400 200i
 *                       192.168.15.5                          0      499 599 500 200i

4.R2查看回包,来包回包路径要一样才正常。
R2还是默认在上面,刚才的改动对R2没影响,因此也要对R2进行修改,一样的方法
dis bgp routing-table 
 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   1.1.1.0/24         192.168.26.6                          0      500 100i
 *                       192.168.24.4                          0      400 300 100i
 *>   2.2.2.0/24         0.0.0.0         0                     0      i

[R2]acl 2000
[R2-acl-basic-2000]rule permit source 1.1.1.0 0.0.0.255
[R2-acl-basic-2000]q
[R2]route-policy 10 permit node 10
[R2-route-policy]if-match acl 2000
[R2-route-policy]apply as-path 199 299 399 499 overwrite
Warning: The AS-Path lists of routes to which this route-policy is applied will 
be overwritten. Continue? [Y/N]y
[R2-route-policy]q
[R2]route-policy 10 permit node 20
[R2-route-policy]q
[R2]bgp 200
[R2-bgp]peer 192.168.26.6 route-policy 10 import  针对R6进入到R2的路由 调用

dis bgp routing-table 
 Total Number of Routes: 3
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   1.1.1.0/24         192.168.24.4                          0      400 300 100i
 *                       192.168.26.6                          0      199 299 399 499i
 *>   2.2.2.0/24         0.0.0.0         0                     0      i

 

 

Metric

优选 AS 内部 IGP 的 Metric 最小的路由。
BGP 在比较 Next Hop 属性时,会优选去往 Next Hop 属性中 IP 地址的 IGP开销最小的路由。
通信双方的往返报文选用不同路径的现象称为不对称路由。对于某些特定的应用,以及部署了某些特别的安全设备和安全策略的情况下,不对称路由的存在可能会导致通过中断的现象。
int g0/0/0
ospf cost 2000

Med

可选非过渡,内容不一定识别到,识别不到就不会传递。
MED 多出口区分器
MED(Multi-exit-disc)也称为多出口鉴别器,它是一个 4 字节的整数,默认 MED值为 0,MED 值越小,表明相应的路由优先级越高。MED属性仅在相邻两个AS之间传递,收到此属性的AS不会再将其通告给任何其他第三方AS。 MED 属性主要作用是用来控制来自邻居 AS 的流量从哪个入口进入到本 AS 中。用于判断流量进入AS时的最佳路由

MED俗称是BGP的cost值

这里是前缀列表的做法,代码块写的是ACL做法
ip ip-prefix 1 permit 172.16.1.0 24
ip ip-prefix 2 permit 172.16.2.0 24
route-policy 10 permit node 1
if-match ip-prefix 1
apply cost 100
route-policy 10 permit node 2
if-match ip-prefix 2
apply cost 200
route-policy 10 permit node 3
route-policy 20 permit node 1
if-match ip-prefix 1
apply cost 200
route-policy 20 permit node 2
if-match ip-prefix 2
apply cost 100
route-policy 20 permit node 3
bgp 100
peer 192.168.12.2 route-policy 10 export
peer 192.168.13.3 route-policy 20 export
bgp 400
compare-different-as-med

路由器

 

路由器

R2和R3去往172.16.1.1,都走12网段
R2和R3去往172.16.2.1,都走23网段

R5接收学习R2路由,因为R2的Router ID更小,我现在需要优选R4路由发送给R5,该怎么做。

 

 

1、基础配置
R1:
sys
sysname R1
int loop 0
ip add 1.1.1.1 24
int loop 1
ip add 172.16.1.1 24
int loop 2
ip add 172.16.2.1 24
int loop 3
ip add 192.168.1.1 24
int g0/0/2
ip add 192.168.12.1 24
int g0/0/0
ip add 192.168.13.1 24
int g0/0/1
ip add 192.168.14.1 24
q

R2:
sys
sysname R2
int loop 0
ip add 2.2.2.2 24
int g0/0/2
ip add 192.168.12.2 24
int g0/0/0
ip add 192.168.23.2 24
int g0/0/1
ip add 192.168.25.2 24
q

R3:
sys
sysname R3
int loop 0
ip add 3.3.3.3 24
int g0/0/1
ip add 192.168.13.3 24
int g0/0/0
ip add 192.168.23.3 24
int g0/0/2
ip add 192.168.35.3 24
q

R4:
sys
sysname R4
int loop 0
ip add 4.4.4.4 24
int g0/0/0
ip add 192.168.14.4 24
int g0/0/1
ip add 192.168.45.4 24
q

R5:
sys
sysname R5
int loop 0
ip add 5.5.5.5 24
int g0/0/2
ip add 192.168.25.5 24
int g0/0/1
ip add 192.168.35.5 24
int g0/0/0
ip add 192.168.45.5 24
q


2.建立BGP   
R1:
R1的192.168.1.1是针对R5来看的
[R1]bgp 100
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 192.168.12.2 as-n 200
[R1-bgp]peer 192.168.13.3 as-n 200
[R1-bgp]peer 192.168.14.4 as-n 300
[R1-bgp]net 172.16.1.0 24
[R1-bgp]net 172.16.2.0 24
[R1-bgp]

R2:
[R2]bgp 200
[R2-bgp]router-id 2.2.2.2
[R2-bgp]peer 192.168.12.1 as-n 100
[R2-bgp]peer 192.168.25.5 as-n 400
[R2-bgp]peer 192.168.23.3 as-n 200
[R2-bgp]peer 192.168.23.3 next-hop-local
因为没有用环回口来建立IBGP邻居,所以ebgp多跳和connect 不需要。

R3: 
[R3]bgp 200
[R3-bgp]router-id 3.3.3.3
[R3-bgp]peer 192.168.13.1 as-n 100
[R3-bgp]peer 192.168.35.5 as-n 400
[R3-bgp]peer 192.168.23.2 as-n 200
[R3-bgp]peer 192.168.23.2 next-hop-local

R4:
[R4]bgp 300
[R4-bgp]router-id 4.4.4.4
[R4-bgp]peer 192.168.14.1 as-n 100
[R4-bgp]peer 192.168.45.5 as-n 400

R5:
[R5]bgp 400
[R5-bgp]router-id 5.5.5.5
[R5-bgp]peer 192.168.25.2 as-n 200
[R5-bgp]peer 192.168.35.3 as-n 200
[R5-bgp]peer 192.168.45.4 as-n 300
查看邻居状态是否为Established

验证:
[R2]dis bgp routing-table

 Total Number of Routes: 4
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   172.16.1.0/24      192.168.12.1    0                     0      100i
 * i                     192.168.23.3    0          100        0      100i
 *>   172.16.2.0/24      192.168.12.1    0                     0      100i
 * i                     192.168.23.3    0          100        0      100i
为什么最优是 12.1呢,可以查看原因
[R2]dis bgp routing-table 172.16.1.0
 AS-path 100, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, pre
 255, not preferred for peer type
 R1和R2之间是EBGP邻居,R2和R3是IBGP邻居
 EBGP邻居的优先级>IBGP邻居的优先级
 如果在R3上查看bgp路由表也是一样道理


3.现在要求 R2R3去往172.16.1.0 都往 12网段走
              去往172.16.2.0 都往 13网段走
R1修改完成后,发给EBGP邻居 R2和R3,从而让R2和R3影响选路。 
R1自己修改后 export给R2和R3

第一步:匹配ACL,应用策略
[R1]acl 2001
[R1-acl-basic-2001]rule permit source 172.16.1.0 0.0.0.255
[R1-acl-basic-2001]acl 2002
[R1-acl-basic-2002]rule permit source 172.16.2.0 0.0.0.255
[R1-acl-basic-2002]

配置R2和R3策略
R2:
route-policy R2 permit node 10
 if-match acl 2001
 apply cost 20
#
route-policy R2 permit node 20
 if-match acl 2002
 apply cost 30
#
route-policy R2 permit node 30

R3:
route-policy R3 permit node 10
 if-match acl 2001
 apply cost 30
#
route-policy R3 permit node 20
 if-match acl 2002
 apply cost 20
#
route-policy R3 permit node 30

R1上调用:
bgp 100
peer 192.168.12.2 route-policy R2 export
peer 192.168.13.3 route-policy R3 export


 

 

R2查看bgp路由表

路由器

MED属性仅在相邻两个AS之间传递,收到此属性的AS不会再将其通告给任何其他第三方AS。
MED值只会传给一个 EBGP邻居,AS100传给了AS200,不会再传给AS400。
[R5]dis bgp routing-table 验证

路由器

MED和LocPrf 为空,都是默认值

 

 

4.R5优选学习
[R1]bgp 100
[R1-bgp]net 192.168.1.0 24
R1宣告网段,发送给R2R3R4,然后再发送给R5

在R5这台路由器上有三个邻居,默认会优选R2,因为R2的Router ID更小
[R5]dis bgp routing-table 192.168.1.0
.......d for router ID

Router ID是选路规则的第十条,现在我要优选R4
MED是选路规则的第六条,匹配网段,然后改MED值
R2的MED是100,R3的MED是50,R4的MED是10
R2:
[R2]ip ip-prefix 1 permit 192.168.1.0 24
[R2]route-policy R5 permit node 10
[R2-route-policy]if-match ip-prefix 1
[R2-route-policy]apply cost 100
[R2-route-policy]route-policy R5 permit node 20
[R2-route-policy]q
[R2]bgp 200
[R2-bgp]peer 192.168.25.5 route-policy R5 export

R3、R4都这样做,不同的是 apply cost 5010
还有bgp 调用,peer的地址。
验证: [R5]dis bgp routing-table

 

 

为什么不选R4,因为来自不同的表项

路由器

因为BGP只比较来自同一个AS的路由的MED值。 它会在AS 200里选。

如果真的想要选R4,在R5上启用一个特殊,谁查看就在谁的路由器上做
[R5]bgp 400
[R5-bgp]compare-difference-as-med

路由器

Community

可选过渡advertise-community,让别的路由器也识别到。
Community 属性
BGP 路由的团体属性 Community 的主要作用是简化路由策略的实现过程,例如,可以将拥有团体属性的若干路由视为同一个团体,当需要对该团体中所有路由的某个特定属性进行修改时,就没必要逐一对每条路由单独进行修改。 团体属性是 BGP 路由的一种可选属性,路由器在向 BGP 对等体传递路由时,如果希望所传递的路由携带团体的属性,则需要额外的配置

两个作用: ①限定路由的传播范围 ②打标记,便于对符合相同条件的路由进行统一处理

4 个特殊的团体:
internet ,no-export , no-advertise , no-export-Subconfed

internet : 可以向任何 BGP 对等体发布路由
no-export: 不会发给 EBGP 对等体,但可以发布给联盟(Confederation)EBGP 对等体
no-advertise: 不会发给任何 BGP 对等体,谁都不发
no-export-Subconfed :不会发给 EBGP 对等体,也不会发布给联盟
(Confederation)EBGP 对等体
aa:nn 自定义团体属性

路由器

 

 

1、基本配置
R1:
sys
sysname R1
int loop 0
ip add 1.1.1.1 24
int loop 1
ip add 10.0.100.1 32
int loop 2
ip add 10.0.100.2 32
int loop 3
ip add 10.0.100.3 32
int loop 4
ip add 10.0.100.4 32
int loop 5
ip add 10.0.100.5 32
int g0/0/0
ip add 192.168.12.1 24
q

R2:
sys
sysname R2
int loop 0
ip add 2.2.2.2 24
int g0/0/0
ip add 192.168.12.2 24
int g0/0/1
ip add 192.168.23.2 24
int g0/0/2
ip add 192.168.24.2 24
q

R3:
sys
sysname R3
int loop 3
ip add 3.3.3.3 24
int g0/0/1
ip add 192.168.23.3 24
q

R4:
sys
sysname R4
int loop 0
ip add 4.4.4.4 24
int g0/0/2
ip add 192.168.24.4 24
int g0/0/0
ip add 192.168.45.4 24
q

R5:
sys
sysname R5
int loop 0
ip add 5.5.5.5 24
int g0/0/0
ip add 192.168.45.5 24
q


2.建立BGP
R1:
[R1]bgp 100
[R1-bgp]router-id 1.1.1.1
[R1-bgp]peer 192.168.12.2 as-n 200
[R1-bgp]net 10.0.100.1 32
[R1-bgp]net 10.0.100.2 32
[R1-bgp]net 10.0.100.3 32
[R1-bgp]net 10.0.100.4 32
[R1-bgp]net 10.0.100.5 32

R2:
[R2]bgp 2001
[R2-bgp]router-id 2.2.2.2
[R2-bgp]conf 
[R2-bgp]confederation id 200
[R2-bgp]confederation peer-as 2002
[R2-bgp]peer 192.168.12.1 as-n 100
[R2-bgp]peer 192.168.24.4 as-n 2001
[R2-bgp]peer 192.168.24.4 next-hop-local
[R2-bgp]peer 192.168.23.3 as-n 2002
[R2-bgp]peer 192.168.23.3 next-hop-local

R3:
[R3]bgp 2002
[R3-bgp]router-id 3.3.3.3
[R3-bgp]confederation id 200
[R3-bgp]confederation peer-as 2001
[R3-bgp]peer 192.168.23.2 as-n 2001

R4:
[R4]bgp 2001
[R4-bgp]router-id 4.4.4.4
[R4-bgp]confederation id 200
[R4-bgp]peer 192.168.24.2 as-n 2001
[R4-bgp]peer 192.168.45.5 as-n 300
[R4-bgp]peer 192.168.45.5 next-hop-local
也可以不加next-hop-local。因为这个实验只宣告R1的,R5没有宣告

R5:
[R5]bgp 300
[R5-bgp]router-id 5.5.5.5
[R5-bgp]peer 192.168.45.4 as-n 200
[R5-bgp]dis bgp routing-table
 Total Number of Routes: 5
      Network            NextHop        MED        LocPrf    PrefVal Path/Ogn

 *>   10.0.100.1/32      192.168.45.4                          0      200 100i
 *>   10.0.100.2/32      192.168.45.4                          0      200 100i
 *>   10.0.100.3/32      192.168.45.4                          0      200 100i
 *>   10.0.100.4/32      192.168.45.4                          0      200 100i
 *>   10.0.100.5/32      192.168.45.4                          0      200 100i


3.advertise-community
[R1]bgp 100
[R1-bgp]peer 192.168.12.2 advertise-community

[R2]bgp 2001
[R2-bgp]peer 192.168.23.3 advertise-community
[R2-bgp]peer 192.168.24.4 advertise-community

[R4]bgp 2001
[R4-bgp]peer 192.168.45.5 advertise-community

4.配置策略
第一种:no-export
[R1]ip ip-prefix 2 permit 10.0.100.2 32
[R1]route-policy 10 permit node 2
[R1-route-policy]if-match ip-prefix 2
[R1-route-policy]apply community no-export  不发给R5
[R1]route-policy 10 permit node 10
[R1]bgp 100
[R1-bgp]peer 192.168.12.2 route-policy 10 export

 

 

R2验证:dis bgp routing-table community

路由器

R5验证:dis bgp routing-table 收不到100.2

路由器

R5收不到,R3能收到吗? 肯定的,因为是R3是联盟的EBGP

路由器


R4也可以去 dis bgp routing-table

如果我希望 100.3 ,R5收不到,R3也收不到 —— no-export-subconfed

 

 

第二种:no-export-subconfed
R1:  刚才已经调用过了,可以直接配置看 
[R1]ip ip-prefix 3 permit 10.0.100.3 32
[R1]route-policy 10 permit node 3
[R1-route-policy]if-match ip-prefix 3
[R1-route-policy]apply community no-export-subconfed 

 

 

R2:
[R2]dis bgp routing-table community

路由器

R3和R5上可以查看是否有没 dis bgp routing-table
R3:

路由器

 

 

第三种:no-advertise  只告诉R2,让R2别发 100.4
[R1]ip ip-prefix 4 permit 10.0.100.4 32
[R1]route-policy 10 permit node 4
[R1-route-policy]if-match ip-prefix 4
[R1-route-policy]apply community no-advertise

在R2上查看是否有属性, dis bgp routing-table  community
在R3R4R5  dis bgp routing-table 验证

第四种:打标记,对符合相同的条件路由做统一处理
希望100.5不要给R4和R5收到
[R1]ip ip-prefix 5 permit 10.0.100.5 32
[R1]route-policy 10 permit node 5
[R1-route-policy]if-match ip-prefix 5
[R1-route-policy]apply community 100:5

直接在R4上收到标记100:5的 拒绝deny
拒绝来我R4,自然也不会去R5。
[R4]ip community-filter 1 permit 100:5
[R4]route-policy 10 deny node 10
[R4-route-policy]if-match community-filter 1
[R4-route-policy]route-policy 10 permit node 20
调用策略:拒绝R2来R4的路由
[R4]bgp 2001
[R4-bgp]peer 192.168.24.2 route-policy 10 import


第五种:internet
[R1]ip ip-prefix 1 permit 10.0.100.1 32
[R1]route-policy 10 permit node 6
if-match ip ip-prefix 1
apply community internet
internet可以向任何BGP对等体发布路由

 

 

最终结果

路由器

BGP 路由反射器

路由器

内部路由器过多的时候,通过IBGP收到的路由条目不会反射给另一个IBGP,IBGP邻居太多了,两两配置比较麻烦

如何解决IBGP邻接关系过多的情况?
RR 路由反射器 (防环:origintor-id cluster-list)
通过IBGP收到的路由条目,发送给另一个IBGP邻居

3 条规则
①从一个非客户端那里接收到的路由,反射器会将它只传递给所有的客户端,
②从一个客户端那里接收到的路由,反射器会将它传递给所有其它的客户端以及非客户端,
③从 EBGP 对等体那里接收到的路由,反射器会将它传递给所有客户端和非客户端

禁止客户机之间的路由反射
bgp 100
undo reflect between-clients

主要的配置
bgp 100
group 1
peer 2.2.2.2 group 1
peer 1 reflect-client
peer 1 next-hop-local
reflector cluster-id 1

路由器

 

路由器

IBGP通过环回口建立,IGP协议为OSPF,EBGP通过物理接口建立

 

 

123在组1
456在组2
7不属于任一组

1.基本配置
2.OSPF配置
3.建立IBGP邻居
R2R3是客户端,R1是服务器端(路由反射器)
R1:
bgp 100
router-id 1.1.1.1
group 1
peer 2.2.2.2 group 1
peer 3.3.3.3 group 1
peer 1 next-hop-local  表示peer 这个组1
peer 1 reflect-client  表示这个组是客户端
reflector cluster-id 1  组1编号

peer 4.4.4.4 as-n 100
peer 4.4.4.4 con loo0
peer 4.4.4.4 next-hop-local
如果按之前的配置,R2需要指3,R3需要指2
现在R2R3 直接经过R1 反射给 R3R2
[R1]bgp 100
net 1.1.1.0 24

R2:
bgp 100
router-id 2.2.2.2
peer 1.1.1.1 as-n 100
peer 1.1.1.1 con loo0
不需要指3
net 2.2.2.0 24

R3:
bgp 100
router-id 3.3.3.3
peer 1.1.1.1 as-n 100
peer 1.1.1.1 con loo0
net 3.3.3.0 24

[R1]dis bgp peer 发现和 2、3都建立起来了
这是谁发的? dis bgp routing-table 3.3.3.0
路由反射器的功能
[R1-bgp]undo reflect between-clients  关闭路由反射器


R4:只有内部邻居,因此不用加 next-hop-local
bgp 100
router-id 4.4.4.4
peer 1.1.1.1 as-n 100
peer 1.1.1.1 con loo0
net 4.4.4.0 24

group 2
peer 5.5.5.5 group 2
peer 6.6.6.6 group 2
peer 2 reflect-client
peer 192.168.47.7 as-n 100

R5:
bgp 100
router-id 5.5.5.5
peer 4.4.4.4 as-n 100
peer 4.4.4.4 con loo0
net 5.5.5.0 24

r6:
BGP 100
router-id 6.6.6.6
peer 192.168.46.4 as-n 100
peer 192.168.47.7 as-n 100
net 6.6.6.0 24
______
R7
bgp 100
router-id 7.7.7.7
peer 192.168.47.4 as-n 100
net 7.7.7.70 24

R8
bgp 200
router-id 8.8.8.8
peer 192.168.18.1 as-n 100
net 8.8.8.0 24

[R1]bgp 200
peer 192.168.18.1 as-n 100


R1:[R7]net 7.7.7.0 R7是非客户,宣告网段的路由更新能到R4,不能传到R1
R1没有 7.7.7.7 怎么办?如何实现全网互通
R1和R7单独建立个邻居
[R7]bgp 100
peer 1.1.1.1 as-n 100
peer 1.1.1.1 con loo0

[R1]bgp 100
peer 7.7.7.7 as-n 100
peer 7.7.7.7 con loo0
peer 7.7.7.7 next-hop-local


 

 

BGP 联盟(Condeferation)

BGP 路由反射器可以用来减少大型 AS 中 IBGP 邻居关系的数量和简化 IBGP 邻居关系的管理和维护,BGP 联盟(Condeferation)也可以用来实现类似的目的

一个 BGP 联盟是一个具有内部层次结构的 AS,一个 BGP 联盟由若干个子 AS组成。对于一个 BGP 联盟,其成员 AS 内部的路由器之间需要建立全互联的IBGP 邻居使用 BGP 路由反射器,而成员之间需要建立 EBGP 邻居关系。从联盟外的 EBGP 对等体来看,整个联盟无异于一个普通的 AS,联盟内部的结构对于联盟外的 EBGP 对等体来说是完全透明的。

bgp 2001
router-id 2.2.2.2
confederation id 200 标识自己的联盟号
confederation peer-as 2002 2003 子成员,联盟内的
先完成以上两步,再去peer 外部EBGP
peer 192.168.12.1 as-n 100

联盟内的EBGP
peer 192.168.25.5 as-n 2003
peer 192.168.25.5 next-hop-local 对于整体也要next-hop-local

路由器

 

R1:
bgp 100
router-id 1.1.1.1
peer 192.168.12.2 as-n 200
net 1.1.1.0 24
net 11.11.11.0 24

R2:
bgp 2001
router-id 2.2.2.2
confederation id 200   标识自己的联盟号
confederation peer-as 2002 2003  子成员,联盟内的AS 
要先配置上面两步再peer外部EBGP
peer 192.168.12.1 as-n 100  外部的EBGP
peer 192.168.25.5 as-n 2003 内部的EBGP
peer 192.168.25.5 next-hop-local  为了让R5能够学习到R2传过来的路由
peer 192.168.23.3 as-n 2002
peer 192.168.23.3 next-hop-local

R3:  
bgp 2002
router-id 3.3.3.3
confederation id 200
confederation peer-as 2001
peer 192.168.23.2 as-n 2001
peer 192.168.34.4 as-n 2002
peer 192.168.34.4 next-hop-local  不起作用

R4:
bgp 2002
router-id 4.4.4.4
confederation id 200
peer 192.168.34.3 as-n 2002

R5:
bgp 2003
router-id 5.5.5.5
confederation id 200
confederation peer-as 2001
peer 192.168.25.2 as-n 2001
peer 192.168.56.6 as-n 2003
peer 192.168.56.6 next-hop-local  不起作用

R6:
bgp 2003
router-id 6.6.6.6
confederation id 200
peer 192.168.56.5 as-n 2003

邻居能够建立,但路由传递有点问题。
在R3和R5上的next-hop-local 不起作用
R3传不到R4,R5传不到R6

 

 

路由器

学不到,下一跳不可达。为什么下一跳不可达?为什么不起作用?
让R4、R6到达,跑一个OSPF协议,让他们路由表有 下一跳的网段。
[R2]ospf
area 0
net 192.168.23.2 0.0.0.0
net 192.168.25.2 0.0.0.0

R3:
ospf
area 0
net 192.168.23.3 0.0.0.0
net 192.168.34.3 0.0.0.0

R4:
ospf
area 0
net 192.168.34.4 0.0.0.0

R5:
ospf
area 0
net 192.168.25.5 0.0.0.0
net 192.168.56.5 0.0.0.0

R6:
ospf
area 0
net 192.168.56.6 0.0.0.0

结果验证:

路由器

若公司网络规模需要扩大,则一般只需要在相应的成员 AS 中添加路由器并进行相关的配置即可,配置工作量远远小于不使用 BGP 联盟的情形。

审核编辑:黄飞

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分