BGP 属性local_preference 本地优先

 

  BGP 本地优先属性

    公认任意属性;

    当一条BGP路由器中存在多条去往同一目标网络的BGP路由时,BGP协议会对这些BGP路由属性进行 比较,从而筛选出最佳到达目标网络的通达路径;

    本地优先属性,只在IBGP对等体之间进行交换,即:同一AS内进行,不会通告给AS 域外;

    用于判断流量离开AS时选择的最佳路由;

  规则:

    1、在BGP优选路由的时候,排在最前面的是prefer value,即优选值,值越大才会越被优先选择,默认情况BGP 路由的 prefer value 为0;

    2、在prefer value 相同的情况,进而选择local preference,即:本地优先,与prefer value 相同,值越大越容易被选择;

    3、local prefer 只在IBGP对等体进行传播;

    4、当路由器从IBGP对等体接收路由的local pref 值为空时,那么会将此路由的local pref 设置为100,即:在IBGP对等体传递路由,默认值为100;

    5、当路由器从IBGP对等体接收路由的local pref值不为空时,那么将此路由的local pref 进行保留,不做修改;

    6、使用network通告或的import-route 引入的路由,local pref 值为空;

  实验图:

  R1 的1.1.1.1/32 路由通告出去,在R4上进行学习,那么R4 学习到的1.1.1.1/32 的R1存在两条路径,这里通过 本地优先 来进行选路;

  R1 在AS100 内,与AS200 的R2、R3建立BGP邻居关系,R2、R3同时与R4 建立邻居关系;

   

   测试点:

    1、R2、R3 通告出去的路由(2.2.2.2/32与3.3.3.3/32)在IBGP邻居R4上默认为100;    

[R4]dis bgp routing-table ipv4

 Total number of routes: 7

 BGP local router ID is 4.4.4.4
 Status codes: * - valid, > - best, d - dampened, h - history,
               s - suppressed, S - stale, i - internal, e - external
               a - additional-path
       Origin: i - IGP, e - EGP, ? - incomplete

     Network            NextHop         MED        LocPrf     PrefVal Path/Ogn

* >i 1.1.1.1/32         13.1.1.1        0          100        0       100i    # 经过IBGP邻居传递过来的路由,由于未设置本地优先值,所以在传递给IGBP邻居后,会被设置为默认的100;
*  i                    12.1.1.1        0          100        0       100i
* >i 2.2.2.2/32         2.2.2.2         0          100        0       i      #  这里的路由从IBGP邻居传来,被修改为了100;
* >i 3.3.3.3/32         3.3.3.3         0          100        0       i      #  这里的路由从IBGP邻居传来,被修改为了100;
* >  4.4.4.4/32         127.0.0.1       0                     32768   i
* >i 12.1.1.0/24        2.2.2.2         0          100        0       i
* >i 13.1.1.0/24        3.3.3.3         0          100        0       i

    通过上面R4 BGP路由信息表查看到,经过IBGP邻居传递过来的路由,local pref 均被设置为100,这就是由于R4 的IBGP邻居R2、R3未对路由进行设置local pref 属性值,所以传递过来后会被设置为默认的100;

  

    2、R1 通告的路由(1.1.1.1/32)本地为空,在R1 的EBGP 邻居R2、R3上接收后,记录BGP路由local pref 为空;

[R2]dis bgp routing-table ipv4

 Total number of routes: 4

 BGP local router ID is 2.2.2.2
 Status codes: * - valid, > - best, d - dampened, h - history,
               s - suppressed, S - stale, i - internal, e - external
               a - additional-path
       Origin: i - IGP, e - EGP, ? - incomplete

     Network            NextHop         MED        LocPrf     PrefVal Path/Ogn

* >e 1.1.1.1/32         12.1.1.1        0                     0       100i   # 这条路由是通过R1通告学来的,由于是EBGP邻居传递过来,所以不会携带local pref 值,所以治理直接设置为空; 
* >  2.2.2.2/32         127.0.0.1       0                     32768   i
* >i 4.4.4.4/32         4.4.4.4         0          100        0       i
* >  12.1.1.0/24        12.1.1.2        0                     32768   i

    通过R2 路由器查看BGP路由表,发现通过EBGP邻居学习来的路由的Local pref 值为空,所以符合上面说的,因为EBGP 邻居之间是不传递local pref 属性的;

    R3 是同样的道理,这里不进行描述;

 

    3、R3 上设置整体路由器的默认本地优先 为200,那么经过R3传递到的R4 后路由为200;

