边界网关协议(BGP)的故障分析
bgp协议的几种状态

bgp协议的几种状态BGP(Border Gateway Protocol,边界网关协议)是一种用于在互联网中交换路由信息的协议。
BGP协议定义了多种状态,用于描述与邻居路由器之间的连接和路由信息的交换状态。
以下是BGP协议的几种状态:1. Idle(空闲状态),在该状态下,BGP路由器尚未建立与邻居路由器的TCP连接。
这可能是因为配置错误、网络故障或邻居路由器尚未配置的原因。
2. Connect(连接状态),在该状态下,BGP路由器正在尝试与邻居路由器建立TCP连接。
如果连接成功,将进入下一个状态;如果连接失败,将返回到Idle状态。
3. Active(活动状态),在该状态下,BGP路由器正在尝试与邻居路由器建立TCP连接,但是尝试失败。
这可能是因为网络故障、配置错误或邻居路由器不可达。
4. OpenSent(已发送打开消息状态),在该状态下,BGP路由器已经成功建立了TCP连接,并向邻居路由器发送了打开消息。
BGP路由器等待邻居路由器的确认。
5. OpenConfirm(确认打开消息状态),在该状态下,BGP路由器已经收到了邻居路由器的确认消息,并等待邻居路由器发送Keepalive消息。
6. Established(已建立状态),在该状态下,BGP路由器与邻居路由器之间的连接已经成功建立,并且可以开始交换路由信息。
BGP路由器将持续发送Keepalive消息以保持连接。
这些状态描述了BGP路由器与邻居路由器之间的连接和路由信息交换的不同阶段。
通过检查这些状态,网络管理员可以了解BGP路由器的连接状态,并进行故障排除和网络维护。
BGP协议故障处理-1

BGP协议故障处理-1 1. 邻居关系不能建立故障现象描述TCP连接没有建立,OPEN报文没有正常交互。
故障可能原因AS号不正确对等体的IP地址不正确环回接口配置错误EBGP没有配置peer ebgp-max-hopTCP连接不正常路由不可达TCP端口179被禁用故障处理流程故障处理步骤1) 检查AS号是否配置正确检查AS号是否正确,使用display current-configuration命令检查本端的AS号配置,在对端使用display bgp peer检查其邻居的AS号是否与本端一致;2) 检查对等体IP是否正确检查对等体的IP地址是否正确;3) 检查环回接口是否配置正确如果使用环回接口,检查是否配置了connect-interface loopback。
缺省情况下,路由器使用最佳路由建立TCP连接,而不是loopback接口;4) 检查EBGP配置peer ebgp-max-hop没有如果是EBGP邻居,且EBGP连接在物理上不是直连的,检查是否配置了peerebgp-max-hop。
默认情况下,EBGP邻居的TTL被置为1,如果不是直连,必须配置peer ebgp-max-hop;5) 检查TCP连接正常否使用扩展的ping命令检查TCP连接是否正常,由于一台路由器可能有多个接口能够到达对端,应使用ping -a ip-address命令指定发送ping包的源IP地址;6) 检查路由是否可达如果Ping不通,使用display ip routing-table命令检查路由表中是否存在到邻居的可用路由;7) 检查179端口是否被禁用如果能Ping通,检查是否配置了禁止TCP端口179的ACL,如果有,取消对179端口的禁止。
2. 邻居关系DOWN掉故障故障现象描述除对端发生重启的情况外,已经建立好的邻居又Down掉一般是由于链路层的问题导致的。
故障可能原因对端设备发生重启MTU问题QoS问题网络拥塞问题故障处理流程图2邻居关系DOWN掉故障处理流程故障处理步骤1) 检查对端BGP是否重启过,一些可能导致BGP重启的事件:对端关闭会话。
BGP故障排除

