BGP基础
BGP基础知识
⼀、⾃治系统定义
1.⼀组被统⼀管理的路由器或多层交换机
2.它们使⽤相同的IGP和统⼀的COST值来决定如何在AS内部分组【IGP】
3.并且使⽤AS间路由选择协议来决定如何分组到其他AS【BGP】{电信4134 ⽹通9929}
⼆、BGP概述
1.BGP(Border Gateway Protocol,边界⽹关协议)是⼀种⽤于AS(Autonomous System,⾃
)之间的动态路由协议。
2.BGP-4 做为事实上的Internet 外部路由协议标准,被⼴泛应⽤于ISP(Internet Service
vider,因特⽹服务提供商)之间。【参考RFC4271】
三、BGP的特性
1.BGP是⼀种外部⽹关协议(Exterior Gateway Protocol,EGP),与OSPF、RIP 等内部⽹关
协议(Interior Gateway Protocol,IGP)不同,其着眼点不在于发现和计算路由,⽽在于控制路由的传播和选择最佳路由
2.BGP 使⽤TCP作为其传输层协议(端⼝号179),提⾼了协议的可靠性
3.BGP ⽀持CIDR(Classless Inter-Domain Routing,⽆类别域间路由)
4.路由更新时,BGP 只发送更新的路由,⼤⼤减少了BGP 传播路由所占⽤的带宽,适⽤于
在Internet 上传播⼤量的路由信息
5.BGP 路由通过携带AS 路径信息彻底解决路由环路问题
6.BGP 提供了丰富的路由策略,能够对路由实现灵活的过滤和选择
7.BGP 易于扩展,能够适应⽹络新的发展
四、BGP术语
1.BGP发⾔⼈(BGP Speaker)
A 发送BGP 消息的路由器称为BGP 发⾔者(BGP Speaker),它接收或产⽣新的路由信
息,并发布(Advertise)给其它BGP 发⾔者。
B 当BGP 发⾔者收到来⾃其它⾃治系统的新路由时,如果该路由⽐当前已知路由更优、
或者当前还没有该路由,它就把这条路由发布给⾃治系统内所有其它BGP发⾔者。
2.BGP邻居(BGP Neighbor=peer)
A 相互交换消息的BGP 发⾔者之间互称对等体(Peer),若⼲相关的对等体可以构成对
等体组(Peergroup)
3. IBPG与EBGP
1> IBGP(Internal BGP):当BGP 运⾏于同⼀⾃治系统内部时,被称为IBGP
2> EBGP(External BGP):当BGP 运⾏于不同⾃治系统之间时,称为EBGP
五、BGP的消息类型
1. 概述:BGP有5种消息类型:Open、Update、Notification、Keepalive和Route-refresh。
这些消息有相同的报⽂头
2.报⽂头部格式
主要字段释义:
①Marker:16 字节,⽤于标明BGP 报⽂边界,所有⽐特均为“1”
②Length:2 字节,BGP 消息总长度(包括报⽂头在内),以字节为单位
③Type:1 字节,BGP 消息的类型。其取值从1 到5,分别表⽰Open、Update、
Notification、Keepalive 和Route-refresh 消息。负载均衡的理解
3.OPEN报⽂
①Open消息是TCP连接建⽴后发送的第⼀个消息,⽤于建⽴BGP对等体之间的连接
关系
主要字段释义
1> Version:BGP 的版本号。对于BGP-4 来说,其值为4。
2> My autonomous system:本地AS 号。通过⽐较两端的AS 号可以确定是EBGP连接
还是IBGP连接
3> Hold time:保持时间。在建⽴对等体关系时两端要协商Hold Time,并保持⼀致。如
果在这个时间内未收到对端发来的Keepalive 消息或Update 消息,则认
为BGP连接中断
4> BGP identifier:BGP 标识符。以IP 地址的形式表⽰,⽤来识别BGP 路由器
5> Opt Parm Len(Optional Parameters Length):可选参数的长度。如果为0 则没有可选
参数
6> Optional parameters:可选参数。⽤于多协议扩展(Multiprotocol Extensions)等功能4.UPDATE报⽂
①Update消息⽤于在对等体之间交换路由信息。它既可以发布可达路由信息,也可
以撤销不可达路由信息
主要字段释义
1> Unfeasible routes length:不可达路由字段的长度,以字节为单位。如果为0 则说明
没有Withdrawn Routes 字段
2> Withdrawn routes:不可达路由的列表
3> Total path attribute length:路径属性字段的长度,以字节为单位。如果为0 则说明
没有Path Attributes 字段
4> Path attributes :与NLRI 相关的所有路径属性列表,每个路径属性由⼀个TLV
(Type-Length-Value)三元组构成。BGP 正是根据这些属性值来避
免环路,进⾏选路,协议扩展等。
5> NLRI(Network Layer Reachability Information):可达路由的前缀和前缀长度⼆元组
②说明
1> ⼀条Update 报⽂可以通告⼀类具有相同路径属性的可达路由,这些路由放在
NLRI(Network Layer Reachable Information,⽹络层可达信息)字段中
2> Path Attributes 字段携带了这些路由的属性,BGP 根据这些属性进⾏路由的选
择;同时Update 报⽂还可以携带多条不可达路由,被撤销的路由放在
Withdrawn Routes 字段中
5.Notification
①当BGP检测到错误状态时,就向对等体发出Notification消息,之后BGP连接会⽴
即中断
主要字段释义
1> Error code:差错码,指定错误类型。
2> Error subcode:差错⼦码,错误类型的详细信息
3> Data:⽤于辅助发现错误的原因,它的内容依赖于具体的差错码和差错⼦码,记
录的是出错部分的数据,长度不固定
6.Keepalive
BGP 会周期性地向对等体发出Keepalive 消息,⽤来保持连接的有效性。其消息格式中只包含报⽂头,没有附加其他任何字段。
7.Route-refresh
①Route-refresh消息⽤来要求对等体重新发送指定地址族的路由信息
主要字段释义:
1> AFI:Address Family Identifier,地址族标识
2> Res.:保留,必须置0
3> SAFI:Subsequent Address Family Identifier,⼦地址族标识
六、BGP的路由属性
1.公认必遵:所有BGP 路由器都必须能够识别这种属性,且必须存在于Update 消息中。
如果缺少这种属性,路由信息就会出错。
2.公认可选(Well-known discretionary):所有BGP 路由器都可以识别,但不要求必须存在
于Update 消息中,可以根据具体情况来选择。
3.可选过渡(Optional transitive):在AS 之间具有可传递性的属性。BGP 路由器可以不⽀
持此属性,但它仍然会接收带有此属性的路由,并通告
给其他对等体。
4.可选⾮过渡(Optional non-transitive):如果BGP 路由器不⽀持此属性,该属性被忽略,且不会通告给其他对等体
七、路由源属性
1.源属性:ORIGIN 属性定义路由信息的来源,标记⼀条路由是怎么成为BGP 路由的。它
有以下三种类型
①IGP:优先级最⾼,说明路由产⽣于本AS 内
②EGP:优先级次之,说明路由通过EGP 学到
③incomplete:优先级最低,它并不是说明路由不可达,⽽是表⽰路由的来源⽆法确
定。例如,引⼊的其它路由协议的路由信息。
2.AS 路径(AS_PATH)属性
①AS_PATH属性按⼀定次序记录了某条路由从本地到⽬的地址所要经过的所有AS号
②当BGP将⼀条路由通告到其他AS时,便会把本地AS号添加在AS_PATH列表的最
前⾯
③收到此路由的BGP路由器根据AS_PATH属性就可以知道去⽬的地址所要经过的AS
④离本地AS最近的相邻AS号排在前⾯,其他AS号按顺序依次排列
⑤通常情况下,BGP 不会接受AS_PATH 中已包含本地AS 号的路由,从⽽避免了形
成路由环路的可能
⑥同时,AS_PATH 属性也可⽤于路由的选择和过滤。在其他因素相同的情况下,BGP
会优先选择路径较短的路由
⑦在某些应⽤中,可以使⽤路由策略来⼈为地增加AS 路径的长度,以便更为灵活地
控制BGP 路径的选择
⑧通过配置AS路径过滤列表,还可以针对AS_PATH 属性中所包含的AS 号来对路由
进⾏过滤
3.下⼀跳(NEXT_HOP)属性:BGP的下⼀跳属性和IGP的有所不同,不⼀定就是邻居路由器的IP 地址
①BGP发⾔者把⾃⼰产⽣的路由发给所有邻居时,将把该路由信息的下⼀跳属性设置
为⾃⼰与对端连接的接⼝地址
②BGP发⾔者把接收到的路由发送给EBGP对等体时,将把该路由信息的下⼀跳属性
设置为本地与对端连接的接⼝地址
③BGP发⾔者把从EBGP邻居得到的路由发给IBGP邻居时,并不改变该路由信息的
下⼀跳属性
④如果配置了负载分担,路由被发给IBGP邻居时则会修改下⼀跳属性
4.MED(MULTI_EXIT_DISC)
①MED属性仅在相邻两个AS 之间交换,收到此属性的AS⼀⽅不会再将其通告给任
何其他第三⽅AS
②MED属性相当于IGP使⽤的度量值(metrics),它⽤于判断流量进⼊AS时的最佳
路由。
③当⼀个运⾏BGP的路由器通过不同的EBGP对等体得到⽬的地址相同但下⼀跳不同
的多条路由时,在其它条件相同的情况下,优先选择MED值较⼩者作为最佳路由。
5.本地优先(LOCAL_PREF)属性
①LOCAL_PREF 属性仅在IBGP 对等体之间交换,不通告给其他AS。它表明BGP 路由
器的优先级。
②LOCAL_PREF属性⽤于判断流量离开AS时的最佳路由。
③当BGP的路由器通过不同的IBGP对等体得到⽬的地址相同但下⼀跳不同的多条路
由时,将优先选择LOCAL_PREF属性值较⾼的路由。
6.团体属性(COMMUNITY):团体属性⽤来简化路由策略的应⽤和降低维护管理的难度。它是⼀组有相同特征的⽬的地址的集合,没有物理上的边界,
与其所在的AS ⽆关。
①INTERNET:缺省情况下,所有的路由都属于INTERNET 团体。具有此属性的路由可
以被通告给所有的BGP 对等体。
②NO_EXPORT:具有此属性的路由在收到后,不能被发布到本地AS之外。如果使⽤
了联盟,则不能被发布到联盟之外,但可以发布给联盟中的其他⼦
AS
③NO_ADVERTISE:具有此属性的路由被接收后,不能被通告给任何其他的BGP 对等
④NO_EXPORT_SUBCONFED:具有此属性的路由被接收后,不能被发布到本地AS 之外,也不能发布到联盟中的其他⼦AS
⼋、BGP同步问题
1.概述:
①同步是指IBGP和IGP之间的同步,其⽬的是为了避免出现误导外部AS路由器的现

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。