本节书摘来异步社区《OSPF和IS-IS详解》一书中的第2章,第2.3节,作者: 【美】Jeff Doyle 译者: 孙余强 责编: 傅道坤,更多章节内容可以访问云栖社区“异步社区”公众号查看。

2.3 BGP路径属性

BGP设计与实现
BGP路径属性是一组描述BGP前缀特性的参数。由于BGP首先是一个路由选择策略工具,因此BGP在影响路径选择的时候,广泛地使用了这些属性。在设计一个有效率的BGP路由选择体系结构中,有效地利用这些属性是十分关键的。这一节将着重讲述一些通用的BGP属性,而在后面的章节中会作更为深入的讨论。

Cisco IOS软件目前支持以下这些属性:

  • ORIGIN(起源);
  • AS_PATH(AS路径);
  • NEXT_HOP(下一跳);
  • MULTI_EXIT_DISC(多出口鉴别);
  • LOCAL_PREF(本地优先);
  • ATOMIC_AGGREGATE(原子聚合);
  • AGGREGATOR(聚合者);
  • COMMUNITY(团体);
  • ORIGINATOR_ID(起源者标识);
  • CLUSTER_LIST(簇列表);
  • Multiprotocol Reachable NLRI(多协议网络层可达性信息,MP_REACH_NLRI);
  • Multiprotocol Unreachable NLRI(多协议网络层不可达性信息,MP_UNREACH_NLRI)。
    以下是对一些更常用的BGP属性的简要概述。后面的章节将讨论其他的属性。

2.3.1 ORIGIN

这个属性指出了前缀的起源。有3种可能的起源:

  • IGP——ORIGIN为0;
  • EGP——ORIGIN为1;
  • INCOMPLETE——ORIGIN为3。

在路径选择过程中,具有较低的ORIGIN值的前缀被优先选择。在前缀被注入进BGP时,它的ORIGIN属性是自动被定义的,但是可以使用路由映射来更改。例如,如果前缀通过redistribute命令被重分布到BGP中,那么它的ORIGIN属性就会被设置为3;如果前缀通过network命令被注入到BGP中,那么它的ORIGIN属性就会被设置为0。事实上,由network命令发起的路由优于那些被重分布的路由。

2.3.2 AS_PATH

AS_PATH列表以相反的顺序列出了一条前缀先后所经过的自治系统,最后一个AS放置在该列表的开始处。AS_PATH的主要目的是为AS域间路由选择提供环路防止机制。列表中可接受的自治系统的数目在1~255之间。因为AS_PATH列表最短的路径优先,因此在列表中前置(prepending)相同的AS号是影响入站路径选择的常用方法。Cisco IOS软件在AS_PATH中支持4种类型的AS段:

  • AS_SET;
  • AS_SEQUENCE;
  • AS_CONFED_SET;
  • AS_CONFED_SEQUENCE。

SET和SEQUENCE的不同之处在于,SET选项下的自治系统的列表是无序的(关于该路径所经过的自治系统),而SEQUENCE选项下的自治系统的列表是有序的。后两者仅仅应用于本地联盟内部发起的路径。另外,在路径选择中,它们的计数方法是不同的,这将在“路径决策过程”一节中讨论。

2.3.3 NEXT_HOP