[RTB]ping -a 2.2.2.2 3.3.3.3 PING 3.3.3.3: 56 data bytes, press CTRL_C to break Request time out Request time out Request time out Request time out Request time out
Page16
收集信息—配置信息
收集指定路由器的相关配置命令 没有修改EBGP的TTL值,导致RTB与RTC之间的邻居关系无法建立 RTC上指定2.2.2.2的AS号不匹配
[RTB]display current-configuration configuration bgp # bgp 100
--- 3.3.3.3 ping statistics --5 packet(s) transmitted 0 packet(s) received 100.00% packet loss
Page15
收集信息—IP连通性 (续)
同时我们再查看路由表,判断IP连通性问题出现在本地还是远端 加上之前的信息我们可以判断出:RTC没有到RTB上2.2.2.2的路由
EBGP
3.3.3.3 AS200
RTC
RTA与RTB无法通过Loopback地址建立IBGP邻居关系 RTB与RTC同样无法通过Loopback地址建立EBGP邻居关系 请指出可能导致该现象的原因
Page10
检查故障
当邻居关系无法建立的时候,邻居状态机很有可能处于“Idle”、“Connect” 或 “Active”状态
--- 1.1.1.1 ping statistics --5 packet(s) transmitted 5 packet(s) received 0.00% packet loss round-trip min/avg/max = 32/32/32 ms
BGP协议故障处理-4

BGP协议故障处理-41. 配置BGP反射,不同的群具有相同的cluster-id导致路由丢失故障现象描述在下面的BGP组网应用中,RTA和RTC组成一个群(cluster),RTA作为反射器;RTB和RTD组成一个群,RTB作为反射器。
在RTD上发布一条路由189.1.0.0/16,RTB学习到了这条路由,按照反射器的特性,应该把这条路由反射给非客户机RTA。
但是在RTA上观察发现并没有这条路由。
图1不同的群具有相同的cluster-id导致路由丢失RTA的BGP配置如下:bgp 100reflector cluster-id 2332098817default med 1000undo synchronizationgroup g1 externalgroup g2 internalgroup g3 internalpeer 133.1.1.2 group g1 as-number 200peer g1 ebgp-max-hoppeer 150.1.1.2 group g2peer 200.1.7.2 group g3peer g3 reflect-clientRTB的BGP配置如下:bgp 100undo synchronizationgroup g1 internalgroup g2 internalpeer 150.1.1.1 group g1peer 12.110.250.1 group g1peer g1 reflect-clientdisplay信息或者debugging信息:打开debugging开关,在RTB上可以看到RTB已经向RTA发送了update报文:*0.29444933-RM-7-RTDBG:BGP SEND 150.1.1.2+1025 -> 150.1.1.1+179*0.29444999-RM-7-RTDBG:BGP SEND message type 2 (Update) length 61*0.29445066-RM-7-RTDBG:BGP SEND flags 0x40 code Origin(1): IGP*0.29445133-RM-7-RTDBG:BGP SEND flags 0x40 code ASPath(2): <null>*0.29445199-RM-7-RTDBG:BGP SEND flags 0x40 code NextHop(3): 12.110.250.1*0.29445283-RM-7-RTDBG:BGP SEND flags 0x40 code LocalPref(5): 1000*0.29445349-RM-7-RTDBG:BGP SEND flags 0x80 code Originator_ID(9):12.110.250.1*0.29445449-RM-7-RTDBG:BGP SEND flags 0x80 code Cluster_List(10):139.1.1.1*0.29445533-RM-7-RTDBG:BGP SEND 189.1.0.0/16在RTA上也可以看到RTA收到了RTB发过来的update报文:*0.29444687-RM-7-RTDBG:BGP RECV 150.1.1.2+1025 -> 150.1.1.1+179*0.29444754-RM-7-RTDBG:BGP RECV message type 2 (Update) length 61*0.29444820-RM-7-RTDBG:BGP RECV flags 0x40 code Origin(1): IGP*0.29444887-RM-7-RTDBG:BGP RECV flags 0x40 code ASPath(2): <null>*0.29444954-RM-7-RTDBG:BGP RECV flags 0x40 code NextHop(3): 12.110.250.1*0.29445037-RM-7-RTDBG:BGP RECV flags 0x40 code LocalPref(5): 1000*0.29445104-RM-7-RTDBG:BGP RECV flags 0x80 code Originator_ID(9):12.110.250.1*0.29445204-RM-7-RTDBG:BGP RECV flags 0x80 code Cluster_List(10):139.1.1.1*0.29445287-RM-7-RTDBG:BGP RECV 189.1.0.0/16但是在RTA上发现路由189.1.0.0/16并没有添加到BGP路由表:进一步打开bgp的event调试开关,可发现如下信息:*0.374978900 RM/7/RTDBG:bgp: peer 150.1.1.2 (Internal AS 100) unicastroutes DENIED due to: cluster id loop found故障原因分析在RTB发给RTA的update报文中,可以看到一个originator-id属性和一个cluster-list属性。
BGP 故障排除