[R4]dis bgp routing-table ipv4

 Total number of routes: 7

 BGP local router ID is 4.4.4.4
 Status codes: * - valid, > - best, d - dampened, h - history,
               s - suppressed, S - stale, i - internal, e - external
               a - additional-path
       Origin: i - IGP, e - EGP, ? - incomplete

     Network            NextHop         MED        LocPrf     PrefVal Path/Ogn

* >i 1.1.1.1/32         13.1.1.1        0          200        0       100i    # 这里的local pref 值变为了200;
*  i                    12.1.1.1        0          100        0       100i
* >i 2.2.2.2/32         2.2.2.2         0          100        0       i
* >i 3.3.3.3/32         3.3.3.3         0          200        0       i      # 这里的local pref 值变为了200;
* >  4.4.4.4/32         127.0.0.1       0                     32768   i
* >i 12.1.1.0/24        2.2.2.2         0          100        0       i
* >i 13.1.1.0/24        3.3.3.3         0          200        0       i      # 这里的local pref 值变为了200;

  通过查看R4 路由器的BGP路由表,发现凡是经过R3 路由器传递来的路由,现在都变成了200;那么符合之前的规律:路由器设置了本地优先值后,传递到IBGP邻居后不会对本地优先属性值进行改变;

    4、route policy 设置指定路由的本地优先值;

      在地址族里进行设置本地优先值,这里的本地优先的作用要大于在地址族内设置的默认本地优先值;即: route-policy 设置的本地优先值要大于 default 设置的本地优先值;

      在R3 上配置route policy ,ACL 并在export 进行应用;

      配置:

      

acl basic name acl2000
 rule 5 permit source 1.1.1.1 0      # 设置ACL 来筛选1.1.1.1 的路由;
#
route-policy rp1 permit node 10    # 创建的route policy
 if-match ip address acl name acl2000 # 对匹配ACL的路由进行匹配,并将匹配到的路由的local preference 设置为300
 apply local-preference 300
#
route-policy rp1 permit node 11    # 筛选路由,将路由的local preference 值设置为99,其实就是除了1.1.1.1的路由之外的设置为99;
 apply local-preference 99
#
address-family ipv4 unicast
  default local-preference 200
  network 3.3.3.3 255.255.255.255
  network 13.1.1.0 255.255.255.0
  peer 4.4.4.4 enable
  peer 4.4.4.4 route-policy rp1 export     # 在邻居4.4.4.4 的路由器上,出去的路由进行路由策略rp1 的应用;
  peer 13.1.1.1 enable

    在这里我们查看R3 路由器的路由记录:

[R3]dis bgp routing-table ipv4

 Total number of routes: 4

 BGP local router ID is 3.3.3.3
 Status codes: * - valid, > - best, d - dampened, h - history,
               s - suppressed, S - stale, i - internal, e - external
               a - additional-path
       Origin: i - IGP, e - EGP, ? - incomplete

     Network            NextHop         MED        LocPrf     PrefVal Path/Ogn

* >e 1.1.1.1/32         13.1.1.1        0                     0       100i
* >  3.3.3.3/32         127.0.0.1       0          200        32768   i
* >i 4.4.4.4/32         4.4.4.4         0          100        0       i
* >  13.1.1.0/24        13.1.1.3        0          200        32768   i

    通过这里的路由信息,清楚的看到,default local prefer 值设置为了200;

    那么再查看从本机发送出去的R4 路由器的路由;

[R4]dis bgp routing-table ipv4

 Total number of routes: 7

 BGP local router ID is 4.4.4.4
 Status codes: * - valid, > - best, d - dampened, h - history,
               s - suppressed, S - stale, i - internal, e - external
               a - additional-path
       Origin: i - IGP, e - EGP, ? - incomplete

     Network            NextHop         MED        LocPrf     PrefVal Path/Ogn

