当前位置:首页 >> 信息与通信 >>

BGP 学习宝典


BGP 学习宝典

Tan Fei 2011年12月

目 录 Contents

BGP概述 BGP工作原理 BGP报文详解 BGP选路

■ BGP概述 ■ BGP工作原理 ■ BGP报文详解 ■ BGP选路

BGP协议的产生
■ 网络收敛状态,实现全网信息可

达 ■ 路由条目数量惊人(一台路由拥有10万乃至100万路由条目) ■ 如果网络发生中断,或者不断的变化,对整个互联网造成的 巨大动荡,最终造成路由信息不同步; ■ 互联网中,一个网络的中断与恢复,没有必要通告给网络中 数以万计的路由器 ■ 此外 □ 网络中的路由需要实施路由策略 □ 网络中需要部署MPLS VPN

自治系统
■ 什么是自治系统(AS) 自治系统指由同一个技术管理机构管理、使用内部路由策略的一些路由器的 集合。每个自治系统都有唯一的自治系统编号。 自治系统的编号范围是1到65535,其中1到65411是注册的因特网编号, 65412到65535是私有编号。 ■ 为什么引入自治系统这一概念? 引入自治系统的基本思想就是通过不同的编号来区分不同的自治系统。 AS将一台路由器的路由更新限制在一定的范围内,最终达到收敛的状态 ■ 自治系统内部的路由协议 —— IGP 如OSPF、IS-IS、RIP、EIGRP(cisco专有) ■ 自治系统之间的路由协议 —— BGP 如:EGP、BGP

BGP 协议基本思想
不采用RIP OSPF RIP、OSPF RIP OSPF的原因: RIP记录的只有下一跳,没有真正定义到目的地的完整路径,RIP跳数上 限只有16,不适合较大规模网络 OSPF的LSDB随网络规模的增加成几何数增长。

BGP的提出是面向AS之间的路由选择。BGP是基于路径向量路由的思想, 但从设计上避免了环路的产生。BGP要给出到目的地的完整路径。不关 心跳数、量度,而是关心所要经过的自治系统。

BGP协议基本思想
■ BGP是作为EGP路由协议,主要用来在AS之间传递路由信息 ■ 在AS之间是一种距离矢量的路由协议,应用特定的属性避免环路的发生 ■ 路由信息携带丰富的属性 ■ 传送协议:TCP,端口号179 ■ 支持CIDR(无类别域间选路) ■ 路由更新:只发送增量路由信息 ■ 丰富的路由过滤和路由策略

■ BGP概述 ■ BGP工作原理 ■ BGP报文详解 ■ BGP选路

BGP 工作机制

AS1

AS2

AS3

STUB AS AS5 AS4

多出口AS 多出口

传输AS 传输

AS6

AS7

BGP 问题?
1、既然BGP用于AS之间的通信,为什么BGP对等体还有内外之分呢? IBGP用于承载外部EBGP更新,使它可以在AS内部通过BGP传输。 2、为什么在有IBGP的情况下,还需要IGP呢? 需要IGP解析BGP对等体的可达性,保证TCP连接可以建立,IBGP关系也可以建立

BGP数据结构:
BGP邻居表:记录BGP对等体信息 BGP表:记录到达目标网络所有的路径信息,以及每条BGP更新的属性 路由表:到达目标网络的最佳路由

BGP使用原则
多条路径时,BGP Speaker 选择最优的路径给自己使用。 BGP Speaker 只把自己使用的路由通告给相邻体。 BGP Speaker把从EBGP获得的路由向所有相邻体通告(包括EBGP和IBGP)。 BGP Speaker从IBGP获得的路由不向它的IBGP相邻体通告。 BGP Speaker从IBGP获得的路由是否向它的EBGP相邻体通告要看IGB与BGP 的同步情况而定。 连接一建立,BGP Speaker把自己所有的BGP路由通告给新的相邻体。

协议报文
报文名称 OPEN 作用是什么 协商BGP邻居的各项参数, 建立邻居关系 进行路由信息的交换 报告错误,中止邻居关系 NOTIFICATION 维持邻居关系 为保证网络稳定,触发更新 路由的机制 什么时候发包
通过TCP建立BGP连接,发送 open报文 连接建立后,有路由需要发送 或路由变化时,发送UPDATE 通告对端路由信息 当BGP在运行中发现错误时, 要发送NOTIFICATION报文通 告BGP对端 定时发送KEEPALIVE报文以保 持BGP邻居关系的有效性 当路由策略发生变化时,触发 请求邻居重新通告路由

UPDATE

KEEPALIVE Route-refresh

