首页 > 其他分享 >BGP 属性local_preference 本地优先

BGP 属性local_preference 本地优先

时间:2024-08-01 14:08:55浏览次数:12  
标签:4.4 1.1 BGP 255.255 preference 2.2 local 路由 3.3

 

  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邻居使用,未使用接口地址

 

标签:4.4,1.1,BGP,255.255,preference,2.2,local,路由,3.3
From: https://www.cnblogs.com/juzib/p/18336203

相关文章

  • 【并发】ThreadLocal常用场景
    ThreadLocal经常被用到,尤其是在以下场景中:数据库连接管理:每个线程使用自己的数据库连接,以避免连接被多个线程同时使用而导致的并发问题。可以在多线程环境下确保每个线程使用的数据库连接是独立的,避免了连接池中的连接被多个线程共享的风险。会话管理:每个线程都有自......
  • 【并发】ThreadLocal是什么
    ThreadLocal是Java中用于实现线程局部变量的类。它为每个使用该变量的线程提供独立的副本,因此每个线程都可以独立地改变它自己的副本,而不会影响其他线程的副本。这对于需要在线程之间保持独立状态的数据非常有用,例如用户会话、数据库连接等。主要方法ThreadLocal<T>构......
  • 核心(Hutool-core)LocalDateTime工具-LocalDateTimeUtil
    介绍从Hutool的5.4.x开始,Hutool加入了针对JDK8+日期API的封装,此工具类的功能包括LocalDateTime和LocalDate的解析、格式化、转换等操作使用日期转换StringdateStr="2020-01-23T12:23:56";DateTimedt=DateUtil.parse(dateStr);//Date对象转换为LocalDateTimeLocalDat......
  • BGP引流与回注实验
    一、实验目的和拓扑实验目的:在源网络和目标网络之间构建流量检测与清洗功能,通过BGP路由方式实现流量的引流和回注,其中使用防火墙充当流量检测和清洗设备二、基本配置(一)如图所示配置各接口IP地址(二)在R1/R2/FW1之间建立OSPF,在各端口启用OSPF路由,实现IGP路由互通(三)在FW1上......
  • Access denied for user 'root'@'localhost' (using password: YES)
    1.启动项目报连接数据库被拒绝![](https://img2024.cnblogs.com/blog/3413037/202407/3413037-20240731113834004-615120424.png)2.用数据库连接工具也是提示同样错误![](https://img2024.cnblogs.com/blog/3413037/202407/3413037-20240731113958582-2045494132.png)3.查看my......
  • ThreadLocal和内存泄漏原理
    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录前言一、ThreadLocal原理二、ThreadLocal内存泄漏三、为什么使用弱引用?总结前言复杂事简单说:ThreadLocal一、ThreadLocal原理每一个线程绑定一个ThreadLocalMap,里面存放该线程自己的数据,......
  • BGP 联盟
    联盟(confederation)      处理自治系统内部的IBGP网络连接的另一种方法,是除了路由反射的另一种实现方式;            实质:         联盟将一个自治系统划分为多个子自治系统,每个子自治系统的内部的IBGP对等体建立全连接关系,子自治系统之......
  • BGP 路由反射
     解决问题:  BGP反射功能可以代替IBGP全连接,即:不需要所有的IBGP路由器建立全连接网络;  IBGP邻居少于全连接,从而进行了简化;路由反射器:  允许某些网络设备将从IBGP对等体学习到的路由信息发布给其它特定的IBGP对等体,而这里的某些网络设备就称之为路由反射器; 反射过程......
  • 以BGP方式直连中国联通骨干网络,为客户提供全方位的互联网穿透服务
    联通IPTransit产品:以BGP直连,引领互联网穿透新纪元在数字化转型的浪潮中,互联网已成为连接世界、推动各行业创新发展的核心基础设施。面对日益增长的网络流量需求与复杂多变的网络环境,如何高效、安全地将内容推向全球用户,成为内容提供商面临的重要挑战。中国联通,作为国内领先的电......
  • ThreadLocal
    ThreadLocal是Java中提供的一种用于实现线程局部变量的工具类。它允许每个线程都拥有自己的独立副本,从而实现线程隔离,用于解决多线程中共享对象的线程安全问题。通常,我们会使用synchronzed关键字或者lock来控制线程对临界区资源的同步顺序,但这种加锁的方式会让未获取到锁......