* >i 1.1.1.1/32         13.1.1.1        0          300        0       100i
*  i                    12.1.1.1        0          100        0       100i
* >i 2.2.2.2/32         2.2.2.2         0          100        0       i
* >i 3.3.3.3/32         3.3.3.3         0          99         0       i
* >  4.4.4.4/32         127.0.0.1       0                     32768   i
* >i 12.1.1.0/24        2.2.2.2         0          100        0       i
* >i 13.1.1.0/24        3.3.3.3         0          99         0       i

    上面的路由可以看到1.1.1.1/32 的路由经过R3 来的,其local pref 值已经设置为了300,即route policy 已经生效;

    非1.1.1.1/32 的路由,经过R3传递过来的路由被route policy 设置后,在R4上被设置为99;

    而经过R2路由器来的路由,仍然是默认的100;

  

  路由器BGP配置:

    R1

interface LoopBack0
 ip address 1.1.1.1 255.255.255.255
#
interface GigabitEthernet0/0/0
 port link-mode route
 combo enable copper
 ip address 12.1.1.1 255.255.255.0
#
interface GigabitEthernet0/0/1
 port link-mode route
 combo enable copper
 ip address 13.1.1.1 255.255.255.0
#
bgp 100
 peer 12.1.1.2 as-number 200
 peer 13.1.1.3 as-number 200
 #
 address-family ipv4 unicast
  network 1.1.1.1 255.255.255.255
  peer 12.1.1.2 enable
  peer 13.1.1.3 enable

    R2 

interface LoopBack0
 ip address 2.2.2.2 255.255.255.255
#
interface GigabitEthernet0/0/0
 port link-mode route
 combo enable copper
 ip address 12.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/1
 port link-mode route
 combo enable copper
 ip address 24.1.1.2 255.255.255.0
#
bgp 200
 peer 4.4.4.4 as-number 200
 peer 4.4.4.4 connect-interface LoopBack0
 peer 12.1.1.1 as-number 100
 #
 address-family ipv4 unicast
  network 2.2.2.2 255.255.255.255
  network 12.1.1.0 255.255.255.0
  peer 4.4.4.4 enable
  peer 12.1.1.1 enable
#
 ip route-static 4.4.4.4 32 24.1.1.4    # 建立IBGP邻居使用,未使用接口地址

    R3

interface LoopBack0
 ip address 3.3.3.3 255.255.255.255
#
interface GigabitEthernet0/0/0
 port link-mode route
 combo enable copper
 ip address 13.1.1.3 255.255.255.0
#
interface GigabitEthernet0/0/1
 port link-mode route
 combo enable copper
 ip address 34.1.1.3 255.255.255.0
#
bgp 200
 peer 4.4.4.4 as-number 200
 peer 4.4.4.4 connect-interface LoopBack0
 peer 13.1.1.1 as-number 100
 #
 address-family ipv4 unicast
  network 3.3.3.3 255.255.255.255
  network 13.1.1.0 255.255.255.0
  peer 4.4.4.4 enable
  peer 13.1.1.1 enable
#
ip route-static 4.4.4.4 32 34.1.1.4    # 建立IBGP邻居使用,未使用接口地址

    R4

  

interface LoopBack0
 ip address 4.4.4.4 255.255.255.255
#
interface GigabitEthernet0/0/0
 port link-mode route
 combo enable copper
 ip address 24.1.1.4 255.255.255.0
#
interface GigabitEthernet0/0/1
 port link-mode route
 combo enable copper
 ip address 34.1.1.4 255.255.255.0
#
bgp 200
 peer 2.2.2.2 as-number 200
 peer 2.2.2.2 connect-interface LoopBack0
 peer 3.3.3.3 as-number 200
 peer 3.3.3.3 connect-interface LoopBack0
 #
 address-family ipv4 unicast
  network 4.4.4.4 255.255.255.255
  peer 2.2.2.2 enable
  peer 3.3.3.3 enable
#
 ip route-static 2.2.2.2 32 24.1.1.2      # 建立IBGP邻居使用,未使用接口地址
 ip route-static 3.3.3.3 32 34.1.1.3      # 建立IBGP邻居使用,未使用接口地址

 

posted @ 2024-08-01 13:55  橘子飞飞  阅读(239)  评论(0编辑  收藏  举报