路径属性分类
1、公认属性:
①公认必遵:所有的BGP实现都必须都能识别,且在Update报文中必须携带。如:Origin、AS-Path、Nexthop。
②公认自决:不要求必须包含Update报文中。如:local-Preference 、ATOMIC-Aggregate.
2、可选属性:
①可选传递:设备可以不支持该属性,但即使不支持,也应当接收包含该属性的路由并传递给其他对等体。如:Community、Aggregator.
②可选非传递:设备可以不支持该属性,不识别的BGP进程忽略包含这个属性的路由更新,并且不传递给其他BGP对等体。如:MED、Originator-ID、Cluster-list、pre-value(华为私有的)
3、Preferred-Value
①华为私有路径属性,取值范围:0~65535;值越大,则路由越优先。
②只能在路由器本地配置,只影响本地设备的路由优选,不会传播任何BGP对等体。
③本地始发BGP默认值为0,从其他BGP对等体学习也是默认值为0.
4、Local-Preference
①属于自决属性,本地优先级属性,用于告诉AS中的路由器,哪条路径是离开AS的首选路径。
②值越大越优先,缺省默认值为100。
③只能被传递给IBGP对等体,不能传递给EBGP对等体。
5、Local-Preference注意事项
①只能在IGBP对等体传递(除非做了策略,否则值在IBGP对等体间传递过程中不会丢失),不能在EBGP对等体间传递,如果在EBGP对等体间收到的路由的路径属性携带了local-perference
,则会触发notifacation报文,造成会话中断。
②在AS边界路由器使用import方向的策略修改local-perference属性值。
③使用bgp default local-preference命令修改缺省local-preference值,该值缺省为100.
④路由器在向其EBGP对等体发送路由更新时,不能携带Local_Preference属性,但是对方接收路由之后,会在本地为这条路由赋一个缺省Local_Preference值( 100),然后再将路由传递给自己的IBGP对等体。·
⑤本地使用network命令引入及重发布引入的路由,Local_Preference为缺省值100,并能在AS内向其他IBGP对等体传递,传递过程中除非受路由策略影响,否则Local_Preference不变。
6、AS_Path
①该属性为公认必遵属性,是前往目标网络的路由经过的AS号列表;
②作用∶确保路由在EBGP对等体之间传递无环﹔另外也作为路由优选的衡量标准之一;
③路由在被通告给EBGP对等体时,路由器会在该路由的AS_Path中追加上本地的AS号;路由被通告给IBGP对等体时,AS-path不会发生改变。
7、AS_Path的四种类型
①AS_SET:一个去往特定目的地所经路径上的无序AS号列表。·
②AS SEQENCE:一个有序的AS号列表。
③AS_CONFED_SEQUENCE:一个去往特定目的地所经路径上的有序AS 号列表,其用法与AS_SEQUENCE完全一样,区别在于该列表中的AS号属于本地联邦中的AS。
④AS_CONFED_SET:一个去往特定目的地所经路径上的无序AS号列表,其用方法与AS_SET完全一样,区别在于列表中的AS号属于本地联邦中的AS。
8、Origin
①该属性为公认必遵属性,它标识了BGP路由的起源。如下表所示,根据路由被引入BGP的方式不同,存在三种类型的Origin。
②当去往同一个目的地存在多条不同Origin属性的路由时,在其他条件都相同的情况下,BGP将按如Origin的下顺序优选路由:IGP > EGP > Incomplete。
R1采用network的方式将直连路由10.0.1.0/24引入BGP,则路由的Origin为igp
9、MED
①MED ( Multi Exit Discriminator )是可选非传递属性,是一种度量值,用于向外部对等体指出进入本AS的首选路径,即当进入本AS的入口有多个时,AS可以使用MED动态地影响其他AS选择进入的路径。MED属性值越小则BGP路由越优。
②MED主要用于在AS之间影响BGP的选路。MED被传递给EBGP对等体后,对等体在其AS内传递路由时,携带该MED值,但将路由传递给其EBGP对等体时,缺省不会携带MED属性10、关于MED的一些注意事项
1)缺省情况下,路由器只比较来自同一相邻AS的BGP路由的MED值,也就是说如果去往同一个目的地的两条路由来自不同的相邻AS,则不进行MED值的比较。
2)一台BGP路由器将路由通告给EBGP对等体时,是否携带MED属性,需要根据以下条件进行判断(不对EBGP对等体使用策略的情况下)∶
①如果该BGP路由是本地始发(本地通过network或import-route命令引入)的,则缺省携带MED属性发送给EBGP对等体。
②如果该BGP路由是从其他BGP对等体学习过来的,那么将该路由通告给EBGP对等体时不携带MED。。
3)在IBGP对等体之间传递路由时,MED值会被保留并传递,除非部署了策略,否则MED值在传递过程中不发生改变也不会丢失。
MED的默认操作
①如果路由器通过IGP学习到一条路由,并通过network或import-route的方式将路由引入BGP,产生的BGP路由的MED值继承路由在IGP中的metric。例如上图中如果R2通过OSPF学习到了11.1.1.0/24路由,并且该路由在R2的全局路由表中OSPF Cost=100,那么当R2将路由network进BGP后,产生的BGP路由的MED值为100。
②如果路由器将本地直连路由通过network或import-route的方式引入BGP,那么这条BGP路由的MED为O,因为直连路由cost为0。
③如果路由器将本地静态路由通过network或import-route的方式引入BGP,那么这条BGP路由的MED为0,因为静态路由cost为0。
①如果路由器通过BGP学习到其他对等体传递过来的一条路由,那么将路由更新给自己的EBGP对等体时,默认是不携带MED的。这就是所谓的:“MED不会跨AS传递”。例如在上图中,R2将携带MED属性的BGP路由传递给R3,则R3将该路由传递给R4时,不会携带MED。
②可以使用default med命令修改缺省的MED值,default med命令只对本设备上用import-route命令引入的路由和BGP的聚合路由生效。例如在R2上配置default med 999,那么R2通过import-route及aggregate命令产生的路由传递给R3时,路由携带的MED为999。
10、Next-Hop
①该属性是一个公认必遵属性,用于指定到达目标网络的下一跳地址。
②当路由器学习到BGP路由后,需对BGP路由的Next_Hop属性值进行检查,该属性值(IP地址)必须在本地路由可达,如果不可达,则这条BGP路由不可用。
③在EBGP及IBGP对等体的场景中,Next_Hop的缺省操作是存在差异的。
Next-hop缺省操作
路由器将BGP路由通告给自己的EBGP对等体时,将该路由设置为自己的更新源IP地址。
·路由器在收到EBGP对等体所通告的BGP路由后,在将路由传递给自己的IBGP对等体时,会保持路由的Next_Hop属性值不变。
11、BGP路由优选规则概览
1.优选具有最大Preferred-Value的路由
2.优选具有最大Local_Preference的路由
3.优选起源于本地的路由
4.优选AS_Path最短的路由
5.Origin ( IGP>EGP > Incomplete )
6. 优选MED最小的路由
7.优选EBGP对等体所通告的路由
8.优选到Next_Hop的IGP度量值最小的路由
9.BGP路由负载分担
10.优选Cluster_List最短的路由
11.优选Router-ID最小的BGP对等体发来的路由
12.优选Peer-IP地址最小的对等体发来的路由