邻居状态机
Peer状态名称 Peer状态名称 Idle 发什么包 尝试建立TCP连接 在做什么 开始准备TCP的连接并监视远程peer启动 TCP连接,启用BGP时,要准备足够的资源 正在进行TCP连接,等待完成中,认证都是 在TCP建立期间完成的。如果TCP连接不上 则进入Active状态,反复尝试连接。 反复尝试TCP连接, TCP连接建立已经成功,开始发送Open包, Open包携带参数协商对等体的建立。 参数、能力特性协商成功,自己开始发送 Keepalive包,等待对方的Keepalive包。 已经收到对方的Keepalive包,双方能力特 性一致,开始使用Update通告路由信息。

Connect Active OpenSent OpenConfirm Established

发TCP包 发TCP包 发Open包 发Keepalive包 发Update包

BGP协议状态机 - 建立邻居过程
TCP connection fails Active Connect Others Others Start Connect-Retry timer expiry TCP connection fails

TCP connection setup TCP connection setup Open-sent Error Error

Idle

Error

Open-confirm KeepAlive timer expiry

Established KeepAlive packet received

1. KeepAlive timer expiry 2. Update received 3. KeepAlive received

■ BGP概述 ■ BGP工作原理 ■ BGP报文详解 ■ BGP选路

BGP报文详解

■ Marker:16字节,用于标明 BGP报文边界,所有比特均为“1” ■ Length:2字节,BGP消息总长度(包括报文头在内),以字节为单位,从Marker 算起。 ■ Type:1字节,BGP消息的类型。其取值从 1到 5,分别表示 Open、Update、 Notification、Keepalive 和 Route-refresh 消息。

BGP报文详解
Open消息 消息 Update消息 消息 Keepalive消息 消息 Notification消息 消息 Router-refresh消息 消息 其他BGP特性 特性 其他

Open消息

■ Version:BGP的版本号。对于BGP-4来说,其值为4。 ■ My autonomous system:本地AS号。AS号可以确定是EBGP连接还是IBGP连接。 ■ Hold time:保持时间。在建立对等体关系时两端要协商 Hold time,并保持一致。 如果在这个时间内未收到对端发来的Keepalive消息或Update消息,则认为BGP连 接中断。RFC规定两种实现,一种采用本地配置和收到的OPEN较小值进行协商,不 过这个值为3。另一种是如果hold time不一致则断开连接。 ■ BGP identifier:BGP标必须为0或者最小识符。以IP地址的形式表示,用来识别BGP 路由器。 ■ Opt Parm Len(Optional Parameters Length):可选参数的长度。如果为0则没 有可选参数。 ■ Optional parameters:可选参数。用于多协议扩展(Multiprotocol Extensions) 等功能。

Open消息-Optional parameters

■ 该字段为TLV格式,总长度在Opt Parm Len中。RFC1711中只定义了一种 认证格式parameters,type为1

Auth. Code Authentication Data
■ ■

Auth.Code:是指认证系统 Authentication Data:该部分包括认证数据,长度由code决定。

Open消息-Capabilities Advertisement【CA】



Capabilities advertisement:Optional Parameter type为2,结构为Code、length、 Value,也是个TLV结构。该部分的作用是向BGP对等体通告所支持的Capabilities,以 便进行协商。 如果对端不支持CA协商,则在收到包含CA属性OPEN报文后,回应一个带有error的 NOTIFICATION message,其中subcode字段置为Unsupported。之后会重新进行 BGP连接的发起,这次发送的OPEN报文中不携带CA属性。 如果对端支持部分CA,也会在受到CA属性后,回应带有error的NOTIFICATION message,其中subcode字段置为Unsupported。并且消息中包括其所不支持的CA类 型。此时并不需要重新进行BGP的连接。 Capability Code value:0为保留,RFC2434中规定1~63为IETF规定,64~127用作 IANA,采用FCFS的策略定义。128~255为私有。







Multiprotocol Extensions BGP

■ AFI:协议族标记,0和65535保留,1为IPv4,2为IPv6,4为HDLC,10为 X.25,11为IPX ■ Reserved:保留位,全0。 ■ SAFI:全称为Subsequent Address Family Identifier(并发地址族标识):本字段 携带包含在属性中的网络层可达信息(NLRI)类型的补充信息。主要取值如下 □ 1:网络层可达信息NLRI为单播unicast □ 2:网络层可达信息NLRI为组播multicast □ 3:网络层可达信息NLRI为both(单播和组播)