从BGP的角度来看,这个属性定义了到达某条前缀的下一跳IP地址。这并不意味着下一跳地址必须是直连的。如果BGP下一跳并不是直连的下一跳,那么就需要在IP RIB中执行递归路由查找。前缀必须要先有可达的下一跳,然后BGP在最佳路径选择过程中才会考虑这条前缀。换句话说,下一跳必须要在路由选择表中某条前缀的下面,包括默认路由0.0.0.0/0。BGP路径的下一跳属性通常在3个地方被设置:

  • 当前缀一开始被注入到BGP时,它的下一跳地址由注入该前缀的BGP宣告者(speaker)来设置。下一跳的值依赖于前缀被注入进BGP的方式。如果前缀是通过aggregate- address命令被注入的,那么前缀的BGP下一跳就是进行路由聚合的那个BGP宣告者。如果前缀是通过network命令或者重分布被注入到BGP中的,那么注入前的IGP下一跳现在就成为BGP下一跳。例如,假设一条OSPF前缀被重分布到BGP中,那么BGP下一跳就不一定是进行重分布的BGP宣告者,而是OSPF前缀原来的下一跳。因此,在这样的情况下,我们建议在重分布点将BGP下一跳重置为BGP宣告者自身。如果IGP下一跳不存在(例如在路由指向Null0接口的情况下),那么下一跳就是BGP宣告者自身。如果本地的BGP宣告者成了下一跳地址,那么BGP RIB中的下一跳字段就是0.0.0.0。出站更新数据包中的下一跳被设置为本地的BGP对等会话地址。
  • 当前缀通过eBGP被通告出去时,下一跳会自动地被设置为那个正在发送该前缀的eBGP对等体的IP地址。如果3个或更多的对等体正在共享一个相同的多路访问(multiaccess)网络,那么正在作通告的宣告者会把同一个网段上原来的宣告者设置为下一跳,而不是它自身。这叫“第三方下一跳”(third-party next hop)。
  • 通过使用路由映射或者next-hop-self命令可以手工地更改下一跳。注意对于同一个AS中的BGP会话来说,默认条件下,下一跳不会被改变。

2.3.4 MULTI_EXIT_DISC

MULTI_EXIT_DISC(MED)属性典型地被用在AS间的链路上,以区分到达相同的邻居自治系统的多个出口/入口点。Cisco IOS软件也允许你使用命令- bgp always-compare-med
,在不同的自治系统之间比较MED。MED值由度量值来表示。它的用法与度量的用法是一致的,具有较低MED值的路径被优先选择。

在Cisco IOS软件中,下面是一些MED设置和通告的规则:

  • 如果路由从iBGP对等体学到,那么边界路由器在把这条路由通告给eBGP对等体之前,会清除它的MED。在这种情况下,如果要强制边界路由器通告MED,可以为那个eBGP对等体配置路由映射命令set metric-type internal。
  • 在边界路由器本地被注入到BGP中的路由在被通告给eBGP对等体时携带MED值。度量值由下列规则来确定:
      — 如果通过networkredistribute命令注入到BGP中的路由是来自于IGP的,那么BGP MED从IGP度量中导出;

  — 如果通过networkredistribute命令注入到BGP中的路由是来自于直连路由的,那么BGP MED被设为0;

  — 如果通过aggregate-address命令注入路由,那么BGP MED不被设置。

2.3.5 LOCAL_PREF

LOCAL_PREF是iBGP宣告者用来计算每一条外部路由的优先程度的属性。本地优先属性在iBGP对等体之间被交换,以设置离开AS的优先出口点。具有较高的LOCAL_PREF值的路径被优先选择。这个属性不包含在eBGP前缀通告中(典型地,在入境eBGP更新中被手工设置),并且仅仅被同一个AS内的路径选择处理所使用。作为比较,在eBGP链路上,MED从一个AS被发送到另外一个邻居AS,以影响接收AS的出境策略。

注意:

Cisco IOS软件中另外一个参数——WEIGHT(权重)可以影响路径选择。这个参数是Cisco专有的,而且对配置这个参数的路由器来说是本地有效的。也就是说,WEIGHT设置不在路由器之间交换。

2.3.6 COMMUNITY

COMMUNITY被一组共享相同的特性的前缀所定义。多个团体可以应用到一条前缀上,每个团体有4字节长。团体属性有以下两种类型:

Well-known communities(熟知团体)——当接收到这些带有团体属性的前缀时,对等体会自动地根据预先定义的团体属性的意义来采取操作。不需要额外的配置。在RFC 1997中,熟知团体属性落在保留值的范围内,即0xFFFF0000~0xFFFFFFFF。
Private communities(私有团体)——由网络管理员定义的团体,并且在不同自治系统的对等体之间,这些团体必须相互协调。必须明确地配置所采取的行为。私有团体的值在保留范围以外。
当前,Cisco IOS软件支持4种熟知团体属性:

  • NO_EXPORT——带有这个属性的前缀不应该被通告给eBGP对等体,但可以被发送给同一个联盟内的子自治系统(subautonomous system)。这个团体的值为0xFFFFFF01。
  • LOCAL_AS——带有这个属性的前缀不会被通告到本地AS之外。在联盟的情况下,只有同一个子自治系统中的对等体才被允许接收这些前缀。如果不在联盟的情况下,LOCAL_AS和NO_EXPORT被一样对待。在RFC 1997中,NO_EXPORT_SUBCONFED (0xFFFFFF03)就是为这种情况定义的。
  • NO_ADVERTISE——带有这个属性的前缀不会被通告给任何对等体,包括内部的或外部的对等体。该属性的值为0xFFFFFF02。
  • INTERNET——带有这个属性的前缀被通告到Internet。换句话说,这些前缀的通告是没有限制的。这个熟知团体属性在RFC 1997中没有被明确地定义。在Cisco IOS软件中,每一条前缀都属于这个INTERNET团体(值为0)。

更常用的团体是私有团体。使用它们的主要目的是为前缀附加管理标记,以便制定合适的策略。私有团体使用AS:number的格式,其中AS是指本地AS号或对等体AS号,而number是指本地分配的,或与对等体AS协商分配的任意数值,用来表示可以应用策略的一组团体。这种用户友好的(user-friendly)格式可以在全局配置模式下由ip bgp-community new-format命令来启用。

2.3.7 ORIGINATOR_ID

当路由反射器(route reflector,RR)被部署时,ORIGINATOR_ID在AS内被用作环路防止机制。它由第一个RR创建,并且不被后续的RR所更改。ORIGINATOR_ID是以下这些路由器的路由器标识(router ID):

  • 在本地AS始发路由的BGP宣告者,例如使用network命令注入的路由就是这种路由;
  • 如果路由是通过eBGP学到的,那么就是同一个AS的边界路由器。

ORIGINATOR_ID是一个32bit长的数值,并且只应该从iBGP对等体那里接收到。在RR上,ORIGINATOR_ID用来替代路径选择过程中的router ID。当iBGP宣告者接收到的更新包含了它自己的ORIGINATOR_ID时,它就会丢弃路由,这样就打破了路由选择信息环路。如果ORIGINATOR_ID已经存在的话,BGP宣告者就不应该再创建一个。

2.3.8 CLUSTER_LIST

当路由反射器被部署时,CLUSTER_LIST在AS内被用作另一个环路防止机制。这个属性记录了在RR的环境中,前缀所经过的CLUSTER_ID的列表。当RR从它的客户那里反射路由到簇(cluster)外的非客户时,或从非客户反射路由到客户时,或从一个客户反射路由到另一个客户时,它会把本地CLUSTER_ID添加到CLUSTER_LIST的前面。如果路由更新的CLUSTER_LIST为空,那么RR就会创建一个。使用这个属性,RR能够识别出路由选择信息是否又环回到了同一个簇。如果在CLUSTER_LIST中发现了本地CLUSTER_ID,那么这个更新就会被丢弃,这样就打破了路由选择信息环路。第7章将详细地讨论CLUSTER_LIST和CLUSTER_ID的设计和配置问题。

