文章目录

  • 前言
  • BGP路由策略实例
  • 第一种:修改Origin 起源属性
  • 第二种:as-path 路径属性
  • 第三种:next-hop 下一跳属性
  • 第四种:local-preference 本地优先级
  • 第五种:MED 用于选路的属性
  • 第六种:Preference_Value



前言


一个简单的关于BGP通过路由策略来进行选路的案列


以下是本篇文章正文内容,下面案例可供参考

BGP路由策略实例

bgp引入路由的方式 bgp路由配置实例_优先级

如图所示,AS 300内有两个用户网段,AS 100内用户访问这两个网段时,希望在 R2和R3上实现流量分担。AS 200访问这两个网段时,希望在R5和R6上实现流量分担。请用尽可能多的方法来实现上述需求。

首先配置好基本配置,邻居关系,给两条用户网段添加社团属性并传播。

第一种:修改Origin 起源属性

思路:在R4上边的右侧入口和左侧出口处,抓100.0.0.0/24网段路由,修改起源属性为?

在R4下边的右侧入口和左侧出口处,抓200.0.0.0/24网段路由,修改起源属性为?

起源属性:i>?

bgp引入路由的方式 bgp路由配置实例_路由表_02


试一下:

刚开始,像R1去100网段其实走上的,并不符合要求

bgp引入路由的方式 bgp路由配置实例_R3_03


验证结果发现是可以的,在R4上做策略如下:

#
ip community-filter advanced yibai permit 300:100 //抓路由
ip community-filter advanced erbai permit 300:200
#
route-policy yibai permit node 10
 if-match community-filter yibai
 apply origin incomplete
#
route-policy yibai permit node 20
#
route-policy erbai permit node 10
 if-match community-filter erbai
 apply origin incomplete
#
route-policy erbai permit node 20
#
bgp200
  peer 24.1.1.1 route-policy yibai export
  peer 24.1.1.1 advertise-community
  peer 34.1.1.1 route-policy erbai export
  peer 34.1.1.1 advertise-community
  peer 45.1.1.2 route-policy yibai import
  peer 34.1.1.1 advertise-community
  peer 46.1.1.2 route-policy erbai import
#

做完可以看下R4,R1的bgp路由表

bgp引入路由的方式 bgp路由配置实例_bgp引入路由的方式_04


bgp引入路由的方式 bgp路由配置实例_bgp_05


第一个就测试一下:后边的就不粘贴图了

bgp引入路由的方式 bgp路由配置实例_R3_06

第二种:as-path 路径属性

思路:在R5向R4发100路由时,多加一个AS 300,导致R4选下边去100;R6同理。

R4向R2发100时,多加一个AS 200;同理R4去R3。

bgp引入路由的方式 bgp路由配置实例_bgp_07

[R5]ip community-filter advanced yibai permit 300:100
#
route-policy yibai permit node 10
 if-match community-filter yibai
 apply as-path 300 additive
#
route-policy yibai permit node 20
#
[R5-bgp]peer 45.1.1.1 route-policy yibai export

bgp引入路由的方式 bgp路由配置实例_R3_08


可以看到,此条策略在R4上已经生效,其它的就不写了。

第三种:next-hop 下一跳属性

思路:这个搞了半天不太行,好像找不到命令,再搞搞,补

第四种:local-preference 本地优先级

思路:在R2上抓取100的路由降低其本地优先级,策略配置在入接口上,使得R1去往100走R3,同理在R3上入接口抓取200的路由降低其本地优先级,使得R1去往200走R2。在R4上抓取100的路由降低其优先级,策略配置在去R5的入接口上,同理R6。

bgp引入路由的方式 bgp路由配置实例_bgp引入路由的方式_09


R2配置

#
ip community-filter advanced yibai permit 300:100
#
route-policy yibai permit node 10
 if-match community-filter yibai
 apply local-preference 90
#
bgp 100
 peer 24.1.1.2 route-policy yibai import
#

R3配置

#
ip community-filter advanced erbai permit 300:200
#
route-policy loc_perf permit node 10
 if-match community-filter erbai
 apply local-preference 90
#
bgp 100
  peer 34.1.1.2 route-policy loc_perf import
#

R4略

R1的bgp路由表

bgp引入路由的方式 bgp路由配置实例_R3_10

第五种:MED 用于选路的属性

这个思路是错的,由于第一次只做了右边没有具体配左边,所以导致的错误(留在这里警示自己,正确的在下面)

思路:在这几个出向接口上做策略,比如在R5出口抓到100路由,增大其MED(cost)值,使得R4去往100时选择R6,同R6,R2,R3。

bgp引入路由的方式 bgp路由配置实例_路由表_11


R5配置,其它略

#
ip community-filter advanced yibai permit 300:100
#
route-policy yibai permit node 10
 if-match community-filter yibai
 apply cost 100
#
route-policy yibai permit node 20
#
bgp 300
  peer 45.1.1.1 route-policy yibai export
#

最后想到上面这个做法不对,并验证了一下:左边不应该在R2和R3的出接口上做MED,否则会出现下面的情况,我仅在R2上修改了100路由的COST值,R1整体去R2的MED就都变了,应该在R4上做(MED用在AS与AS之间)

bgp引入路由的方式 bgp路由配置实例_R3_12


正确做法:

bgp引入路由的方式 bgp路由配置实例_bgp_13

在R4上修改cost值后,传到R2上之后,R2会将携带MED的属性发给它的直连邻居R1,属性不会再传到R3,并且R1不会传递给R3。

为此,我给R2和R3建了个邻居,发现属性可以传给R3。

第六种:Preference_Value

思路:在R1上抓取100的路由,修改本属性为100,策略实施在和R3连接的入接口上,值越大就走哪个,同理其它几个。

bgp引入路由的方式 bgp路由配置实例_bgp_14


R1关于100路由配置

#
ip community-filter advanced yibai permit 300:100
#
route-policy yibai permit node 10
 if-match community-filter yibai
 apply preferred-value 100
#
route-policy yibai permit node 20
#
bgp 100
  peer 3.3.3.3 route-policy yibai import
#

bgp引入路由的方式 bgp路由配置实例_路由表_15