BGP扩展——MP-BGP
■ 传统的BGP-4只能管理IPv4单播路由信息,对于使用其它网络层协议(如IPv4 组播,IPv6 单播、组播)的应用,在跨自治系统传播时就受到一定限制。为了提供对多种网络层协议的 支持,IETF对BGP-4进行了扩展,形成MP-BGP。 所有的用户私有网络在被BGP 传递时,都加入了RD(路由区分符),BGP 要支持这些RD 的传递,也需要多协议的BGP(MP-BGP) BGP-4使用的报文中,与IPv4地址格式相关的三条信息都由Update报文携带,这三条信 息分别是:NLRI、路径属性中的 NEXT_HOP、路径属性中的 AGGREGATOR(该属性中 包含形成聚合路由的 BGP发言者的IP地址)。为实现对多种网络层协议的支持,BGP-4需 要将网络层协议的信息反映到NLRI及NEXT_HOP。MP-BGP中引入了两个新的路径属性 □ MP_REACH_NLRI:Multiprotocol Reachable NLRI,多协议可达NLRI。用于发布 可达路由及下一跳信息。 □ MP_UNREACH_NLRI:Multiprotocol Unreachable NLRI,多协议不可达NLRI。用 于撤销不可达路由。 这两种属性都是可选非过渡(Optional non-transitive)的,因此,不提供多协议能力 的 BGP发言者将忽略这两个属性的信息,不把它们传递给其它邻居。 ■ MP-BGP采用地址族(Address Family)来区分不同的网络层协议。目前,系统实现了多种 MP-BGP扩展应用,包括对VPN的扩展、对IPv6的扩展等。

■ ■

BGP扩展—— MP-BGP
■ 携带MP_REACH_NLRI属性的UPDATE消息必须同样携带ORIGIN和AS_PATH 属性(存在于EBGP和IBGP交换中)。 ■ 在IBGP交换这样一个消息时,还必须携带LOCAL_PREF属性。如果这个消息时 来自于外部“对端”,本地系统应该检查在AS_PAHT属性最左边标记的AS是否 与发送这个消息的“对端”的AS号码相等。否则本地系统应该发送携带错误码 为UPDATE消息出错的NOTIFICATION消息,错误子码应该设置为错误 AS_PATH(Malformed AS_PATH)。 ■ MP-BGP使用了扩展属性MP_REACH_NLRI。一个扩展之后的NLRI,增加了地 址族的描述,以及私网lable和RD。

Open 消息

BGP报文详解
Open消息 Update消息 Keepalive消息 Notification消息 Router-refresh消息 其他BGP特性

Update消息

■ Update消息用于在对等体之间交换路由信息,它既可以发布可达路由,也 可以撤销不可达路由,一条Update报文可以通告一类具有相同路径属性的 可达路由,这些路由放在NLRI字段。

□ Unfeasible routes length:不可达路由字段的长度,以字节为单位。如果为0 则说明没有Withdrawn Routes字段。 □ Withdrawn routes:不可达路由的列表。 □ BGP identifier:BGP标识符。以IP地址的形式表示,用来识别BGP路由器。 □ Total path attribute length:路径属性字段的长度,以字节为单位。如果为 0 则说明没有 NLRI字段。 □ Path atributes:与NLRI相关的所有路径属性列表,每个路径属性由一个TLV构 成。BGP正是根据这些属性值来避免环路,进行选路,协议扩展等。 □ NLRI(Network Layer Reachability Information):可达路由的前缀和前缀长 度二元组。

Update 消息

Update消息-withdrawn routes
Attribute Flag ■ Withdrawn routes部分携带需要撤销的路由信息,格式是<length,prefix> 二元组。 ■ Length: 表示所要取消的路由掩码长度,如果为0则表示默认路由。Length其 实是我们常用的位数,后面prefix的长度为length/8取整。 ■ Prefix:长度可变,只要能表达清楚足够的前缀信息即可,后续的尾部可有可无 。长度可变,但最小单位必须为字节。

Update消息 消息-NLRI 消息
Attribute Flag ■ NLRI : Network Layer Reachability Information ■ 该这是一个或者多个(长度、前缀)用来公布IP地址前缀和前缀长度的字节组。 ■ Length:路由前缀长度,其实是我们常用的前缀位数,0表示默认路由。 ■ Prefix:长度可变,只要能表达清楚足够的前缀信息即可。该字段长度不定,但最 小单位必须为字节。如果公布了地址206.193.160.0/19,长度部分就是/19,前缀部 分是206.193.160.

■ 注意:

□ 虽然在NLRI字段中可能会包含多个前缀,但是每个更新消息也只描述了一条BGP路由 (因为路径属性只描述一条路径,但是该路径可能会到达多个目的地)

Update消息-Path Attributes

■ Path Attributes 属性为可变长度,每一个update消息中都存在。格式 为attrib<T,L,V>的形式。 Flag字段在attrib type之前。 ■ Attribute type 共2bytes ,前8位为flag,后8位为type code
Bits: 含义 0 1为option表示可选,0为well-know公认。 该位代表路由器必须识别该路由属性。

0

1

2

3

4

5 flag

6

7

1 1为transitive,0为nontransitive,表示可传递性,如果前一flag为well-know则 此 处必须为1。该位表示路由器是否将该路由属性传递下去发给其他BGP对等体。 2 1为partial,0为complete。表示transitive属性是否为部分支持。well-known attributes或者optional non-transitive attributes,则此位必须为0。 3 Extended Length 1表示后续Attri length字段长度为2 字节,0表示长度为1字节。 4~7 保留,目前必须为全0

