首页 BGP

BGP

举报
开通vip

BGP红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享1BGP技术笔记红茶三杯CCIE学习文档文档版本:2.0更新时间:2013-01-26文档作者:红茶三杯文档地址:http://ccietea.com1基本概念1.1知识点1.每个AS都有一个标识号,范围是1~65535,其中64512~65535是保留私用的。2.BGP的更新由TCP协议承载,使用的端口号是179因为BGP要求使用TCP,所以BGP对等体之间必须有IP层连通性。3.BGPneighbor:当两台router相互之间建立了一条...

BGP
红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享1BGP技术笔记红茶三杯CCIE学习文档文档版本:2.0更新时间:2013-01-26文档作者:红茶三杯文档地址:http://ccietea.com1基本概念1.1知识点1.每个AS都有一个标识号,范围是1~65535,其中64512~65535是保留私用的。2.BGP的更新由TCP协议承载,使用的端口号是179因为BGP要求使用TCP,所以BGP对等体之间必须有IP层连通性。3.BGPneighbor:当两台router相互之间建立了一条基于TCP的BGP连接之后,就称他们为邻居或对等体。在邻居刚建立起连接时,它们交换所有的候选BGP路由,但在该初始路由交换之后,通常只在网络信息发生变化时才发送增量路由更新,而不会周期性更新。4.BGP是 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 为在AS之间传递路由,因此,它的一跳实际上是一个AS。5.BGP是无类路由选择协议、距离矢量路由协议,自动汇总默认关闭(这点要看IOS)。6.BGP有三个管理距离,从IBGP学过来的200,从EBGP学过来的20,这是因为BGP的设计理念的工作于AS之间,而AS内部,BGP希望IGP协议自己能搞定,因此IBGP路由的管理距离设置为一个大AD值200,EBGP路由设置为一个小AD值20。7.BGP选举routeriID法则和OSPF一样。1.2Tables1.NeighbortableRouter#shipbgpsummary红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享2BGProuteridentifier10.1.13.3,localASnumber345BGPtableversionis1,mainroutingtableversion1NeighborVASMsgRcvdMsgSentTblVerInQOutQUp/DownState/PfxRcd10.1.13.141003310000:00:540关于BGP邻居表字段的详细含义,请见本文档BGP配置章节的show小节2.BGPtable存放所有路由条目,以及其属性。关于BGP表相关字段的详细含义,请见本文档BGP配置章节的show小节3.RoutingtableIP路由表1.3TIMERKEEPALIVE默认60s,keepalive计时器不会在Open消息中交互,那么两个BGP邻居间该计时器如何定?如果当前手工配置的keepalivetimer小于min(holdtime)/3,则取配置值如果当前手工配置的keepalivetimer大于min(holdtime)/3,则取int[min(holdtime)/3]其中min(holdtime)为两台BGP邻居间holdtime的最小值HOLDTIMECISCO默认180s(3倍KEEPLIVEtimer),该计时器包含在open报文中必须收到一个KEEPLIVE或更新消息前所允许经过的最大时间。如果两端Holdtime不一致,双方接受较小的的时间。timerbgp00邻居永远不downBGP不会周期性更新路由,仅在需要的时候更新,由于公网的路由可能的动荡的,因此触发更新也会有一定的等待时间,IBGPpeer为5S;EBGPpeer为30S,而在这段时间内,BGP仍可以进行路由信息的搜集,所以BGP收敛会比较慢。1.4消息类型每种消息都包含BGP消息报头,BGP报文的头部如下:红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享3Marker:用于检测BGP对等体之间同步丢失情况,并且在支持验证功能的情况下进行消息验证如果消息类型为open或open消息中没有包含验证消息,标志字段被置为全1,否则标志字段通过某些计算得到(作为验证进程的一部分)Length:表示BGP报文的全部长度,包括头部TYPE:1-open;2-update;3-Notification;4-keepalive以下是BGP的五种报文及报文解析:1.OPEN消息TCP会话建立起来自以后,两个邻居都要发送一个OPEN消息,双方使用OPEN消息标识自己,并且规定自己的BGP运行参数。如果open消息被接受,则回送一条keepalive消息进行确认,确认后就能发送update消息了。OPEN消息包含以下内容:Version8bit,V4目前使用较多的版本AS号16bit本地AS号HOLDTime路由器必须收到一个keeplive或者更新消息之前所允许经过的最大秒数BGPIdentiferROUTER-ID和OSPF选取routerID的方式一致可选参数长度用来表示后面可选参数字段的长度可选参数包含了一个可选参数列表,每个参数都由一个长为1个8位组的类型字段、一个长8位组的长度字段及一个可变长的包含参数数值的字段组成。用来宣告支持验证、多协议支持和路由刷新等可选功能(常被称为“能力值”,意思就是这家伙具备什么能力)2.KEEPALIVE消息如果路由器接受了邻居在OPEN消息中的参数,就会应答一个keeplive消息,并且在此后1/3的holdtime(但不小于1S)为周期发送该消息,CISCO默认60S。如果协商后保持时间为0,则不发送keepalive保活消息。KEEPALIVE消息实际上弥补了TCP无法确认对端存活情况的缺陷。KEEPALIVE消息仅包含19bytes的BGP头部,除此之外不包含任何其他数据。3.UPDATE消息用来公布可用的路由、撤销的路由或者两者兼顾,每条update消息只描述单条BGP路由,这是因为BGP路径属性只能描述单条路由红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享4消息中包含:网络层可达信息(NLRI)一个或多个(长度、前缀)二元组,用来公布IP地址前缀和前缀长度路径属性被撤销路由4.Notification消息当检测到差错的时候发送,通常会导致BGP连接的终止5.Route-refresh当路由策略发生变化时,去请求邻居重新通告路由(BGP不会周期性发送更新)1.5BGP状态机更加详细的BGP状态机及邻居关系建立过程,请见笔记文档:《BGP状态机及邻居关系建立过程》Peer状态名称发什么包在做什么Idle尝试建立TCP连接本地寻找一条到邻居的路由,并开始准备TCP的连接及监视远程peer启动TCP连接。启用BGP时,要准备足够的资源Connect发TCP包本地找到一条到邻居的路由,并尝试TCP三次握手,等待完成中,认证都是在TCP建立期间完成的。如果TCP连接不上则进入Active状态,反复尝试连接。如果TCP建立成功,BGP进程会向邻居发送Open消息并进入Opensent状态Active发TCP包TCP连接没建立成功,反复尝试TCP连接。OpenSent发Open包TCP连接建立已经成功,开始发送Open包,Open包携带参数协商对等体的建立。如果接收到open消息后,存在差错,则发送Notification消息。如果没有差错,则进入OpenConfirm状态OpenConfirm发Keepalive包参数、能力特性协商成功,自己开始发送Keepalive包,等待对方的Keepalive包。如果收到对方的keepalive消息则迁移到Established状态Established发Update包已经收到对方的Keepalive包,双方能力特性一致,开始使用Update通告路由信息。1.6BGPneighbor必须在BGP进程中使用neighbor来指定BGP对等体。他们交换的是路由信息,以及相关属性,而不是链路状态。1.EBGP邻居一般是直连,因为它会去查找直连路由。EBGP默认TTL为1红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享52.IBGP邻居无需直连。只要求有TCP联通性。1.7update-sourceBGP无法像IGP那样自动发现邻居,而需手工指定,邻居的IP由本地的BGPneighbor命令指定,而该BGP连接的源IP(更新源)默认情况下为流量的出接口IP。注意只有当本地配置的邻居IP与邻居用于BGP连接建立的源IP相同时,BGP连接才能被正常建立,同时,仅需保证一方满足条件即可。IBGP邻居之间建立邻居,为了保证邻居关系的稳定,一般使用loopback接口建立,这是因为如果使用物理接口,那么物理接口故障,邻居关系就DOWN了,并且在AS内部,路径可能是冗余的,邻居之间的LOOPBACK路由可通过IGP获取并提供一定的路由冗余性(当物理线路也存在冗余的情况下)。在使用loopback接口建立BGP邻居关系时,务必注意还需要指定更新源IP。如下图,是一个 规范 编程规范下载gsp规范下载钢格栅规范下载警徽规范下载建设厅规范下载 配置:其实,BGP邻居关系的建立,仅需一条连接即可,如下图的配置也是能建立起BGP连接的:红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享6R1使用1.1.1.1作为更新源,试图与2.2.2.2建立BGP连接,而R2本地配置的neighborIP为1.1.1.1,与R1的更新源IP匹配,尽管R2配置的更新源为默认(数据包出接口IP10.1.12.2),但是两者之间的BGP连接建立是没有问题的,因为R1向R2的连接是没问题的。同时这里还可以顺便钻研下路由的问题,例如,如果将R2本地到1.1.1.0的静态路由,改配为默认路由,我们会发现BGP连接依然能建立,因为此例中R2为BGP连接的被动者,R1有明细路由即可主动发起连接。但是如果将R1上到2.2.2.0的明细静态路由,改为默认,那就不行了,R1会认为“noroutetopeer”。如果R1R2之间是建立EBGP邻居关系,因为EBGP邻居关系的建立会检查直连路由,并且默认TTL=1,而这个时候实际上R1的loopback口到R2是需要至少2跳,那么这个时候还需要两者配置neighborxxxxebgp-mul2经试验验证,(在BGP的基本配置无误的情况下)R1和R2到对方的looback口的网段用静态路由或动态路由互相学习,BGP邻居关系建立都没问题,但是如果两端都用默认路由互指,则BGP邻居关系无法建立,这是为了防环的目的,一边用静态,一边用默认是可以的。1.8IBGP水平分割BGP防环是通过AS_PATH实现的,而AS_PATH仅仅在路由离开AS才回被更改,因此在AS内,IBGP就没有EBGP的防环能力,为了防止环路的出现,BGP路由器不会将从IBGP邻居学习过来的路由再通告给自己其他IBGP邻居。BGP规定不将通过一个IBGP获悉的路由传播给其他所有IBGP邻居。这个是BGP的水平分割规则。由于水平分割原则存在,BGP要求AS内,须保证IBGP全互联(这里是指neighbor命令指定)。(根本原因是在AS内部,AS-PATH不会改变,无法使用AS_PATH防环,因此很容易出现环路)红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享71.9IBGP与IGP同步AS65102作为中转区域(trasitAS),在AS内部BCDE运行OSPF,使得AS内路由可达;D和C都没运行BGP协议,BE之间建立IBGP邻居关系。若A上有个网段1.1.1.0,A将其注入BGP,并且传递给EBGP邻居B,B又会传递给IBGP邻居E(这个传递过程其实是将BGP报文放置于IP包内经过C或D最终传递给E,对于CD而言,这些数据包都是普通IP包,直接转发不查看)。最终E成功的将1.1.1.0的路由传递到了F。那么F即使能学习到BGP过来的这条路由,当有数据前往1.1.1.0网络时,将数据包丢给下一跳E,而E上关于1.1.1.0的下一跳是B,非直连,因此需递归得到其前往B的下一跳,到B的下一跳是D或C,于是将数据包丢给D或C,而C和D是并不知道1.1.1.0的(他们只运行了OSPF,没有运行BGP),至此成路由黑洞。注意虽然CD没运行BGP,但是BE之间的BGP路由(BGP报文)可以通过CD进行转发,并且对于CD来说,这些BGP的消息他们自己视为普通的IP包,直接转发,并不查看。这就是路由黑洞问题,为了避免这个问题,可以考虑在BE上,将BGP路由重发布进OSPF来解决,但这么做后果是不可预估的,毕竟BGP承载的路由条目是相当巨大的。另一个解决 方案 气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载 是,要求AS内路由器都运行IBGP并实现IBGP全互联,那么该TransitAS内的路由器就都能知晓BGP路由,如此即可解决路由黑洞的问题。【同步的概念】BGP路由器从IBGP邻居学到一条路由后,是不启用的(不优化的),除非它再次从IGP学习到相同的路由,才会启用。这就是为了防止上面所描述的路由黑洞的问题。而如果这个网络实现了IBGP全互联(彼此之间建立了IBGP邻居关系),那么同步就没有意义了,便可关闭同步。因此现今的CISCOIOS默认关闭同步规则。综上所述,要使IBGP能够正常工作,就必须实施以下配置选项之一:1.将外部路由重发布进IGP中,以确保IGP与BGP同步。但该 方法 快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载 的缺陷在于如果从BGP获取大量的路由,对于IGP来说是个相当大的负担。2.建立IBGP全互联,且关闭同步 机制 综治信访维稳工作机制反恐怖工作机制企业员工晋升机制公司员工晋升机制员工晋升机制图 。目前基本上都是使用该方法。但是这个方法有个缺陷,即如果IBGP红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享8邻居太多,管理这些IBGP的邻接关系将会是个挑战,并且对设备的负担也较大。好在我们有两种措施可以辅助解决,1是路由反射器2是联邦。1.10BGP路由通告当存在多条路径时,BGPRouter只选取最优的路由(BEST)来使用(没有负载均衡的情况下)BGP只把自己使用的路由,也就是自己认为Best的路由传递给BGPpeerBGPSpeaker从EBGP获得的路由会向它所有BGP相邻体通告(包括EBGP和IBGP)BGPSpeaker从IBGP获得的路由不向它的IBGP相邻体通告(避免环路,水平分割;存在路由RR的情况除外)BGPSpeaker从IBGP获得的路由是否通告给它的EBGPpeer要视IGP和BGP同步的情况来决定2Advance2.1关于路由的递归R1、R2运行OSPF,宣告直连网络及各自的LOOPBACK接口,R1LO1为1.1.1.1,R2LO1为2.2.2.2R1、R2运行IBGP,使用LOOPBACK为更新源,并互相指neighbor,R2、R3之间为EBGP关系,用直连接口建邻居。R3宣告3.3.3.0/24进BGP,在R2上对R1配置next-hop-self于是在R1上能学习到3.3.3.0的路由,R1的路由表如下:1.0.0.0/24issubnetted,1subnetsC1.1.1.0isdirectlyconnected,Loopback02.0.0.0/32issubnetted,1subnetsO2.2.2.2[110/65]via10.1.12.2,00:05:16,Serial0/03.0.0.0/24issubnetted,1subnetsB3.3.3.0[200/0]via2.2.2.2,00:03:0110.0.0.0/24issubnetted,1subnetsC10.1.12.0isdirectlyconnected,Serial0/0这就是BGP典型的递归路由,R1上3.3.3.0路由的下一跳为2.2.2.2,进一步递归2.2.2.2,关联出接口S0/0红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享92.2联邦联邦的相关特性:在联邦内部保留联邦外部的NEXT_HOP属性公布给联邦的路由的MED属性在整个联邦范围内予以保留路由的LP属性在整个联邦范围内予以保留在联邦范围内,将成员AS号压入AS_PATH,但不公布到联邦外,并且使用TYPE3、4的AS_PATHAS_PATH中的联邦AS号用于在联邦内部避免环路1.联邦的配置及实现为了解决路由传递的问题,除了路由反射器外,还有一个不错的解决方案,就是联邦。通过将AS345定义为联邦AS(大AS),同时在联邦AS中创建成员AS(小AS),则可解决IBGP路由传递的问题。那么R3、R4之间就是联邦的IBGP关系,R4与R5之间是联邦的EBGP关系,在联邦内部,R3与R4都是属于AS64512,对于R4(AS64512),R5属于AS64513,但是对于联邦外部而言,R3R4R4都是AS345,外部压根不知道有AS64512和64513存在。R3、R4、R5用OSPF保证AS内路由互通,同时使用loopback建立BGP邻居R3上的配置如下routerbgp64512//使用联邦成员AS号建立BGPbgpconfederationidentifier345//这条命令用来对联邦外的AS通告自己的真实AS号neighbor4.4.4.4remote-as64512neighbor4.4.4.4update-sourceLoopback0neighbor10.1.13.1remote-as100红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享10bgpconfederationiden345配置后,对于联邦AS外来说,这个AS不是什么64512了,而是345R4的配置:routerbgp64512bgpconfederationidentifier345bgpconfederationpeers64513neighbor3.3.3.3remote-as64512neighbor3.3.3.3update-sourceLoopback0neighbor5.5.5.5remote-as64513neighbor5.5.5.5ebgp-multihop3neighbor5.5.5.5update-sourceLoopback0由于R4与R5是联邦的EBGP,同样有TTL的问题,因此他们使用LOOPBACK建立邻居关系的话,要注意设置ebgp-multihop。另外,对于R4而言,R5此刻是一个普通的EBGP邻居,并且是另一个AS64513,而且跟我一点关系没有,联邦的建立就会有问题,因此,还需在R4上增加bgpconfederationpeers64513命令,那么R4将对AS64513视为它的联邦EBGPpeer,而对除了AS64513外的AS视为普通的AS。如果联邦内有成员AS,那么若本地需指多个confederationpeers,则可bgpconfederationpeersxxyyzz,写多个AS号。R5的配置如下:routerbgp64513bgpconfederationidentifier345bgpconfederationpeers64512neighbor4.4.4.4remote-as64512neighbor4.4.4.4ebgp-multihop4neighbor4.4.4.4update-sourceLoopback0neighbor10.1.25.2remote-as2002.AS_CONFED_SEQUENCE及AS_CONFED_SET这两个属性用于在联邦内、成员AS间防环AS_CONFED_SEQUENCE一个去往特定目的地所经路径上的有序AS号列表,其用法与AS_SEQUENCE完全一样,区别在于该列表中的AS号属于本地联邦中的ASAS_CONFED_SET一个去往特定目的地所经路径上的无序AS号列表,去用方法与AS_SET完全一样,区别在于列表中的AS号属于本地联邦中的AS红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享11R1上引入路由11.11.11.0R2上BGP表:NetworkNextHopMetricLocPrfWeightPath*>11.11.11.0/24192.168.12.1001iR4上BGP表:NetworkNextHopMetricLocPrfWeightPath*>i11.11.11.0/242.2.2.2010001iR6上BGP表:NetworkNextHopMetricLocPrfWeightPath*>11.11.11.0/242.2.2.201000(64512)1iR7上BGP表:NetworkNextHopMetricLocPrfWeightPath*>11.11.11.0/24192.168.67.602461i在R4上连接R2的接口抓包,发现更新包中11.11.11.0前缀的属性中携带的是AS_PATH,内容为AS1在R6上连接R4的接口抓包,发现更新包中11.11.11.0前缀的属性中携带的AS_PATH中包含2个内容:红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享12可以看出AS_CONFED_SEQENCE属性用于在联邦内防环(该属性不会出联邦),而上面的AS_SEQUENCE属性,则将会被随着11.11.11.0的路由被传递给R7,因此在R7上抓包,11.11.11.0的路由中看不到AS_CONFED_SEQENCE的属性,因此外部AS将联邦视为单个AS(外界并不知道联邦内部的情况)2.3路由反射器RR1.基本概念在AS内部,由于存在IBGP水平分割原则,使得BGProuter之间不得不两两建立IBGP连接,以求获得完整的BGP路由更新,然而这是个扩展性非常低的做法,同时也给网络设备带来了负担,解决IBGP扩展性问题的两种有效的办法是路由反射器及联邦。路由反射器相比于联邦,优势在于,联邦中所有路由器都需要支持并理解联邦机制,而路由反射器只需要RR理解反射器机制即可,另外,路由反射器的实现机制也相对简单一些。当然如果希望用各种EBGP机制来管理大规模AS,那么联邦将是一个更优的解决方案。思考路由反射器时,将簇当作一个逻辑的整体去考虑即可,RR和client共同构成反射簇,但是只有RR知道(配置只是在RR上完成)。注意RR只通告或反射它所知道的最佳路径。为了维护一致的BGP拓扑,RR在反射路由的时候不修改某些BGP路径属性,这些属性包括NH、AS_PATH、LOCAL_PREF和MED,并且增加了ORIGINATOR和CLUSTER_LIST用于防环。如果路由学习至非clientIBGP对等体,则反射给所有client及EBGP邻居如果路由学习至一client,则反射给所有非clientIBGP邻居和除了该client以外的所有client如果路由学习至EBGP邻居,则反射给所有client和非clientIBGP邻居2.规则示例B是RR,C和D是client,BCD构成路由反射簇;有一条BGP路由从C通告出来。当从簇的组成员传过来一BGP路由给RR,RR会反射给其他客户端、非客户端及EBGP邻居。红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享13将路由反射簇看做一个整体,那么C传给RR后,RR传给它的client(D),则不传给非client(E)另一种情况,思路还是一样,将RR和Client看做一个整体,也就是将簇看做一个整体。考虑R2是RR的情况,R4和R5分别宣告loop口,对方能收到路由吗?如果R1是RR呢?注意CLIENT是不知道自己的身份的3.关于路由反射簇路由反射簇包括反射器及其Client每一个簇都有唯一的簇ID每当一条路由被反射器反射后,该反射器(该簇)的Cluster-ID就会被添加至路由的Cluster-list属性中每当反射器收到一条Cluster-list属性已经包含该簇的ClusterID的路由时,该路由基于防环的目的将不被反射引入Cluster是要在RR的环境中提供冗余性。在传统的分簇设计中,多个RR用来为一个或多个client服务,这些RR都配置相同的CLUSTER_ID,这个ID是4字节的IP形式的标示符,默认情况下就是RR自己的BGProuterID,如果两台RR拥有相同的CLUSTER_ID,那么他们就属于同一个簇。CLUSTER_ID的另一个非常重要的作用是防环,当一台RR收到的BGP路由更新中携带了与自己ROUTERID相同的CLISTER_ID,那么就该RR将忽略这条路由更新。红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享144.ORIGINATOR_ID与CLUSTER_LIST本节内容请见本文档路径属性的相关章节内容。5.冗余RR环境单RR可能会存在单点故障的问题,因此从冗余性的角度,一个簇中可以拥有多台RR,Client与每一台RR都有物理连接并建立BGP对等体关系,在其中一台RR出现故障的情况下,Client仍然有替代连接。Client都不知道自己的Client,因此RR本身也可以成为别人的Client由于AS_PATH属性在AS内部不会发生变化(仅当路由离开本AS才会被更新),因此AS内防环才有水平分割的机制,而路由反射器实际上是放宽了水平分割原则,这个就会给环路带来一定的隐患,因此路由反射器需使用以下两个属性防止环路:ORIGINATOR_ID和CLUSTER_LIST是路由反射器使用的可选非传递属性,用来防止环路。详见本文档“ORIGINATOR_ID和CLUSTER_LIST”BGP属性部分。6.配置命令R2的BGP配置如下:routerbgp123neighbor1.1.1.1remote-as123neighbor1.1.1.1update-sourceLoopback0红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享15neighbor1.1.1.1route-reflector-clientR3上showipbgp10.10.10.0RR可修改cluster-idrouterbgp123bgpcluster-id222.222.222.222其他配置命令:bgpclient-to-clientreflection在配置反射器时,client到client间的反射是默认开启的,但如果客户间是全互联的,此命令加no,则关闭客户间的反射7.规划原则路由反射器规划原则路由反射器将传输AS(transitAS)分割成小单元,也就是反射簇每个簇包含反射器及其client不支持路由反射器功能的路由器可以充当单路由器簇或充当clientIBGPsession原则路由反射簇中的所有client都应该与并且只与簇中所有的RR建立IBGP连接AS内的路由反射器之间要求全IBGP互联非反射器的路由器即可参与IBGP全互联也可配置为反射器的client2.4自动汇总BGP什么情况下会自动汇总?红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享16若R1开启auto-summary,并用重发布直连的方式引入1.1.1.0/24,则该子网会被自动汇总给R2若R1开启auto-summary,且network1.1.1.0mask255.255.255.0,则仍以明细更新给R2若R1开启auto-summary,且network1.0.0.0mask255.0.0.0,则通告给R2汇总路由1.0.0.0/8上面这条network等同于network1.0.0.0(network的有类宣告)这个实验主要验证自动汇总如果不是发生在主类网络边界的情况:若R1开启auto-summary,并用重发布直连的方式引入10.1.1.0/24,则该子网会被自动汇总给R2若R1开启auto-summary,并network10.0.0.0,则该子网会被自动汇总给R2从这个实验分析得出BGP的自动汇总,不要求主类网络边界,这与IGP要区别开。因此BGP自动汇总(auto-summary)只汇总重发布引入的路由,以及使用network命令有类宣告方式引入的路由。目前CISCOIOS默认关闭自动汇总。2.5手工汇总可以不network明细路由,而是在路由起源,配置一条汇总静态,然后network该汇总路由,这种方法不建议。aggregate-address命令是用于BGP手工汇总,以下是该命令所有子命令的详解1.aggregate-address汇总地址summary-only如果aggregate-address不加任何关键字,则明细也传递,汇总路由也传递。加上参数summary-only则只传递汇总路由,明细路由被抑制。这种情况下产生的汇总路由,将会丢失底下明细路由的AS_PATH属性,因此可能存在一定的隐患。红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享17R3上showipbgpNetworkNextHopMetricLocPrfWeightPath*>172.16.0.00.0.0.032768is>172.16.1.0/2410.1.13.100100is>172.16.2.0/2410.1.13.100100is>172.16.10.0/2410.1.23.200200is>172.16.11.0/2410.1.23.200200i本地产生的这条汇总路由172.16.0.0/16,NH=0.0.0.0,weight=默认值32768,origin=i。明细路由标记为“s”,因此都被抑制了。R4#showipbgp172.16.0.0BGProutingtableentryfor172.16.0.0/16,version4Paths:(1available,best#1,tableDefault-IP-Routing-Table)Flag:0x820Notadvertisedtoanypeer300,(aggregatedby3003.3.3.3)10.1.34.3from10.1.34.3(3.3.3.3)OriginIGP,metric0,localpref100,valid,external,atomic-aggregate,best可以看到,路由带上了atomic-aggregate属性,用来告知下游邻居这是汇总路由且丢失了明细的路径属性。同时aggregator属性标识了汇总的地点(AS及汇总路由器的RouterID)。报文抓取如下(R3发给R4的BGPupdate包):红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享182.aggregate-address汇总地址summary-onlyas-set汇总命令加上as-set关键字之后,产生的这条汇总路由就可以继承明细路由的某些路径属性,从而规避一些问题。as-set继承明细属性的规则如下:As-path:将收到的所有明细路由的as号都放置在{}中,计算AS_Path长度时这些AS只被算为1个ASOrigin:继承最差的origin属性Community:继承所有明细路由的community,形成一个列表MED不继承LP取明细路由中LP的最大值NEXT_HOP汇总路由为0.0.0.0(因为汇总路由为本地产生)在R3上做汇总,使用aggregate-addresssummary-onlyas-set,则R3上的BGP表:红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享19NetworkNextHopMetricLocPrfWeightPath*>172.16.0.00.0.0.010032768{100,200}is>172.16.1.0/2410.1.13.100100is>172.16.2.0/2410.1.13.100100is>172.16.10.0/2410.1.23.200200is>172.16.11.0/2410.1.23.200200i看到R3上产生的汇总路由,AS_PATH继承了明细的AS_PATH,以{100,200}的形式呈现,这样就可以起到防止环路的作用,而不会由于丢失明细路由的AS_PATH而带来隐患。注意这里{}内的AS_PATH类型为AS_SET,是无序的AS列表。R4上showipbgp172.16.0.0BGProutingtableentryfor172.16.0.0/16,version3Paths:(1available,best#1,tableDefault-IP-Routing-Table)Notadvertisedtoanypeer300{100,200},(aggregatedby3003.3.3.3)10.1.34.3from10.1.34.3(3.3.3.3)OriginIGP,metric0,localpref100,valid,external,best可以看到,由于我们配置汇总的时候,使用了as-set关键字使得汇总路由得以继承明细的部分路径属性,因此产生的汇总路由仍保留有aggregator属性,但是没有atomic-agg属性,显然这个属性在as-set关键字使用的情况下已经没有必要了。继续看看R4上抓包的结果(R3发给R4的BGPupdate包):红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享20补充说明as_set关键字的作用:A将明细路由通告给B,B将明细路由通告给C及D,C通告汇总路由,这个时候汇总路由除了会通告给D外,也会被传递给B,而这样一来可能会出问题,因此需要在C上neighborB的IPdistribute-listx来过滤掉汇总路由,否则会出现路由环路。另外,汇总路由被传递给D后,D会继续向B来传递,而由于汇总路由源于C,因此到达D的AS400时,AS_PATH仅有AS300、400,于是乎B路由器接受了该条汇总(因为没有看到自己的AS号出现在AS_PATH中)。这样就可能出现环路。解决的办法是在C发布汇总路由的时候,设置AS_PATH关键字,以还原AS属性,那么这时候,这条汇总路由就会同时宣告AS_SET,而AS_SET是一个无序的AS列表,当中就有AS200的信息,这样B路由器收到这条汇总路由,发现AS_SET中有自己的AS因此忽略该路由。红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享213.aggregate-address汇总地址suppress-mapxxxas-set用于宣告聚合及选定的明细路由(抑制特定的明细路由),后面跟上route-mapxxx,被route-map匹配(permit)的路由将被过滤,其他放行。抑制列表虽然调用route-map,但是route-map只能用于匹配,不能用于设置属性(不能用set命令)【实验1】以下是几种情况ipprefix-list1permit11.11.11.0/24route-maptestper10matchipaddpre1//干掉11.0放行除了11.0外的所有明细ipprefix-list1permit11.11.11.0/24route-maptestdeny10matchipaddpre1//等同于route-map不匹配(permit)任何条目,因此所有明细都放行ipprefix-list1deny11.11.11.0/24route-maptestpermit10matchipaddpre1//效果同上route-maptestpermit10//明细全都不放行route-maptestdeny10//明细全放行【实验2】邻居+Route-map实现相同功能注意用route-map实现的话,最后是隐含干掉any的,而suppress-map则不同红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享22【实验3】针对特定邻居取消明细路由抑制R3的配置如下:access-list1permit172.16.1.0route-mapunsupppermit10matchipaddress11routerbgp300neighbor10.1.35.5unsuppress-mapunsuppaggregate-address172.16.0.0255.255.0.0as-setsummary-onlyR3上做汇总,抑制掉了所有明细,但是如果只想对特定的邻居放行部分明细,那么可以用unsuppress-map4.aggregate-address汇总地址attribute-mapabc该命令可以更改汇聚路由的属性(注,仅仅对汇总路由产生作用,对明细不起效)。R2上对192.168.0.0/16进行汇总routerbgp12aggregate-address192.168.0.0255.255.0.0attribute-maptest//关联route-maptest对汇聚路由起效Route-maptestpermit10SetoriginincomSetmetricxx红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享23然而这个时候,R3也会收到来自R2发布的汇总路由,这样就有可能形成路由环路,因此需过滤掉。在R2上BGP进程增加配置:neighbor1.1.23.3distribute-list1outaccess-list1deny192.168.0.00.0.255.2555.aggregate-address汇总地址as-setadvertise-mapadvertise-map与summary-only合用时,aggregate-address的汇总地址下所有明细均被抑制,同时advertise-map匹配的条目中明细如果全都挂了,则汇总路由也消失,(只要advertise-map匹配的明细有一条在,汇总就在);并且汇总路由仅继承advertise-map匹配明细路由的BGP路径属性在R3上ipprefix-list1permit172.16.1.0/24ipprefix-list1permit172.16.2.0/24route-maptestpermit10matchipaddressprefix-list1routerbgp300aggregate-address172.16.0.0255.255.0.0as-setsummary-onlyadvertise-maptest则R1、R2上所有172网段均被抑制;同时由于route-maptest只匹配了1.0及2.0网段(AS100中的),因此这条汇总路由,AS_PATH只继承AS100,也就是300100;同时,如果此时172.16.1.0及172.16.2.0全都DOWN掉了,则汇总路由也消失另一个例子红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享24R3宣告192.168.1.0、2.0,同时设置1.0的community属性为no-advaccess-list1permit192.168.1.0route-maptestpermit10matchipaddress1setcommunityno-advertiseroute-maptestpermit20setcommunitynonerouterbgp3neighbor1.1.23.2send-communityneighbor1.1.23.2route-maptestout这时默认情况下,R2能学习到1.0、2.0,而R1只能学习到2.0当R2aggregate-address192.168.0.0255.255.0.0之后,R1能学习到汇总路由及2.0当R2aggregate-address192.168.0.0255.255.0.0as-set之后,R1只能学习到2.0,汇总路由被抑制掉了,原因是1.0携带了no-adver的community,当汇总路由加了as-set关键字后,会继承它的community,因此汇总路由也携带了no-adver,这个时候access-list11deny192.168.1.0access-list11permitanyroute-mapadvpermit10matchipaddress11routerbgp12aggregate-address192.168.0.0255.255.0.0as-setadvertise-mapadv//即可忽略1.0的community注意,这里是在构建汇总路由时不考虑advertise-map中拒绝的路由,而单纯通过adv-map是无法过滤明细路由的红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享252.6BGPDeaggregationBGPDeaggregation,也称为BGP拆分。路由汇总我们都知道是什么概念,路由汇总的优势是非常明显的,可以减少路由表的条目从而优化网络,但是同时却也丢失了邻居传递来的路由的精确性,对于汇总前的明细路由我们就一无所知了。那么拆分可以理解为汇总的逆向动作,当我收到一条汇总路由的时候,可能基于某种目的,我希望从汇总路由中抽出特定的明细路由,以此来加强路由的颗粒度,当然这条明细是依赖汇总路由而存在的。拆分可以通过使用条件注入(conditionalinjection)来完成,所谓的conditionalinjection指的就是,当特定的汇总路由存在时,我可以生成其下属的特定明细,这些明细路由将被注入到本地BGPRIB(本地路由表也会加载明细路由信息),以便在本地AS中提供比汇总路由更详细的路由选择信息(更长的前缀)。Conditionalinject的配置如下(BGP路由选择进程模式下):bgpinject-mapmap1exist-mapmap2[copyattributes]上述命令的意思是当map2所匹配的汇总路由正常时,在本地BGPRIB中注入map1中定义的明细路由。当汇总路由挂掉,这条明细也就跟着消失,这就是所谓的条件注入—conditionalinjection。下面我们在看来一下这两个route-map的详细内容,这些是需要格外注意的。exist-map使用的route-map最少具有以下两个match语句:matchipaddressprefix-list上面这条match语句用来匹配汇总路由matchiproute-source上面这条match语句用来匹配发送该汇总路由的邻居IP。如果指定了copyattributes选项,那么被inject的明细路由会继承汇总路由的路径属性,否则明细将被当成本地生成的路由。Inject-map使用的route-map中Setipaddressprefix-list上面的这条set命令用来定义将被注入到本地BGPRIB的明细路由。被注入的前缀可以使用Showipbgpinjected-path来显示下面,我们来看一个示例:红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享26看看上面的拓扑,AS300中有子网路由172.16.1.0/24,AS400中有路由172.16.2.0/24。这些子网路由在传递到AS200后,由R4及R5做路由汇总,汇总路由被传递给AS100。这时候R1如果要去往172.16.1.0及2.0子网,可能就是走一侧,要么走R2,要么走R3,这当然不是最优的实现方式,我们希望看到R1去往1.0子网走R2,去往2.0子网走R3,那么实现的思路就是在R2及R3上部署BGPdeaggregation,由R2向AS100注入条件明细172.16.1.0/24,R3注入172.16.2.0/24,同时,为了防止这两个conditional子网路由回流造成不可预估的影响,我们同时为这两条路由分配两个community值,1个是no-export,另一个是100:200,其中100就不说了,AS200表示,这条conditional路由是针对AS200的。R2的配置如下:ipprefix-listhuizongpermit172.16.0.0/16//用来匹配汇总路由ipprefix-listmingxipermit172.16.1.0/24//用来定义准备注入的条件前缀ipprefix-listxiayitiaopermit10.1.24.4/32//用来匹配传递给我汇总路由的BGP邻居,这里是R4的IProute-mapRP_mingxipermit10setcommunity100:200no-export//100:200表示这是针对AS200的setipaddressprefix-listmingxiroute-mapRP_huizongpermit10matchipaddressprefix-listhuizongmatchiproute-sourcexiayitiaorouterbgp300bgpinject-mapRP_mingxiexist-mapRP_huizongcopy-attributesneighbor10.1.23.2remote-as200红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享27R3的配置大同小异。2.7RouteDampening当路由出现摆动(不断失效、恢复),就给它分配一个惩罚值,摆动越多,惩罚值越大并且不停地积累。而同时惩罚值又以一定的速率降低,每一个半衰期结束,惩罚值变成原来的一半(如果路由不再翻动的话)如果惩罚值超出了预先设置的门限--抑制界限:惩罚值达到这个门限,路由被抑制,即不发布,直到N个半衰期以后,惩罚值降低到另一个门限:重新使用门限(解除抑制的门限)时,才解除对路由的抑制。惩罚值:每次摆动增加1000抑制界限:2000重新使用界限:750半衰期:15分钟最大抑制时间:60分钟(半衰期的4倍)正常所有路由的惩罚值都是0,惩罚值是瞬间加的例如某条路由,出现翻动,则瞬间惩罚值到1000,这时有个半衰期(15分钟),15分钟后(如果路由没有再翻动),惩罚值降低为一半500,再经过15分钟变成250,这时如果路由又发生一次抖动,则惩罚值再加1000,变成1250,在此之前,这条路由正常使用。如果又抖动了一次,则变成2250,超过了阀值2000,则这条路由将被抑制,不更新也不使用。15分钟后,(如果不再翻动了)降低为一半1125(但仍然被抑制),如此经历数个半衰期,直到降低为750(重新使用界限),路由再次被启用。bgpdampening//启动bgpdampening,默认对全部EBGP路由有效,也可加route-mapbgpdampening?//修改默认参数bgpdampening半衰期重新使用界限抑制界限最大抑制时间红茶三杯CCIE笔记之BGP篇ccietea.com学习●沉淀●成长●分享28showipbgp如果路由标记d,则表示该路由被抑制,如果是h,则表示路由有翻动的迹象showipbgpflap//查看路由翻动情况Showipbgpdampening//查看哪些路由被抑制了Dampening只对EBGP路由生效,对IBGP路由无效3BGP路径属性路径属性的分类:公认属性(Well-known)公认必遵(Well-knownmandatory)BGP必须都能识别,且在更新消息必须包含OriginAS-PathNexthop公认自决(Well-knowndiscretionary)BGP必须都能识别,更新消息可包含可不包含Local-PreferenceATOMIC_Aggregate可选属性(Optional)可选传递(Optionaltransitive)可以不支持该属性,但即使不支持,也应当接受包含该属性的路由并传递给其他邻居CommunityAggregator可选非传递(Optionalnon-transitive)可以不支持该属性,不识别的BGP进程忽略包含这个属性的更新消息,并且不传递给其他BGP邻居MEDOriginator_IDCluster_listWeight3.1Origin公认必遵属性,明确了路由更新的来源,三种途径IGPi通过BGPnetwo
本文档为【BGP】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_856789
暂无简介~
格式:pdf
大小:2MB
软件:PDF阅读器
页数:50
分类:互联网
上传时间:2017-11-02
浏览量:340