惯例
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
前提条件
本文档没有任何特定的前提条件。
使用的组件
本文档不限于特定的软件和硬件版本。
本文档中的信息都是基于特定实验室环境中的设备创建的。 本文档中使用的所有设备最初均采用原始(默认)配置。 如果您是在真 实网络上操作,请确保您在使用任何命令前已经了解其潜在影响。
主要故障排除流程图
排除 BGP 邻居确立故障
排除路由表中路由丢失故障
排除多宿主入站故障 排除 BGP 路由通告障
排除多宿主出站故障
相关信息
故障排除技术说明
版权所有 ©1992-2010 思科系统 文件创建日期: Oct 19, 2010 /cisco/web/support/CN/107/1079/1079347_bgp_trouble_main.html
BGP 故障排除
交互: 本文档对 Cisco 设备进行了自定义分析。
内容
前言 准备工作
惯例 前提条件 使用的组件 主要故障排除流程图 排除 BGP 邻居确立故障 排除路由表中路由丢失故障 排除多宿主入站故障 排除 BGP 路由通告故障 排除多宿主出站故障 相关信息
前言
本文为常见问题提供故障排除信息以边界网关协议(BGP)。 要了解更多信息,或者转向下一个流程表,请点击红色命令框。
如果有show ip bgp、show ip bgp neighbor、show ip bgp summary或者show tech-support命令的输出从您的Cisco设备,您能使用 Output Interpreter (仅限注册用户)显示潜在问题和修正。 要使用命令输出解释程序(仅限注册用户),您必须是注册客户,并且 必须登录,还要启用 JavaScript。
BGP协议故障处理-2

BGP协议故障处理-21. 路由发起过程的路由丢失故障故障现象描述路由发起过程的路由丢失,是指在将运行OSPF接口的路由发布出去的时候,因发布命令配置不当而引起的路由丢失。
故障可能原因¾使用network命令发布路由不当导致¾使用network mask命令发布路由不当导致¾使用aggregate-address命令发布聚合路由不当导致故障处理流程图1路由发起过程的路由丢失故障处理流程故障处理步骤1) 检查是否因使用network命令发布路由不当导致使用networ k命令发布路由时,如果不指定发布网络的掩码,则BGP认为发布的是自然网段的路由,使用display ip routing-table检查路由表中是否存在该自然网段的路由。
在AR系列路由器中,BGP缺省不进行子网路由的自动聚合。
所以,如果仅有子网路由,是不能被正确发布的。
network命令发布路由时进行精确匹配才能将子网路由发布出去。
2) 检查是否因使用network mask命令发布路由不当导致使用network mask命令可以发布带子网掩码的路由,必须存在精确匹配的路由才能被正确地发布出去,使用display ip routing-table检查路由表中是否存在网络地址和掩码都精确匹配的路由。
3) 检查是否因使用aggregate-address命令发布聚合路由不当导致使用aggregate命令可以对本地路由进行任意子网掩码长度的聚合,待聚合的路由需要存在于BGP路由表中,使用display bgp routing-table确认BGP路由表是否存在这些路由。
如果使用aggregate detail-suppressed命令进行聚合,则只有聚合后的路由被发布出去,而具体路由都将被抑制。
aggregate对BGP路由表中的路由进行聚合,使用参数detail-suppressed将导致具体路由被抑制发布。
BGP协议故障处理-5