Update消息 路由属性 消息-路由属性 消息
■ 公认必遵(Well-known mandatory):所有 BGP路由器都必须能够识 别这种属性,且必须存在于 Update消息中。如果缺少这种属性,路由信 息就会出错。 ■ 公认可选(Well-known discretionary):所有 BGP路由器都可以识别 ,但不要求必须存在于 Update消息中,可以根据具体情况来选择。 ■ 可选过渡(Optional transitive):在 AS之间具有可传递性的属性。 BGP路由器可以不支持此属性,但它仍然会接收带有此属性的路由,并通 告给其他对等体。 ■ 可选非过渡(Optional non-transitive):如果 BGP路由器不支持此属 性,该属性被忽略,且不会通告给其他对等体。

Update消息-Attribute type code
属性名称
ORIGIN AS_PATH NEXT_HOP MULTI_EXIT_DISC (MED) LOCAL_PREF ATOMIC_AGGREGATE AGGREGATOR COMMUNITY ORIGINATOR_ID CLUSTER_LIST MP_REACH_NLRI MP_UNREACH_NLRI EXTENDED_COMMUNITY AS4_PATH AS4_AGGREGATOR

type code
01 02 03 04 05 06 07 08 09 10 14 15 16 17 18

类别
公认必须遵循 公认必须遵循 公认必须遵循 可选非过渡 公认可选 公认可选 可选过渡 可选过渡 可选非过渡 可选非过渡 可选非过渡 可选非过渡 可选过渡 可选过渡 可选过渡

Attributes — ORIGIN

■ ORIGIN(type code 1):公认必须遵循

□ 0:IGP协议从AS内部学到的路由 【network手工注入】 □ 1:EGP协议从外部学来的路由 □ 2:INCOMPLETE【将IGP重分布进入BGP表】

Attribute lengt Flag h

lengt AS_numbers(2bytes*N) h

Attributes — AS_PATH

■ AS_PATH (Type Code 2):公认必须遵循

□ 由许多AS path段组成,每个AS段是由三元组<path segment type, path segment length, path segment value>组成 □ Path segment type:1个字节,1表示update message传递经过的AS集合是无序的 ,2表示有序。 □ Path segment length:1个字节,表示path segment Value中所携带的AS的个数, 注意这里不是Value的长度 □ Path segment value:N个字节。一个或者多个AS number号,每个AS number占用 2个字节。

Attribute lengt Flag h

lengt AS_numbers(2bytes*N) h

Attributes — AS_PATH
■ AS_PATH的取值定义: □ □ □ □ AS_SET: 一组无序的AS组合【路由聚合】 AS_SEQUENCE: 路由穿过的有序的AS序列 AS_CONFED_SEQUENCE: BGP联盟中用到。指联盟内部路由 穿过的有序AS序列。【联盟】 AS_CONFED_SET: BGP联盟中使用。指联盟内部路由穿过的无 序AS组合。【联盟】

Attributes — AS_PATH
■ AS_PATH属性:按一定次序记录了某条路由从本地到目的地址所要经过的所 有AS号。当BGP将一条路由通告到其他AS时,便会把本地AS号添加在 AS_PATH列表的最前面。 ■ 收到此路由的BGP路由器根据AS_PATH属性就可以知道去目的地址所要经过 的AS。离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列。 ■ BGP发言者在发布源路由时AS_PATH必须满足如下的要求:
□ 发布给自治系统内部的路由,AS_PATH必须为empty。即length字段为0 □ 发布给邻居自治系统的路由,AS_PATH中必须填上自己的AS号,并且只有一个AS 号。

■ 通常情况下,BGP不会接受AS_PATH中已包含本地AS编号的路由,从而避免 了形成路由环路的可能。 ■ BGP水平分割:考虑到在iBGP之间的路由传递也加入防环机制,因而强制将 BGP 路由在AS 内部只传一跳。

□ 具体操作为: 一台BGP 路由器从eBGP 邻居收到路由,发给iBGP邻居之后,iBGP 邻居收到后就不能再传给其它任何iBGP邻居,只能传递给eBGP 邻居。

EBGP使用AS-Path防止循环
AS100 R4 R5 18.0.0.0/8 AS-path(300) ( ) IBGP R3 18.0.0.0/8 AS-path(100,200,300) ( , , ) AS300 18.0.0.0/8

18.0.0.0/8

EBGP

EBGP

AS-path(200,300) ( , )

18.0.0.0/ AS-path(300) ( ) 8

R1 R2 AS200

