深入理解BGP的几个路由特性(试读连载六)
以下内容摘笔者编著,现在接受最优惠的7折预订(并送特制的2011年台历),即将于11月8号首发上市的《路由器配置与管理完全手册——H3C篇》。本书完整目录参见:http://winda.blog.51cto.com/55153/353767
其姊妹篇——《路由器配置与管理完全手册——Cisco篇》的完整目录参见:http://winda.blog.51cto.com/55153/333804
10.1.2 BGP的几种主要路由属性
BGP路由属性是BGP 路由的核心概念。它是一组参数,在路由更新消息中一同被发给连接对等体/对等体组。这些参数记录了BGP路由信息,用于选择和过滤路由。它们可以被看作是选择路由的度量(metric)。
BGP路由属性可以分成四类:公认强制(Well-known mandatory attributes)、公认自由选择(Well-known discretionary attributes)、可选传递(Optional transitive attributes)和可选非传递(Optional nontransitive attributes)。
公认的(Well-known)属性对于所有的BGP路由器来说都是可辨别的;每个路由更新消息中都必须包含强制(mandatory)公认属性,而自由选择的(discretionary)公认属性则是可选的,可包括也可不包括。对于可选的(Optional)属性,不是所有的BGP工具都支持它。当BGP不支持这个属性时,如果这个属性是过渡性的(transitive),则会被接受并传给其他的BGP对等体;如果这个属性是非传递性的(nontransitive),则被忽略,不传给其他对等体。
在技术文档RFC1771定义了1~7号的BGP路由属性,依次是:1,ORIGIN(产生该路由信息的AS);2,AS_PATH(包已通过的AS集或序列);3,NEXT_HOP(要到达该目的下一跳的IP地址,iBGP连接不会改变从EBGP发来的NEXT_HOP);4,MULTI_EXIT_DISC(MED,本地路由器使用,区别到其他AS的多个出口);5,LOCAL-PREF(在本地AS内传播,标明各路径的优先级);6,ATOMIC_AGGREGATE;7,AGGREGATOR。在RFC1997中还定义了8,COMMUNITY。
在上面这些属性中,1、2号属性是公认强制;3、5、6是公认可选;7、8是可选过渡(“过渡”的意思就是可以传播到其他AS中);4是可选非过渡。这些属性在路由的选择中,考虑的优先级是不同的。仅就这8个属性来说,其中优先级最高的是LOCAL-PREF,接下来是ORIGIN和AS_PATH。
在配置BGP路由时,首先需要了解BGP路由的一些主要属性,否则很难正确理解本章后面所要介绍的BGP路由配置步骤,因为尽管有些属性从名字上看起来它与其他路由属性一样,但内涵有着比较明显的区别。
1. ORIGIN(源)属性
这是公认强制的BGP属性。Origin属性指明了当前路由是从哪里得到的,用来标记一条路由的路由信息源。这在显示BGP路由表时每条BGP路由信息中都会有体现的。它有以下三种类型:
IGP(i):是BGP用Network命令通告的IGP路由表中存在的路由,优先级最高,说明路由产生于本AS内。
EGP(e):是从eBGP邻居那里学习得到的路由,优先级次之。
incomplete(?):优先级最低,它并不是说明路由不可达,而是表示路由的来源无法确定。例如,引入的其它路由协议的路由信息。
2. AS_PATH(AS路径)属性
这也是公认强制的BGP属性。AS_PATH属性是一定顺序记录了某条路由从本地到达目的地址,一路所经过的所有AS号,这就是“AS路径”的含义。当BGP将一条路由通告到其他AS时,便会把本地AS号添加在AS_PATH列表的最前面。收到此路由的BGP路由器根据AS_PATH属性就可以知道去目的地址所要经过的AS。离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列。通过观察AS_PATH,BGP Speaker可以找出路由是从哪个自治系统产生的,以及这个路由传递经过了多少AS。最右边的AS号就是路由的产生者,最左边的AS号就是刚刚声明了路由的那个相邻的AS。处于AS_PATH中间的AS号是路由传递经过的AS。这样的AS_PATH序列被称为AS_SEQUENCE,AS_PATH序列就处在它的维护的序列中。但通常情况下,BGP不会接受AS_PATH中已包含本地AS号的路由,从而避免了形成路由环路的可能。也就是只有在eBGP Peer之间通告路由时,才会在AS_PATH列表中添加AS号,同一个AS中的通告不会添加AS号的。如果某台BGP路由器从其外部Peer收到某条路由的AS_PATH列表中包含了自己的AS号,则该路由就知道出现了环路,因而丢弃该路由。
如图10-1中有两条从AS 50区域中路由器到达目的网络8.0.0.0的路由,根据箭头所示的路由通告方向(通告方向是路由路径的反方向)可以看出,在AS_PATH列表中依次添加了所经过的AS号,并且是最近的处于最前面,其他AS号按顺序依次排列,中间以逗号分隔。如最后D=8.0.0.0(30,20,10)和D=8.0.0.0(40,10)。
如果通告路由的路由器与接收通告的路由器属于同一个AS(它们之间是iBGP关系),且所通告的路由是本AS中的,则下一跳为邻居路由器的接口IP地址。只有这种情况才与RIP、OSPF路由的下一跳是一样的。
5. MED(MULTI_EXIT_DISC)属性
MED(Multi-Exit Discriminators,多出口区分)属性是一个可选非过渡(也就是不能传播到其他AS中)属性。MED属性相当于IGP使用的度量值(metrics),用于判断流量进入AS时的最优路由。MED属性仅在相邻两个AS之间交换,收到此属性的AS一方不会再将其通告给任何其他第三方AS。当一个BGP路由器通过不同的eBGP对等体得到目的地址相同,但下一跳不同的多条路由时,在其它条件相同的情况下,将优先选择MED值较小者作为最优路由。如图10-4所示,从AS 10到AS 20的流量将选择Router B作为入口,因为Router B中的MED值为0,小于Router C中的MED值100。
图10-4 BGP MED属性示例
一般情况下,路由器只比较来自同一AS中多个eBGP邻居路径(也就是这些路径来自同一个eBGP AS)的MED属性,不比较来自不同AS的MED值。若非得要比较的话,则通过配置compare-different-as-med命令,可以强制BGP比较来自不同AS的路由的MED属性值。
6. COMMUNITY(团体)属性
Community属性是一个可选过渡BGP属性,是一组有相同特征的目的地址的集合,用来简化路由策略的应用和降低维护管理的难度。团体中具体集合的路由数量没有物理上的边界,与其所在的AS无关。公认的团体属性有:
INTERNET:默认情况下,所有的路由都属于INTERNET团体。具有此属性的路由可以被通告给所有的BGP对等体。
NO_EXPORT:具有此属性的路由在收到后,不能被发布到本地AS之外。如果使用了联盟,则不能被发布到联盟之外,但可以发布给联盟中的其他子AS。
NO_ADVERTISE:具有此属性的路由被接收后,不能被通告给任何其他的BGP对等体。
NO_EXPORT_SUBCONFED:具有此属性的路由被接收后,不能被发布到本地AS之外,也不能发布到联盟中的其他子AS。
深入理解BGP的几个路由特性(试读连载六)相关推荐
- ASP.NET MVC5+ 路由特性
概述 ASP.NET MVC 5支持一种新的路由协议,称为路由特性. MVC5也支持以前定义路由的方式,你可以在一个项目中混合使用这两种方式来定义路由. 案例 1.使用Visual Studio 20 ...
- 理解 RIPv1使用广播更新路由与RIPv2使用组播更新路由的区别
理解 RIPv1使用广播更新路由与RIPv2使用组播更新路由的区别 RIP版本1使用广播更新,版本2使用组播更新,RIP版本2的更新方式比RIP版本1更有效,如图6.25所示 ...
- 深入理解C# 3.x的新特性(2):Extension Method[下篇]
四.Extension Method的本质 通过上面一节的介绍,我们知道了在C#中如何去定义一个Extension Method:它是定义在一个Static class中的.第一个Parameter标 ...
- 深入理解C# 3.x的新特性(5):Object Initializer 和 Collection Initializer
深入理解C# 3.x的新特性系列自开篇以后,已经有两个月了.在前面的章节中,我们先后深入讨论了C# 3.x新引入的一些列新特性:Anomynous Type.Extension Method.Lamb ...
- [原创]深入理解C# 3.x的新特性(3):从Delegate、Anonymous Method到Lambda Expression
较之前一个版本,对于C# 3.x和VB 9来说,LINQ是最具吸引力的.基本上很多的新的特性都是围绕着LINQ的实现来设计的.借助Extension Method,我们可以为LINQ定义一系列的Ope ...
- 深入理解JavaScript中的属性和特性
深入理解JavaScript中的属性和特性 JavaScript中属性和特性是完全不同的两个概念,这里我将根据自己所学,来深入理解JavaScript中的属性和特性. 主要内容如下: 理解JavaSc ...
- 最新:深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)周志明
本书一共分为五个部分:走近Java.自动内存管理.虚拟机执行子系统.程序编译与代码优化. 高效并发.各个部分之间基本上是互相独立的,没有必然的前后依赖关系,读者可以从任何一个感兴 趣的专题开始阅读,但 ...
- 读书笔记之《深入理解Java虚拟机:JVM高级特性与最佳实践》
本篇带来的是周志明老师编写的<深入理解Java虚拟机:JVM高级特性与最佳实践>,十分硬核! 全书共分为 5 部分,围绕内存管理.执行子系统.程序编译与优化.高效并发等核心主题对JVM进行 ...
- 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版)读书笔记
前言 我在读 深入理解java虚拟机 这本书,把整体其中的关键点标记了,希望自己对它有个不一样的理解,也希望大家能看看这本写的很好的书 深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) pd ...
- bgp机房的动态路由和静态路由的区别
文章目录 前言 一.什么是bgp 二.什么是动态bgp路由 三.什么是静态bgp路由 前言 随着互联网产业的高速发展,bgp机房成为助力互联网发展的重要数据中心产品.要想搞清楚bgp动态路由和bgp静 ...
最新文章
- 【论文阅读----DDI(1)】MUFFIN: multi-scale feature fusion for drug–drug interaction prediction
- 【iOS 开发】基本 UI 控件详解 (UIButton | UITextField | UITextView | UISwitch)
- 成功解决AttributeError: module 'tensorflow.nn.rnn_cell' has no attribute 'linear'
- MySQL的查询性能优化——《深究MySQL》
- Python面向对象基础示例_创建对象
- MySQL笔记(八)存储过程procedure
- 【工具】之搭建个人博客
- TensorFlow学习笔记--第一节 hello TensorFlow
- openssl 升级到OpenSSL 1.0.1g 修复HEARTBEATS漏洞
- linux select 与 阻塞( blocking ) 及非阻塞 (non blocking)实现io多路复用的示例
- 平衡自行车的原理以及制作方法
- Xcode真机调试 could not lunch failed to get reply to handshake packet
- 输入一个字符串,输出该字符串中字符的所有组合。(腾讯2014笔试附加题)
- IPv6基础知识总结
- pollard_rho
- Android如何做出带有复杂水印的图片
- 程序员电脑组装_解密中国互联网企业创始人,程序员是如何打下半壁江山的?...
- 计算机考研 | 2020我计算机考研为什么会失败+复盘(备战2022)
- Ghost XP SP2下如何安装IIS的解决方案
- f4ck论坛的小游戏(灌水贴)
热门文章
- win10双显卡怎么切换amd和英特尔_win10双显卡怎么切换
- delphi 中文转 ascii编码_【转】Python 中文编码
- 力扣-724 寻找数组的中心索引
- Android setOnPageChangeListener 过时解决
- SQL Server-【知识与实战II】条件查询、比较运算符查询、模糊查询、枚举查询、范围查询、空值查询、多重条件查询
- 7-2 温度转换 (5 分)
- Android开发过程为C文件或者C++文件配置打印Logcat信息
- vs2017安装好后颜色主题、字体、语言包的设置
- 通过数据流处理-微信小程序生成临时二维码
- JAVA中反射机制五(JavaBean的内省与BeanUtils库)