《OSPF和IS-IS详解》一2.3 BGP路径属性相关推荐

  1. float属性html,详解CSS样式中的float属性

    详解CSS样式中的float属性.float是 css 样式的定位属性.我们在印刷排版中,文本可以按照需要围绕图片.一般把这种方式称为"文本环绕".在网页设计中,应用了CSS的fl ...

  2. js入门·表单详解一(修改表单属性,修改表单元素值)

    实在javascript入门·Document对象入门讲解(访问表单,创建新页,获取页标题) 一文中,我们已经把表单的一些基本访问等弄清楚了,下面我们深入的学下表单的属性以及对表单元素的简单操作! 演 ...

  3. 详解CSS3中新增的内容属性:content

    详解CSS3中新增的内容属性:content 1. 用法: content属性用于插入生成的内容,常和:before选择器和:after选择器配合使用,将生成的内容放在一个元素内容的前面或后面. 2. ...

  4. 清华大学、腾讯发布新书 详解产业互联网的中国路径

    9月9日-11日,2020腾讯全球数字生态大会在云端举行之际,腾讯官方出版的首本产业互联网专业书籍--<产业互联网的中国路径>,在京东.当当.微信读书等渠道同步上市. "这是腾讯 ...

  5. python装饰器setter_第7.27节 Python案例详解: @property装饰器定义属性访问方法getter、setter、deleter...

    上节详细介绍了利用@property装饰器定义属性的语法,本节通过具体案例来进一步说明. 一.    案例说明 本节的案例是定义Rectangle(长方形)类,为了说明问题,除构造函数外,其他方法都只 ...

  6. 自动驾驶算法详解(5): 贝塞尔曲线进行路径规划的python实现

    一.理论知识 1.路径规划定义 路径规划智能物流.无人驾驶等智能领域中重要的组成部分.路径规划的目标是实现从目的地到终点之间寻找一条安全(无碰撞).高效(最短距离或 最短时间)的一条最优或接近最优的路 ...

  7. OSPF——DR及BDR详解

    目录 一.DR简介: 二.BDR简介: 三.OSPF邻居关系规律及缺点: (1). 邻居关系数量变化规律: (2).邻居关系过多缺点: 四.为什么选举DR和BDR: 五.解决方法:引入DR.BDR 解 ...

  8. OSPF邻居建立过程详解

    目录 OSPF的五种包: 1.Hello包 2.DBD包(database description) 3.LSR包(Link State Request) 4.LSU包(Link State Upda ...

  9. OSPF的LSA类型详解与特殊区域

    LSA---链路状态通告----ospf在不同网络环境下携带不同信息的载体 LSDB---链路状态数据库 SPF--最短路径优先算法 Type--LSA的类型,在ospfv2的版本,需要掌握6种LSA ...

最新文章

  1. GitHub上大热的Deep Photo终于有TensorFlow版了!
  2. windows防火墙命令
  3. LJL-Solution-vss2005在项目中连接不上 解决方案
  4. js 得到select所有option里的值
  5. 吴恩达第三周逻辑回归
  6. 新乡学院计算机田亮,2019届毕业论文答辩工作安排
  7. Android 安全提示 笔记
  8. Oracle技术之ASM上恢复STANDBY数据库出现ORA-15173错误
  9. 二分法求函数方程根的matlab实现(内附例题和代码)
  10. 微信小程序底部导航栏配置
  11. nutch2.3 mysql教程_nutch2.2.1+mysql集成教程
  12. 程序员该如何提高睡眠质量?
  13. 使用Webupload上传图片到FastDFS分布式文件系统
  14. 用qq来搞定gmail,yahoo,hotmail,126 邮箱 POP3协议
  15. Python零基础之selenium
  16. ChatGPT辅助处理excel表格数据
  17. php登陆界面点登陆没有反应,ThinkPHP5实战的登录界面的登陆按钮点击之后没有任何反应怎么解决?...
  18. yum -y insytall nmap报错:​​​​​​​​已加载插件:fastestmirrorLoading mirror speeds from cached hostfile
  19. 5个方法助设计师保持创造力
  20. JavaWeb-05 jQuery

热门文章

  1. freemaker 生成循环表格表格
  2. 蓝牙的配对和连接的建立过程
  3. 商场wifi统一认证好吗
  4. Mac电脑如何删除磁盘及双系统分区?
  5. Win10磁盘占用100%解决方法
  6. pycharm pep8规范 个人问题总结
  7. Verilog——补码转换
  8. VisualGDB可视化调试STL
  9. Enterprise Architect使用
  10. MPU6500驱动总结