AS_PATH应用 — BGP联盟
■ 联盟(Confederation)是处理AS内部的IBGP网络连接的另一种方法,它将 一个自治系统划分为若干个子自治系统,每个子自治系统内部的IBGP对等体 建立全连接关系,子自治系统之间建立EBGP连接关系。 ■ 在不属于联盟的BGP发言者看来,属于同一个联盟的多个子自治系统是一个整 体,外界不需要了解内部的子自治系统情况,联盟ID就是标识联盟这一整体 的自治系统号。 ■ BGP发布者在向同一个联盟内部其他AS成员发布路由时MED和NEXT_HOP保 持不变。 ■ BGP在同一个联盟内部,可以向不同的AS成员发送LOCAL_PREFERENCE属 性。 ■ 联盟的缺陷是:从非联盟方案向联盟方案转变时,要求路由器重新进行配置, 逻辑拓扑也要改变 ■ 在大型BGP网络中,路由反射器和联盟可以被同时使用。 ■ 联盟依靠AS_PATH字段实现。

BGP联盟
AS200 RTA 30.0.0.2 30.0.0. 1 RTB 20.0.0. 1 40.0.0.1 AS300 RTG

20.0.0.2

RTD AS65060

AS65050 40.0.0.2 RTC AS100 RTE RTF

BGP联盟
■ 当BGP发布者需要通告(传播)一个路由时 □ 同一个自治系统内部不需要修改AS_PATH □ 通告给同一个联盟内部其他AS成员 ? 如果AS_PATH中第一个字段是AS_CONFED_SEQUENCE,那么发布者 需要把自己的AS number放到该序列的最后 ? 如果AS_PATH中第一个字段不是AS_CONFED_SEQUENCE,那么发布 者需要在前面添加一个新的AS_CONFED_SEQUENCE字段,并填上自 己的联盟ID □ 通告给不同的联盟成员 ? 如果AS_PATH中第一个字段是AS_CONFEDSEQUENCE,那么删去所有 的该字段和其后的AS_CONFED_SET字段 ? 如果AS_PATH中第一个字段是AS_SEQUENCE,那么发布者需要把自己 的联盟ID添加到序列的最后 ? 如果AS_PATH中第一个字段不是AS_SEQUENCE或者已经移除了 AS_CONFED_SEQUENCE以及AS_CONFED_SET,那么发布者需要在 前面添加一个新的AS_SEQUENCE字段,并且填上自己的联盟ID

BGP联盟
■ 当BGP发布一个源路由的时候,遵循规定总结: □ 向同一个联盟同一个AS成员内部发布路由时,必须包含empty AS_PATH,即AS_PATH中的length字段为0 □ 向同一个联盟其他AS成员发布路由时,必须包含自己的成员AS号添 加到AS_CONFED_SEQUENCE字段中 □ 向其他联盟成员发布路由时,必须包含自己的联盟ID添加到 AS_SEQUENCE字段中

Attributes — MED

■ MULTI_EXIT_DISC (Type Code 4):可选非过渡

□ Type为04,length字段为04。Value为4字节的非负整数 □ MED属性仅在相邻两个AS之间交换,收到此属性的AS一方不会再将其通告给任何其他 第三方AS。 □ MED属性相当于IGP使用的度量值(metrics),它用于判断流量进入AS时的最佳路由 。当一个运行BGP的路由器通过不同的EBGP对等体得到目的地址相同但下一跳不同的 多条路由时,在其它条件相同的情况下,将优先选择MED值较小者作为最佳路由。 □ 通常情况下,BGP只比较来自同一个AS路由的MED属性值

Attributes — LOCAL_PREF

■ LOCAL_PREF (Type Code 5):公认可选 □ Type为05,length字段为04。Value为4字节的非负整数 □ LOCAL_PREF属性仅在IBGP对等体之间交换,不通告给其他AS。它表明BGP 路由器的优先级。 □ 如果AS收到其他AS发来的LOCAL_PREF属性则必须忽略。 □ LOCAL_PREF属性用于判断流量离开AS时的最佳路由。当BGP的路由器通过 不同的IBGP对等体得到目的地址相同但下一跳不同的多条路由时,将优先选 择LOCAL_PREF属性值较高的路由。

Attributes — 路由聚合



ATOMIC_AGGREGATE (Type Code 6):公认可选 □ Type为06,length字段为0。 □ 当BGP发言者对本地路由进行聚合以后,发布该路由时必须携 ATOMIC_AGGREGATE 属性。 □ 其他BGP对等体收到带有ATOMIC_AGGREGATE的路由时,再把该路由发布给其他 BGP邻居时也必须携带该属性。 □ 在BGP发言者发布携带有ATOMIC_AGGREGATE属性的路由时,其NLRI中不能携带比 之更精确的路由,也就是必须进行路由聚合。例如: ? 1.1.1.1/16如果有自动聚合属性,则发布该属性时NLRI中不能有1.1.1.1/24这样更 为精确的prefix □ BGP收到一条带有聚合属性的路由,也必须确认其是否存在环路,因为聚合的原因,所 以该路由经过的一些AS可能并没有列在AS_PATH列表中