BGP协议故障处理-51. 使用network命令发布路由的精确匹配问题故障现象描述在下面的BGP组网应用中,RTA和RTB属于同一个AS,它们之间运行IGP(如OSPF);RTA和RTC属于不同的AS,它们之间运行BGP,建立EBGP邻居关系。
在RTB上通过OSPF协议发布三条路由172.16.1.0/24、172.16.2.0/24、172.16.3.0/24,RTA学习到了这三条路由,并通过network 172.16.0.0命令发布出去。
但是在EBGP邻居RTC上并没有学习到这三条路由,RTA和RTC之间的邻居关系稳定,没有出现异常。
图1使用network命令发布路由的精确匹配问题RTA的BGP配置:bgp 100default med 1000network 172.16.0.0undo synchronizationgroup g1 externalgroup g2 internalgroup g3 internalpeer 133.1.1.2 group g1 as-number 200peer g1 ebgp-max-hoppeer 150.1.1.2 group g2peer 200.1.7.2 group g3peer g3 reflect-clientdisplay信息或者debugging信息:在RTA上用display ip routing-table查看本地路由表:[RTA]display ip routing-tableRouting Tables: public netDestination/Mask Protocol Pre Cost Nexthop Interface172.16.1.0/24 OSPF 10 1563 150.1.1.2 Serial1/0172.16.2.0/24 OSPF 10 1563 150.1.1.2 Serial1/0172.16.3.0/24 OSPF 10 1563 150.1.1.2 Serial1/0 可以看到三条OSPF路由已经装入本地路由表中。
bgp报文分析