Attributes — 路由聚合
■ 路由聚合: ■ 拥有庞大路由表的BGP,如果可以尽可能的减少路由表的条目,缩小路由表的空间,可 以使用路由表的汇总来实现。在BGP中,被称为路由聚合。 Automic-aggregate属性的存在,在默认情况下,汇总路由会将所有明细路由的AS-PATH 去掉。当把汇总路由发送给它的邻居之后,由于AS-PATH丢失,会造成路由环路。 AS-SET命令,可以让汇总路由保留所有的明细路由的AS-PATH。拥有AS-SET的汇总路由 不会丢失路径,也不会携带Automic-aggregate属性。 AS-SET可能包含多个AS,但即使一个AS-SET中有多个AS,但在计算AS-PATH长度时,置 备算作一个AS。

■ ■ ■

■ 创建路由汇总的BGP路由器被认为是该路由的起源,汇总路由在该路由器上为本 地路由

Attributes — 路由聚合

Attributes — Community

■ ■ ■

COMMUNITIES(Type 08):可选过渡。团体是共享相同特性的一组目的地(也就是前缀)。 每一个目的地都可以属于多个团体,所有的具有团体属性的前缀属于属性中的团体列表内。 团体属性是一组序列,每一组为4个字节。 一个路由可以有多个团体属性。团体属性分为公认和私有的Community。 □ □ □ □ NO_ADVERTISE:不通告给任何的BGP对等体; NO_EXPORT:不通告给任何EBGP邻居,将路由在本AS内部传递; INTERNET:可以通告给所有的其他BGP对等体。 LOCAL-AS:表示本路径不发布到本AS 外部,当配置联盟时,本路径不发布给其它的 自治系统或子自治系统。

■ 公认Community

■ 私有Community

□ 使用私有Community ,可以将特定的路由设置私有 Community,并将其传递给所有邻 居,最终所有路由器都对拥有该私有Community 的路由配置策略。 □ 并且对大量路由设置私有Community 只需要在一台路由器上完成 后,发给所有邻居即 可,私有Community 可以减少网络中路由器对相同路由的匹配工作,这就是标签的效果

Community团体属性使用
■ 私有团体是对特定用户有意义的数字。可以理解为BGP路由的自定义标签。 ■ 四个字节,为增加可读性,可配置为aa:nn,一般aa建议为AS号,nn代表业 务。 ■ 默认路由器支持单个32bit格式,若要支持AS:NN格式,必须开启BGPCommunity New-Format 功能。 ■ 缺省在peer之间不传递community属性,必须针对特定peer使用【也就是 BGPCommunity必须明确要求传递,否则另据收不到相应Community】 ■ neighbor ××××send-community才能将community属性发送出去。

团体扩展属性 — RT(路由对象)

■ EXTENDED_COMMUNITY为可选过渡,TYPE为16 ■ 扩展的community有如下两种格式:其中type字段为0x0002或者0x0102时表 示RT。 ■ 一个扩展团体属性中可以携带多个RT ■ RT 是BGP 扩展团体属性,分为输入和输出两种。 □ 可以理解为什么样的RD 值可以 进入该VRF 或者什么样RD值的路由将被该 VRF导出。 □ 如果路由的RD 值和RT 所允 许的值不匹配,将不能进入或者出去的,这样 不同RD 的用户也就不能通信,想要 通信,就配置为相同的RD。

Attributes — CLUSTER_LIST



CLUSTER_LIST (Type Code 10):可选非过渡 □ Code为10,length字段为CLUSTER_LIST的长度,每个Cluster占用4bytes。 □ 路由反射器和它的客户组成一个集群(Cluster) □ 当路由反射器RR反射路由的时候必须将本地的群ID加入到CLUSTER_LIST中。如果此 时CLUSTER_LIST为空,那么必须创建CLUSTER_LIST属性。 □ 通过该属性, Reflector 在将路由反射出去时,都会写入自己的Cluster ID,在路由 发送到其它Cluster 后,其它Reflector 在写入自己的Cluster ID 时,还会保留之前的 Cluster ID,就像保留AS_Path 一样,如果收到一条路由带有与自己相同的Cluster ID,就说明路由发回了原来的Cluster,则认为环路产生,将接收到的路由丢失,以此 来防止环路。

Attributes — ORIGINATOR_ID

■ ORIGINATOR_ID (Type Code 9):可选非过渡

□ Type为09,length字段为04。Value为4字节的非负整数 □ 该属性是在路由反射器RR反射路由的时候被创建。

□ BGP发布者不能够再次创建该属性,如果该属性已经存在 □ 在路由是从别的AS 发过来时,Originator ID 就是AS 边界接收的第一台BGP 路由器

BGP-路由反射器
■ 为保证IBGP对等体之间的连通性,需要在IBGP对等体之间建立全连接关系。假 设在一个AS内部有n台路由器,那么应该建立的IBGP连接数就为n(n-1)/2。当 IBGP对等体数目很多时,对网络资源和CPU资源的消耗都很大。 ■ 解决上述问题的方法很多,但是在解决上述主要问题的同时还必须满足如下几个 标准: □ 简单:必须易于配置同时也易于理解 □ 容易转变:在不改变拓扑和自治系统的前提下,能够将全连接的拓扑转变。 “联盟”技术在这点上就做得不够好,对管理者来说是不幸的。 □ 兼容性:必须保证在IBGP发言者之间的连接只有原自治系统或者域全连接的 一部分的情况下,不丢失任何的路由信息。 ■ 实现技术就是 —— BGP Route Reflector

BGP- 路由反射器
RR

nonclient AS200 client AS100 client

RR 从clients和nonclients收路由更新后路由反射的规则 ? 按照BGP的基本选路原则,选出最佳路由,只通告最佳路由 ? 从 client收到的更新,反射到 nonclients 和 clients ? 从 nonclient收到的更新,反射到 clients ? 从 EBGP邻居收到的更新,反射到 所有nonclients 和 clients

BGP — 路由反射器
AS100 RA EBGP Route reflector RF Non-client IBGP RE RD RC client AS200 client client

client RB

BGP — 路由反射器总结
■ ■ RR通过引入Originator –id 和Cluster-list防止循环 Originator –id 可选非传递属性 □ 由RR建立,使用始发路由器的router-id,收到路由,发现自己的router-id则丢弃 Cluster-list 可选非传递属性 □ 由update经过的cluster-id组成, cluster-id的值一般使用RR的router-id,值不同认 为是两个不同的簇,RR收到cluster-list中有自己的cluster-id,则丢弃。 RR可能导致单点故障,冗余时,可路由反射器冗余备份配置 bgp cluster-id ×××× 指定cluster-id,多台冗余备份的RR设备设置相同的cluster-id 配置反射器 neighbor ×××× route-reflector-client RR可以嵌套



■ ■ ■ ■

BGP报文详解
Open消息 Update消息 Keepalive消息 Notification消息 Router-refresh消息 其他BGP特性

Keepalive消息

■ BGP使用keepalive消息来维护邻居关系。该消息类型为04,消息格式 中只包含报文头,没有任何其他字段。 ■ BGP的holder timer内如果没有收到对端发来的keepalive则邻居断开。 ■ keepalive timer最大应该不超过holder timer的三分之一。最小应该大 于等于1秒。 ■ 如果holder timer为0,那么keepalive报文不能周期性的发送。 ■ Keepalive 报文只有报文头

Keepalive 消息

BGP报文详解
Open消息 Update消息 Keepalive消息 Notification消息 Router-refresh消息 其他BGP特性

Notification消息

■ 当BGP检测到错误状态时,就向对等体发出Notification消息,之后 BGP连接会立即中断 ■ Error Code:差错码,指定错误类型,1bytes。 ■ Error Subcode:差错子码,错误类型的详细信息,1bytes ■ Data:用于辅助发现错误的原因,它的内容依赖于具体的差错码和差错 子码,记录的是出错部分的数据,长度不固定。

Notification消息—Error code
Error Code 1 2 3 4 5 6 Name Message Header Error OPEN Message Error UPDATE Message Error Hold Timer Expired Finite State Machine Error Cease Sub Code 1 2 3 4 5 6 7 8 Sub Code 1 2 3 4 5 6 7 OPEN Message Error subcodes Unsupported Version Number Bad Peer AS Bad BGP Identifier Unsupported Optional Parameter Authentication Failure Unacceptable Hold Time Unsupported Capability Sub Code 1 2 3 Message Header Error Connection Not Synchronized Bad Message Length Bad Message Type 9 10 11 Update Message Error subcodes Malformed Attribute List Unrecognized Well-known Attribute Missing Well-known Attribute Attribute Flags Error Attribute Length Error Invalid ORIGIN Attribute AS Routing Loop Invalid NEXT_HOP Attribute Optional Attribute Error Invalid Network Field Malformed AS_PATH

Notification消息

BGP报文详解
Open消息 Update消息 Keepalive消息 Notification消息 Router-refresh消息 其他BGP特性

Router-refresh消息

■ RR消息的type为5,length也固定为23字节。 ■ 一般AFI 0001为IPv4,SAFI 01为单播。 ■ Reserved:保留位,全0。 ■ 设备收到RR消息后会重新发送RR中指定的协议族的update消息给邻居对等体。 ■ RR消息用来要求对等体重新发送指定地址族的路由信息。 ■ RR能力在OPEN消息中Capabilities code为02。 ■ 设备在能力通告的时候必须确定对方支持RR以后才能发送RR消息,由于RR中设 计AFI和SAFI的字段,所以在CA通告时,所发送的capability advertisement必 须包括至少一种MBGP的能力,否则会发送NOTIFICATION终止连接。