BGP概述
BGP(Border Gateway Protocol,边界网关协 议)是一种提供域间路由选择系统的路由协议, 确保自治系统之间能够无环路地交换路由选择信 息,BGP路由器交换有关前往目标网络的路径信 息。
BGP是一种基于策略的路由选择协议,BGP确定 最佳路径时考虑的不是速度,而是让AS能够根据 多种BGP属性来控制数据流的传输路径。
UPDATE报文
当路由失效时,发送的update报文:
Bgp报文解析功能需要在该报文中的withdrawn routes中获取ip段的信息(ip段的信息可以是多 个),as号为open报文获取到的as号或默认0。
UPDATE报文
添加路由信息时,发送的update报文:
Bgp报文解析功能需要在update报文中从as path中获取as号(path segment length是指as的个数,path segment value是as值);从Network Layer Reachability Information中获取ip段的信息(ip段的信息可以是多个)。 注:1.As号可以是4字节也可以是2字节;
BGP路由通过携带AS路径信息彻底解决路由环路问题。 BGP提供了丰富的路由策略,能够对路由实现灵活的过滤和选择。 BGP易于扩展,能够适应网络新的发展。
BGP的五种种报文
Open报文:用来与相邻路由器建立关系。 Keeplive报文:用来确认open报文,和周期
性的证实邻站关系。 Update报文:用来发送路由的信息,以及列
用TLV(type-length-value)格式。
OPEN报文
as号为2字节时:
Bgp报文解析需要在Open报文中获取的是as号和报文源ip的对应关 系 。as号是上图中标记的位置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Cisco Confidential
8
互联神州思科专业技术培训
技术论坛:
一品阳光
TCP—Source/Destination Addresses
10
互联神州思科专业技术培训
技术论坛:
一品阳光
TCP—Active vs. Passive Session
R1 Opens TCP Session to R2
R1
R2
• Active Session—If the TCP session initiated by R1 is the one used between R1 and R2 then R1 “actively” established the session • Passive Session—For the same scenario R2 “passively” established the session • R1 Actively opened the session • R2 Passively accepted the session • Can be configured
成都互联神州思科专业技术培训学校培训网站:
Session Number Presentation_ID © 2005 Cisco Systems, Inc. All rights reserved.
QQ:505836736
Cisco Confidential
6
互联神州思科专业技术培训
BGP: 2.2.2.2 passive open to 10.1.1.1 BGP: 2.2.2.2 passive open failed - 10.1.1.1 is not update-source Loopback0's address (1.1.1.1)
成都互联神州思科专业技术培训学校培训网站:
QQ:505836736
Cisco Confidential
7
互联神州思科专业技术培训
技术论坛:
一品阳光
TCP—Source/Destination Addresses
1.1.1.1
R1
2.2.2.2 10.1.1.1 10.1.1.2
成都互联神州思科专业技术培训学校培训网站:
Session Number Presentation_ID © 2005 Cisco Systems, Inc. All rights reserved.
QQ:505836736
Cisco Confidential
5
互联神州思科专业技术培训
技术论坛:
一品阳光
The Basics
• BGP uses TCP port 179 • Relies on TCP to successfully deliver all BGP messages • Peers exchange OPEN messages which contain basic info such as:
互联神州思科专业技术培训
技术论坛:
一品阳光
边界网关协议 (BGP) 的故障分析
SESSION RST-3254
成都互联神州思科专业技术培训学校培训网站:
Session Number Presentation_ID © 2005 Cisco Systems, Inc. All rights reserved.
Fast Keepalives and Holdtimers
• BGP memory analysis
Why does BGP consume so much memory?
• BGP processes
Explanation of what each process does
• BGP table version
成都互联神州思科专业技术培训学校培训网站:
Session Number Presentation_ID © 2005 Cisco Systems, Inc. All rights reserved.
QQ:505836736
Cisco Confidential
2
互联神州思科专业技术培训
一品阳光
TCP—Source/Destination Addresses
1.1.1.1
R1
2.2.2.2 10.1.1.1 10.1.1.2
R2
• R1 to R2 connection
neighbor 2.2.2.2 remote-as 100 neighbor 2.2.2.2 update-source loopback 0
Router ID AS # Capabiliate Machine) is used to negotiate Established state • Keepalive/holdtime mechanism ensures peering validity • BGP attempts to open a TCP session to every peer
QQ:505836736
Cisco Confidential
1
互联神州思科专业技术培训
技术论坛:
一品阳光
What Can You Expect?
• BGP peering in excruciating detail ☺
TCP details BGP TCP interaction
• R2 to R1 connection
neighbor 10.1.1.1 remote-as 100 neighbor 10.1.1.1 update-source loopback 0
• R1 and R2 do not agree on what addresses to use
BGP will tear down the TCP session due to the conflict Points out configuration security and adds some 成都互联神州思科专业技术培训学校培训网站: QQ:505836736
技术论坛:
一品阳光
What Do I Expect from You?
• BGP operational experience
Basic configuration Show commands
• Understand the attributes
成都互联神州思科专业技术培训学校培训网站:
技术论坛:
一品阳光
TCP—Source/Destination Parameters
• IP Addresses
Destination IP is specified via “neighbor x.x.x.x” Source IP is outbound interface by default Source IP may be specified via “neighbor x.x.x.x updatesource interface”
技术论坛:
一品阳光
BGP/TCP Agenda
• EBGP Multihop Peering • Peering State Machine • Common Mistakes • Troubleshooting commands • Faster Peer Establishment • Flapping Peers • Keepalives and Holdtimers
成都互联神州思科专业技术培训学校培训网站:
Session Number Presentation_ID © 2005 Cisco Systems, Inc. All rights reserved.
QQ:505836736
Cisco Confidential
4
互联神州思科专业技术培训
• R2 attempts to open a session to R1
BGP: 10.1.1.1 open active, local address 2.2.2.2
• R1 denies the session because of the address mismatch • “debug ip bgp” on R1 shows
• R2 to R1 connection
neighbor 1.1.1.1 remote-as 100 neighbor 1.1.1.1 update-source loopback 0
• Routers agree on source/destination address
成都互联神州思科专业技术培训学校培训网站:
Session Number Presentation_ID © 2005 Cisco Systems, Inc. All rights reserved.
QQ:505836736
Cisco Confidential
9
互联神州思科专业技术培训
技术论坛:
neighbor x.x.x.x transport connection-mode [active|passive] 成都互联神州思科专业技术培训学校培训网站: QQ:505836736
Session Number Presentation_ID © 2005 Cisco Systems, Inc. All rights reserved.
• TCP port numbers
Destination will be port 179 Source port is random for added security