BGP报文详解
Open消息 Update消息 Keepalive消息 Notification消息 Router-refresh消息 其他BGP特性

BGP 同步
■ 从IBGP对等体学习到的路由在成为最佳路径并向EBGP对等体通告之前必须被 IGP知道。 ■ 为防止一个AS(不是所有的路由器都运行bgp)内部出现路由黑洞,即向外部通 告了一个本AS不可达的虚假的路由。 ■ 同步 是IBGP和IGP的同步,两者都有相同的路由就叫同步 ■ 可以关闭同步 -- no synchronization

BGP同步
AS100 RA RE AS300 网络N 网络

EBGP IBGP RD

EBGP

RB RC AS200

场景: 场景: Transit AS

■ BGP概述 ■ BGP工作原理 ■ BGP报文详解 ■ BGP选路

BGP路由选路原则 路由选路原则
1.Weight属性 1.Weight属性 Preference属性 2.Local Preference属性 3.本地路由始发方式 3.本地路由始发方式 4.AS-Path长度 4.AS-Path长度 5.Origin属性 5.Origin属性 6.MED属性 6.MED属性 7.EBGP优于IBGP 7.EBGP优于IBGP 优于 8.到达Next-hop的代价 8.到达Next-hop的代价 到达Next 9.执行等价负载均衡 9.执行等价负载均衡 10.EBGP路由接收的顺序 10.EBGP路由接收的顺序 11.路由的Router11.路由的Router-ID 路由的Router 12.Cluster-list长度 12.Cluster-list长度 13.配置的BGP Peer指定地址 13.配置的BGP Peer指定地址 配置的

我的记忆方法 :M-E-M-O-R-I-A-L

附件:BGP表解释

星网锐捷网络有限公司 地址:北京海淀区复兴路29号中意鹏奥大厦东塔A座11层 邮编:100036 Office Tel: 010-51718888 Mobile Tel: 13888888888 Fax: 010-51718888 E-Mail: xxx@ruijie.com.cn


相关文章:
BGP的决策过程
BGP的决策过程_计算机硬件及网络_IT/计算机_专业资料...INCOMPLETE:网络层可达信息通过别的方式学习 在路由...应届生求职季宝典 英文个人简历模板 创意简历模板汇集...
BGP邻居建立过程及报文详解
通过 IGP 协议学习到的路由,再通过 network 发布到 BGP 中 纯动态注入:通过把...CET四六级高分通关宝典 2014年6月大学英语六级考试真题及答案 2014年12月大学...
BGP属性1
一条从 IBGP 邻居学习到的路由在进入到 IGP 路由表或者公布给 BGP 对端之前...CET四六级高分通关宝典 2014年6月大学英语六级考试真题及答案 2014年12月大学...
BGP邻居建立与路由发布
即路由器不把 IBGP 学习到的路由传给其他IBGP邻居 BGP的路由发布可以通过静态...CET四六级高分通关宝典 2014年6月大学英语六级考试真题及答案 2014年12月大学...
BGP的团体属性
CET四六级高分通关宝典 2014年6月大学英语六级考试真题及答案 2014年12月大学...经典BGP学习笔记 32页 免费 BGP属性 33页 免费 BGP路由反射器、联邦和团......
BGP理解之防止环路
BGP 如果这样规定的话, 在 IBGP 邻接学习来的路由不发布到其他 IBGP 邻接,不...应届生求职季宝典 英文个人简历模板 创意简历模板汇集 推理型题分析与总结文档...
BGP路由反射器簇ID的实验
BGP路由反射器簇ID的实验_计算机硬件及网络_IT/计算机...而且,RR 从外部对等体学习到的路由信息,在反射给...2015国考申论押密试卷及答案 2015国考面试通关宝典89...
BGP的路由反射器
(3)RR 也会将自己从客户端学习过来的 bgp 路由向非客户端通告。 ) 不会向...2015国考面试通关宝典67份文档 九妖笑话 2014年笑话大全之让你笑个够 儿童笑话...
程风雷MPLS_VPN PE-CE路由协议 OSPF和 BGP重分发实验报告
程风雷MPLS_VPN PE-CE路由协议 OSPF和 BGP重分发实验...学习到 R1 的回环口 ip R4 与 R5 起 EIGRP ...2015国考面试通关宝典122份文档 2015小升初备考攻略...
CCIE学习(44)—— OSPF配置(三)
如上图,ASBR1 和 ASBR2 负责广播默认路由到网络,这些路由与 BGP 学习的路由 ...应届生求职季宝典 英文个人简历模板 创意简历模板汇集 推理型题分析与总结文档...
更多相关标签: