还剩48页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
原理和配置BGP欢迎参加《BGP原理和配置》课程,本课程将深入介绍边界网关协议BGP的理论基础和实际配置方法作为互联网骨干网络中最核心的路由协议,BGP在现代网络架构中扮演着至关重要的角色通过本课程的学习,您将系统掌握BGP的工作原理、协议特性、配置方法和排障技巧,为您在网络工程领域的职业发展打下坚实基础无论您是网络工程师、系统管理员,还是对网络协议感兴趣的学习者,这门课程都将为您提供宝贵的知识和技能什么是?BGP边界网关协议BGP(Border GatewayProtocol)是一种外部网关协议(EGP),主要用于连接不同自治系统(AS)之间的路由信息交换作为互联网的粘合剂,BGP确保了全球互联网的正常运行BGP-4是目前广泛使用的版本,由IETF在RFC4271中定义与内部网关协议不同,BGP更注重路由策略而非快速收敛BGP协议的核心应用场景包括•互联网服务提供商ISP之间的路由交换•大型企业网络与多个ISP的连接•数据中心网络的路由控制与其他路由协议的比较内部网关协议vs外部路由选择机制差异网关协议OSPF基于开销(cost)选择IGP(如OSPF、RIP、最短路径;RIP使用跳数作为EIGRP)设计用于单一自治系衡量标准;而BGP采用复杂的统内部路由,注重收敛速度;路径属性集合(AS_PATH、而EGP(如BGP)则关注不同LOCAL_PREF等)来实现灵活自治系统间的路由传递,更注的路由策略控制重路由控制和策略灵活性适用规模与场景发展历史BGPBGP-11989首个BGP版本在RFC1105中定义,取代了早期的EGP协议,开始支持无类别域间路由BGP-21990RFC1163发布,改进了错误处理和路由信息交换机制BGP-31991RFC1267引入,增强了BGP的扩展性和路由聚合能力BGP-41995至今RFC1771最初定义,后由RFC4271取代,成为当前互联网标准支持CIDR,极大提升了互联网可扩展性的主要用途BGP互联网骨干支撑全球互联网路由交换运营商网络提供ISP间互联和路由控制企业多归属连接实现多运营商接入和负载均衡数据中心互联跨区域数据中心网络连接BGP协议的关键优势在于其提供的策略控制能力,使网络管理员能够精确控制流量路径在大型网络中,BGP允许根据业务需求、成本、性能等多种因素灵活调整路由决策,这是其他路由协议无法比拟的基本术语与概念BGP自治系统(AS)邻居/对等体(Peer)自治系统是由单一技术管理实体交换BGP路由信息的路由器称为控制的一组路由器和网络每个BGP邻居或对等体BGP邻居关AS都有一个唯一的编号系需要手动配置,并使用TCP作(ASN),由IANA分配ASN分为传输层协议邻居之间通过保为16位(1-65535)和32位(1-持活动消息维持连接状态4294967295)两种格式路由传播与路径向量BGP是一种路径向量协议,记录路由经过的所有AS编号这种机制不仅用于防止路由环路,还可作为路由选择的重要依据,实现精细的路由控制数据包结构BGPOPEN报文建立BGP邻居关系的第一步,包含BGP版本号、本地AS号、保持活动时间、BGP标识符(通常是路由器ID)以及可选参数UPDATE报文用于传递路由信息,包含撤销路由的列表、路径属性和网络层可达性信息(NLRI)一个UPDATE报文可以同时包含多条前缀信息NOTIFICATION报文用于报告错误状况,发送后BGP连接立即关闭包含错误代码、错误子代码和错误数据三个字段,用于详细说明错误原因KEEPALIVE报文周期性发送以确认邻居关系的存活状态,不包含任何数据,仅有BGP头部默认发送间隔为60秒路由通告的基本流程BGP邻居建立初始路由交换路由器通过TCP建立连接并交换OPEN报邻居关系建立后交换各自的路由表文增量更新路由筛选与处理网络变化时只发送变化的路由信息根据策略过滤和处理收到的路由BGP采用增量式更新机制,初始连接时交换完整路由表,之后只通告变化的路由信息这种方式大大减少了网络带宽消耗,特别适合处理大型路由表当路由撤销时,BGP会发送包含撤销路由信息的UPDATE报文,通知邻居该路由不再可用消息类型详解BGP消息类型主要功能触发条件特点OPEN建立BGP会话TCP连接建立包含版本、AS后号、保持时间UPDATE路由通告/撤销路由变化或初可同时包含多始交换条路由信息KEEPALIVE保持连接活跃周期性发送无数据字段的空报文NOTIFICATIO报告错误并断检测到错误状包含详细错误N开连接况代码BGP消息格式包含公共头部和特定消息类型的负载部分公共头部包含标记字段(全为1的16字节序列)、长度字段(2字节)和类型字段(1字节)各类消息根据其功能携带不同的信息,共同支持BGP路由系统的正常运行邻居建立过程BGPTCP连接建立使用TCP179端口建立可靠连接交换OPEN消息协商BGP参数和能力发送确认通过KEEPALIVE消息确认参数路由表同步交换初始路由信息BGP邻居建立是一个严格的过程,任何步骤失败都会导致连接无法建立首先,两台路由器必须成功建立TCP连接然后,双方交换OPEN消息,包含各自的BGP版本、AS号和其他参数如果参数匹配,则发送KEEPALIVE消息确认,邻居关系进入Established状态最后,路由器开始交换路由信息,完成初始同步的五种状态机BGPIdle状态初始状态,拒绝所有连接,准备启动BGP进程并尝试TCP连接触发条件配置BGP邻居或重启BGP进程Connect状态等待TCP连接完成若连接成功,发送OPEN消息并转入OpenSent状态;若失败则进入Active状态Active状态主动尝试建立TCP连接连接成功后发送OPEN消息并进入OpenSent状态;持续失败则回到Connect状态重试OpenSent状态已发送OPEN消息,等待对方的OPEN消息收到有效OPEN后,发送KEEPALIVE消息并进入OpenConfirm状态OpenConfirm状态等待KEEPALIVE或NOTIFICATION消息收到KEEPALIVE后进入Established状态;收到NOTIFICATION则回到Idle状态Established状态邻居关系完全建立,可以交换路由信息检测到错误或收到NOTIFICATION消息会返回到Idle状态与的关系BGP TCP可靠传输基础连接建立与维护安全与防火墙考虑BGP使用TCP(端口179)作为传输层协BGP邻居关系建立之前,必须先完成TCP由于BGP使用TCP,网络管理员必须确保议,确保消息的可靠传递这与使用UDP三次握手TCP连接为BGP提供了长连接防火墙允许TCP179端口的双向通信此的OSPF、RIP等协议形成鲜明对比TCP服务,路由器间可以持续交换路由信息外,BGP还可以利用TCP的MD5认证增强的可靠传输机制为BGP提供了有序、无丢当网络发生拥塞时,TCP的流控机制能够安全性,防止未授权的路由器发送伪造的失的数据传输,避免了在应用层实现复杂保护BGP不会因过载而崩溃BGP消息的可靠性机制的自治系统号()BGP ASNASN分配机构ASN类型与范围互联网号码分配机构(IANA)负责全球ASN的总体管理,并将ASN分为两类其分配给区域性互联网注册管理机构(RIR),如:•16位ASN(1-65535)传统ASN格式•APNIC(亚太地区)•32位ASN(1-4294967295)扩展ASN格式•RIPE NCC(欧洲、中东和中亚)特殊用途的ASN•ARIN(北美)•公有ASN用于互联网路由(由各RIR分配)•LACNIC(拉丁美洲和加勒比地区)•私有ASN(64512-65534)仅用于组织内部,不在公网通•AFRINIC(非洲)告这些机构负责在其服务区域内分配和管理ASN•保留ASN如AS0(无效AS)和AS65535(保留)邻居类型BGP内部BGP(iBGP)外部BGP(eBGP)位于同一自治系统内的BGP对等体iBGP邻居必须建立完位于不同自治系统的BGP对等体eBGP是BGP的主要应用全互联(full mesh)关系,以避免路由黑洞和环路为解场景,用于AS间路由交换默认情况下,eBGP邻居应直决大型网络中的扩展性问题,可使用路由反射器或联盟技接连接(一跳可达),但可以通过配置支持多跳eBGP术iBGP邻居间传递路由信息时,保持AS_PATH不变eBGP传递路由时会在AS_PATH属性中添加本地AS号了解iBGP和eBGP的区别对于正确设计BGP网络至关重要iBGP用于在AS内部传播外部学习到的路由,而eBGP则用于AS间通告和接收路由两种类型在路由处理逻辑、属性处理和默认行为上有显著差异,需要网络工程师正确区分和配置邻居建立方式BGP静态手动配置动态对等体发现最常用的BGP邻居建立方式是通过静态配置,管理员需明确指定对等体的IP地址在特殊场景下,可以配置BGP动态发现邻居,例如在数据中心或管理单一的大型和AS号这种方式提供最高的安全性和控制性,确保只有授权的路由器能建立网络环境中这种方式允许BGP路由器自动与指定子网中的其他BGP路由器建立BGP会话对于生产环境,尤其是连接到互联网的BGP会话,强烈推荐使用静态邻居关系,而无需明确配置每个对等体然而,由于安全风险,这种方式在连接配置外部网络时极少使用无论采用哪种方式建立BGP邻居,都需要确保TCP179端口的连接畅通,并考虑可能的认证机制(如MD5)以提高安全性在现代网络自动化环境中,虽然配置过程可能通过自动化工具完成,但底层仍是静态邻居配置原理路由选择原理BGP权重检查首先检查Cisco专有属性WeightWeight越大越优先,仅在本地路由器有效LOCAL_PREF比较LOCAL_PREF值越高越优先,用于影响出站流量路径在AS内传递本地通告路由优先本地通告的路由优于从其他BGP邻居学习的路由AS_PATH长度比较AS_PATH路径越短越优先,表示到达目的网络经过的AS数量最少ORIGIN类型比较ORIGIN类型优先级IGPEGPINCOMPLETEMED值比较MED(Multi-Exit Discriminator)值越小越优先,用于影响入站流量外部路由优于内部路由从eBGP邻居学习的路由优于从iBGP邻居学习的路由属性详解AS-PATH12环路检测路径选择记录路由经过的所有AS号,防止路由环路形成AS_PATH越短,路由优先级越高3路由策略通过操作AS_PATH实现路由过滤和路径控制AS_PATH是BGP最重要的属性之一,它记录了路由通告经过的所有AS编号序列当BGP路由器将路由通告给外部BGP邻居时,会在AS_PATH前面添加自己的AS号这一机制不仅防止了路由环路(如果路由器在AS_PATH中看到自己的AS号,就会丢弃该路由),还提供了丰富的路径信息,供路由策略决策使用网络管理员可以通过AS_PATH预置(prepending)技术影响路由选择,即在通告路由时人为地多次添加自己的AS号,使路径看起来更长,从而降低该路径的优先级此外,AS_PATH过滤是一种常见的路由控制技术,可以基于AS_PATH中是否包含特定AS号或符合特定模式来接受或拒绝路由属性NEXT_HOPNEXT_HOP的基本概念eBGP与iBGP的NEXT_HOP行为差异NEXT_HOP属性定义了到达BGP路由目的网络的下一跳路由器IP•eBGP默认规则路由器向eBGP邻居通告路由时,会将地址这是BGP路由转发的关键属性,决定了数据包的实际转发NEXT_HOP修改为自己的接口IP地址路径•iBGP默认规则路由器向iBGP邻居通告路由时,保持NEXT_HOP不变与其他路由协议不同,BGP不会自动修改NEXT_HOP属性,这可能导致可达性问题,特别是在iBGP环境中了解NEXT_HOP的iBGP的这一行为可能导致第三方下一跳问题,即AS内部路由器处理规则对于正确配置BGP网络至关重要无法到达外部的NEXT_HOP地址,需要通过next-hop-self命令手动修正属性LOCAL_PREF属性定义LOCAL_PREF是一个用于影响从AS内部到外部的流量路径选择的BGP属性数值范围为0-4294967295,默认值通常为100值越高,路由优先级越高作用范围仅在AS内部有效,不会传递给外部BGP邻居是BGP路径选择过程中仅次于Weight的第二个决策因素应用场景通常用于控制AS的出口选择,例如优先选择特定ISP链路、实现主备链路设计或基于业务类型选择不同出口LOCAL_PREF是AS内部路由策略控制的主要工具通过为不同路由设置不同的LOCAL_PREF值,AS可以精确控制出站流量的路径例如,对于双ISP连接的企业网络,可以为主要ISP的路由设置较高的LOCAL_PREF值(如150),为备份ISP的路由设置较低的值(如50),确保在主链路正常时优先使用主ISP路由传播规则BGPiBGP不传iBGPeBGP传所有从iBGP邻居学到的路由不会再通告给其他iBGP从eBGP邻居学到的路由会通告给所有BGP邻居邻居完全互联需求本地传所有iBGP需要完全互联以确保路由同步本地生成的路由会通告给所有BGP邻居BGP的路由传播规则是为了防止AS内部的路由环路而设计的iBGP不传iBGP规则要求AS内的所有BGP路由器必须建立完全互联(full mesh)拓扑,以确保路由信息的完整传递这一要求在大型网络中会造成扩展性问题,因此引入了路由反射器(Route Reflector)和BGP联盟(Confederation)技术来解决需要注意的是,虽然BGP路由器会按照这些基本规则传播路由,但实际部署中通常会通过路由策略(如filter-list、prefix-list、route-map等)对路由传播进行细粒度控制,以实现特定的网络设计目标聚合路由BGP聚合策略控制聚合配置方法可以使用suppress-map指定哪些具体路由需路由聚合的基本概念使用aggregate-address命令配置聚合路由要被抑制,使用advertise-map控制哪些路由路由聚合是将多个具体路由合并为一个更宽可以选择是否保留原始具体路由(使用参与聚合,以及使用attribute-map自定义聚松前缀的过程,可显著减少路由表大小,提summary-only选项),或者通过as-set参数合路由的属性这些高级选项提供了精细的高网络可扩展性BGP支持多种聚合方式,在聚合路由中包含所有组件路由的AS_PATH聚合控制能力既可以聚合本地路由,也可以聚合从其他路信息,以防止路由环路由器学习到的路由路由过滤机制BGP过滤器类型应用方向•前缀列表(Prefix List)基于IP前缀和•入站过滤(Inbound)应用于从邻居接前缀长度过滤收的路由•AS路径访问列表(AS-Path Access•出站过滤(Outbound)应用于向邻居List)基于AS_PATH属性过滤通告的路由•路由映射(Route Map)提供复杂条过滤可以在不同阶段应用,包括接收路由件匹配和属性修改能力前、路由处理中或通告路由前不同设备厂•分布列表(Distribution List)基于标商实现细节可能有所不同准或扩展ACL过滤•过滤器列表(Filter List)应用AS路径访问列表常见应用场景•防止通告私有网段到互联网•限制接收和通告的前缀数量•实施特定的路由策略和流量工程•防止路由泄漏和错误通告•过滤特定AS源的路由多出口与负载均衡BGPBGP负载均衡的特点实现方法与IGP路由协议不同,BGP默认情况下只会选择一条最佳路径安BGP负载均衡主要有以下几种实现方式装到路由表中,不会自动进行负载均衡这是因为BGP主要关注
1.多路径(BGP Multipath)配置maximum-paths命令允许策略路由而非最短路径多条等价路由同时安装到路由表然而,在多出口场景下,网络管理员通常希望充分利用所有链路
2.DMZ链路带宽(DMZ LinkBandwidth)基于链路带宽进行资源,这就需要特定的配置来实现BGP的负载均衡不对等负载分担
3.前缀拆分(Prefix Splitting)将地址空间分成多个小块,通过不同链路通告
4.AS路径操纵通过AS-path prepending让不同前缀选择不同路径策略路由与路由策略BGP路由映射(Route Map)Route Map是BGP路由策略的核心工具,提供类似If-Then-Else的逻辑结构可以基于各种条件(如前缀、AS路径、社区等)匹配路由,然后执行一系列操作(如修改属性、接受或拒绝)社区(Community)社区是路由策略实施的重要工具,可以标记路由并在不同路由器间传递策略意图通过社区属性,可以实现复杂的路由控制功能,如选择性路由通告和QoS策略等前缀列表(Prefix List)前缀列表是高效的基于IP地址前缀的过滤机制,比传统ACL性能更好可以精确匹配前缀长度范围,常用于BGP路由控制中的基础过滤AS路径过滤基于AS_PATH属性的过滤机制,可以控制从特定AS或经过特定AS路径的路由通过正则表达式实现灵活的路径匹配反射器()BGP RouteReflector解决IBGP全互联问题RR工作原理在传统BGP设计中,AS内所有BGP路由器之间必须建立全互联(Full Mesh)拓路由反射器将iBGP邻居分为两类客户端(Client)和非客户端(Non-扑,这在大型网络中会导致N*N-1/2个邻居关系,造成严重的扩展性问题路Client)反射器从客户端学习到的路由会反射给所有其他客户端和非客户端;由反射器(RR)通过放宽iBGP不传iBGP规则,允许特定路由器(反射器)将从从非客户端学习到的路由只反射给客户端;从eBGP邻居学习到的路由反射给所一个iBGP对等体学习到的路由反射(传递)给其他iBGP对等体有客户端和非客户端为防止路由环路,RR使用ORIGINATOR_ID和CLUSTER_LIST属性追踪路由的反射路径联盟()BGP ConfederationBGP联盟的基本概念BGP联盟是另一种解决iBGP全互联问题的方法,特别适用于大型AS的分割管理联盟将一个大的AS分割成多个子AS(Sub-AS),每个子AS内部仍遵循iBGP规则(需要全互联或使用路由反射器),而子AS之间则使用类似eBGP的连接方式,但保留原始AS对外的统一身份联盟的关键特性•对外部AS完全透明,表现为单一AS•子AS间使用的是联盟内部eBGP(特殊形式)•保留AS_PATH属性中的联盟子AS信息•子AS号是私有的,仅在联盟内可见•联盟内部eBGP不会重置NEXT_HOP和LOCAL_PREF社区()属性BGP CommunityBGP社区是一种强大的路由标记机制,允许运营商对路由进行分组和应用统一的策略社区属性是一个32位值,通常表示为ASN:值的形式(如65001:100)社区可以附加到路由上,并在BGP对等体间传递,但不会影响路由选择过程社区类型主要包括
1.标准社区32位值,格式为ASN:值
2.扩展社区8字节结构,支持更多功能,如路由目标(RT)、路由源(RO)
3.大型社区12字节结构,格式为ASN:值1:值2,解决了标准社区中ASN只有16位的限制常用的预定义标准社区包括•NO_EXPORT0xFFFFFF01不通告给任何eBGP邻居与结合BGP MPLS VPNVPN路由与转发VRF实现客户路由表隔离MPLS标签交换路径使用两层标签实现VPN流量隔离BGP MP-BGP扩展使用VPNv4/VPNv6地址族传递VPN路由在MPLS VPN解决方案中,BGP扮演着核心的路由分发角色服务提供商通过MP-BGP(多协议BGP)的VPNv4/VPNv6地址族在PE(Provider Edge)路由器之间交换客户VPN路由信息,同时保持不同VPN客户路由表的独立性和安全隔离关键概念包括•路由目标(RT)BGP扩展社区属性,用于控制VPN路由的导入和导出•路由区分符(RD)创建全局唯一的VPNv4/VPNv6地址,防止重叠地址冲突•VRF(VPN路由与转发实例)在PE设备上为每个VPN客户维护独立的路由表这种结合使BGP成为构建大规模运营商级VPN服务的基础,支持L3VPN、EVPN等多种VPN服务类型安全机制BGPTTL安全(GTSM)TCP MD5认证BGP TTL安全机制(也称为BGP支持TCP MD5签名(RFCGTSM-Generalized TTL2385),对每个BGP数据包使用Security Mechanism)通过检查共享密钥生成MD5摘要这确保接收到的BGP数据包的TTL值来只有拥有相同密钥的authorized防止远程攻击对于直连的BGP邻居才能建立会话,有效防eBGP邻居,配置TTL安全后,路止未授权的路由通告和会话劫持由器只接受TTL值为255(或接近攻击255)的BGP数据包,有效防止多跳攻击RPKI与路由源验证资源公钥基础设施(RPKI)允许AS创建Route OriginAuthorization(ROA)记录,声明其有权通告特定IP前缀BGP路由源验证(BGP OriginValidation)使用这些ROA验证接收到的BGP路由,防止前缀劫持攻击会话保持与重连BGP计时器调整Keepalive机制1优化Hold Time和Keepalive间隔平衡可靠性与开BGP使用定期的Keepalive消息维持会话活跃销备份路径平滑重启Additional Paths功能可预先计算备用最佳路径Graceful Restart允许控制平面重启时继续转发BGP会话维护是确保路由稳定性的关键每个BGP会话使用两个重要计时器Keepalive定时器控制发送保持活动消息的频率(默认60秒),Hold定时器定义在不接收任何消息后会话被认为失效的时间(默认180秒)在高可用性要求的环境中,可以配置更短的计时器值以加速故障检测,但这会增加控制平面负担BGP GracefulRestart(GR)是一种高级特性,允许路由器在控制平面重启(如BGP进程重启或Supervisor切换)期间继续根据先前的BGP信息转发流量这显著减少了网络中断,但需要邻居路由器也支持此功能基本配置命令()BGP Cisco!启用BGP进程,指定本地AS号router bgp65001!配置BGP邻居,指定其AS号neighbor
192.
168.
1.2remote-as65002!配置更新源接口(常用于iBGP)neighbor
10.
0.
0.2update-source Loopback0!配置多跳eBGPneighbor
172.
16.
1.1ebgp-multihop2!配置MD5认证neighbor
192.
168.
1.2password Cisco123!配置路由反射器neighbor
10.
0.
0.3route-reflector-client!激活IPv4单播地址族address-family ipv4unicastneighbor
192.
168.
1.2activatenetwork
10.
10.
10.0mask
255.
255.
255.0exit-address-family!应用路由策略neighbor
192.
168.
1.2route-map FILTER-IN inneighbor
192.
168.
1.2route-map SET-LOCAL-PREF out基本配置命令(华为锐捷)BGP/#华为配置示例bgp65001#配置BGP邻居peer
192.
168.
1.2as-number65002#配置更新源接口peer
10.
0.
0.2connect-interface LoopBack0#配置多跳eBGPpeer
172.
16.
1.1ebgp-max-hop2#配置密码认证peer
192.
168.
1.2password cipherHuawei123#配置路由反射器peer
10.
0.
0.3reflect-client#IPv4单播地址族配置ipv4-family unicast#激活邻居peer
192.
168.
1.2enable#通告网络network
10.
10.
10.
0255.
255.
255.0#应用策略peer
192.
168.
1.2route-policy FILTER-IN importpeer
192.
168.
1.2route-policy SET-LP export#IPv6单播地址族如需配置ipv6-family unicastpeer2001:db8::2enable单点邻居配置示例eBGP网络拓扑Cisco配置示例企业边界路由器AS65001与ISP路由器AS65002直连企业内部!企业路由器配置网络为
192.
168.
0.0/16,需要通过BGP向ISP通告router bgp65001连接信息bgp router-id
192.
168.
1.1neighbor
203.
0.
113.1remote-as65002•企业路由器接口:
203.
0.
113.2/30neighbor
203.
0.
113.1description ISP-A•ISP路由器接口:
203.
0.
113.1/30address-family ipv4network
192.
168.
0.0mask
255.
255.
0.0neighbor
203.
0.
113.1activateexit-address-family!路由重分发可选ip route
192.
168.
0.
0255.
255.
0.0Null0单点邻居配置示例iBGPR2配置(Cisco语法)R1配置(Cisco语法)网络情景首先确保内部路由协议已使环回接口相互可达router bgp65001在AS65001内部,两台核心路由器R1和R2需建立bgp router-id
10.
1.
1.2iBGP邻居关系两台路由器通过各自的环回接口建neighbor
10.
1.
1.1remote-as65001router bgp65001立iBGP,以增强连接稳定性neighbor
10.
1.
1.1update-sourcebgp router-id
10.
1.
1.1Loopback0R1的环回接口:
10.
1.
1.1/32neighbor
10.
1.
1.2remote-as65001neighbor
10.
1.
1.1description R1-neighbor
10.
1.
1.2update-sourceR2的环回接口:
10.
1.
1.2/32iBGPLoopback0neighbor
10.
1.
1.2description R2-address-family ipv4iBGPnetwork
172.
16.
2.0mask
255.
255.
255.0address-family ipv4neighbor
10.
1.
1.1activatenetwork
172.
16.
1.0maskneighbor
10.
1.
1.1next-hop-self
255.
255.
255.0exit-address-familyneighbor
10.
1.
1.2activateneighbor
10.
1.
1.2next-hop-selfexit-address-family路由通告控制BGPnetwork命令redistribute命令使用network命令可以将路由通过redistribute命令可以将其表中已存在的路由通告给BGP他路由源(如静态路由、邻居这种方式要求路由已经OSPF、EIGRP等)学习到的路存在于IP路由表中(可通过静由重分发到BGP中这种方式态路由或IGP学习)network更为自动化,但需要谨慎使命令适合通告本地网络,控制用,避免误通告内部路由到外精确,但需要手动配置每个网部网络通常需要配合路由过络滤使用条件性路由通告BGP支持条件性路由通告(Conditional RouteAdvertisement),只有在特定条件满足时才通告某些路由这通过advertise-map和exist-map(或non-exist-map)参数实现,可以基于其他路由的存在或不存在来决定是否通告特定路由下一跳修改实例BGP第三方下一跳问题next-hop-self解决方案在iBGP环境中,当边界路由器从eBGP邻居学习路由后,默认将保持原始下一跳地址不变使用next-hop-self命令可以解决第三方下一跳问题配置后,边界路由器在向iBGP邻居通告这会导致AS内其他路由器无法到达外部网络的下一跳地址,称为第三方下一跳问题例路由时,会将下一跳修改为自己的地址(通常是更新源接口地址)这确保AS内所有路由如,R1从ISP学习
10.
0.
0.0/8的路由,下一跳为ISP路由器地址
172.
16.
1.1,当R1将此路由通器都能到达BGP路由的下一跳告给R2时,下一跳仍为
172.
16.
1.1,但R2可能无法到达此地址router bgp65001neighbor
10.
1.
1.2remote-as65001neighbor
10.
1.
1.2next-hop-self出入口策略配置BGP入站路由过滤出站路由过滤入站过滤用于控制从邻居接收哪些路由以下是使用前缀列表和路由映射实现入出站过滤控制向邻居通告哪些路由站过滤的示例!创建前缀列表!创建前缀列表ip prefix-list ALLOWED-OUT permit
192.
168.
0.0/16le24ip prefix-list ALLOWED-IN permit
10.
0.
0.0/8le24ip prefix-list ALLOWED-IN permit
172.
16.
0.0/12le24!AS路径过滤ip prefix-list ALLOWED-IN deny
0.
0.
0.0/0le32ip as-path access-list10permit^$!创建路由映射!路由映射route-map ISP-IN permit10route-map ISP-OUT permit10match ip address prefix-list ALLOWED-IN match ipaddress prefix-list ALLOWED-OUTset local-preference150match as-path10set community65001:100!应用到BGP邻居router bgp65001!应用到BGP邻居neighbor
192.
168.
1.1route-map ISP-IN inrouter bgp65001neighbor
192.
168.
1.1route-map ISP-OUT out路由聚合配置BGP基本聚合配置抑制原始路由使用aggregate-address命令创建聚合路由例如,将使用summary-only选项可抑制所有被聚合的具体路由
192.
168.
0.0/24到
192.
168.
255.0/24的多个路由聚合为
192.
168.
0.0/16router bgp65001aggregate-address
192.
168.
0.
0255.
255.
0.0router bgp65001summary-onlyaggregate-address
192.
168.
0.
0255.
255.
0.0这会只通告聚合路由
192.
168.
0.0/16,所有具体路由将被默认情况下,原始具体路由仍会通告,聚合路由作为额外抑制路由添加选择性抑制与属性控制使用suppress-map可以选择性地抑制部分路由!创建匹配条件ip prefix-list SUPPRESS-ROUTES seq10permit
192.
168.
128.0/24le24!创建suppress-maproute-map SUPP-SOME permit10match ipaddress prefix-list SUPPRESS-ROUTES!应用到聚合命令router bgp65001aggregate-address
192.
168.
0.
0255.
255.
0.0suppress-map SUPP-SOME策略配置实例LOCAL_PREF多出口场景企业连接两个ISP,需要优先使用ISP-A路由映射创建创建路由映射设置不同优先级应用LOCAL_PREF为ISP-A路由设置更高的LOCAL_PREF假设企业网络AS65100同时连接ISP-A AS65200和ISP-B AS65300,希望将ISP-A作为主要出口,ISP-B作为备份可以通过设置从ISP-A学习到的路由具有更高的LOCAL_PREF值来实现!为从ISP-A学习的路由设置较高的LOCAL_PREFip prefix-list ISP-A-ROUTES permit
0.
0.
0.0/0route-map ISP-A-IN permit10match ipaddress prefix-list ISP-A-ROUTESset local-preference200!为从ISP-B学习的路由设置较低的LOCAL_PREFip prefix-list ISP-B-ROUTES permit
0.
0.
0.0/0route-map ISP-B-IN permit10match ipaddress prefix-list ISP-B-ROUTESset local-preference100!应用路由映射到各ISP邻居router bgp65100neighbor
192.
168.
1.1remote-as65200neighbor
192.
168.
1.1route-map ISP-A-IN inneighbor
192.
168.
2.1remote-as65300neighbor
192.
168.
2.1route-map ISP-B-IN inMED和多出口配置MED基本概念MED配置实例MED(Multi-Exit Discriminator)是BGP的一个可选非传递属性,用于影响从其他AS进入本AS的流量与LOCAL_PREF控制出站流量不假设AS65001有两条链路连接到AS65002,希望特定流量优先从链路1进入同,MED用于影响入站流量决策MED值越小,路径越优先MED仅在来自同一AS的多条路径间比较,默认不跨AS比较!创建路由映射设置MEDip prefix-list MY-ROUTES permit
192.
168.
0.0/16le24route-map SET-MED-LINK1permit10match ipaddress prefix-list MY-ROUTESset metric50route-map SET-MED-LINK2permit10match ipaddress prefix-list MY-ROUTESset metric100!应用到出站方向router bgp65001neighbor
10.
1.
1.2remote-as65002neighbor
10.
1.
1.2route-map SET-MED-LINK1outneighbor
10.
2.
1.2remote-as65002neighbor
10.
2.
1.2route-map SET-MED-LINK2outBGP反射器配置案例拓扑规划确定反射器和客户端位置反射器配置指定客户端关系集群设置多反射器场景下配置集群ID在AS65001中,我们将R1配置为路由反射器,R
2、R3和R4作为其客户端R5是非客户端iBGP对等体R1(路由反射器)配置router bgp65001bgp router-id
10.
1.
1.1!配置客户端neighbor
10.
1.
1.2remote-as65001neighbor
10.
1.
1.2update-source Loopback0neighbor
10.
1.
1.2route-reflector-clientneighbor
10.
1.
1.3remote-as65001neighbor
10.
1.
1.3update-source Loopback0neighbor
10.
1.
1.3route-reflector-clientneighbor
10.
1.
1.4remote-as65001neighbor
10.
1.
1.4update-source Loopback0neighbor
10.
1.
1.4route-reflector-client!配置非客户端neighbor
10.
1.
1.5remote-as65001neighbor
10.
1.
1.5update-source Loopback0!可选设置集群ID(多反射器环境)bgp cluster-id1客户端路由器如R2只需配置与反射器的iBGP邻居关系,无需特殊设置BGP联盟配置实例规划联盟结构配置联盟标识将AS65000分为子AS65001和65002在所有路由器上配置联盟参数建立子AS间邻居建立子AS内邻居配置子AS之间的eBGP联盟邻居配置子AS内的iBGP邻居关系假设我们要将AS65000分为两个子AS65001和65002,对外仍显示为单一AS65000子AS65001中的路由器R1配置router bgp65001bgp confederationidentifier65000bgp confederationpeers65002!子AS内的iBGP邻居neighbor
10.
1.
1.2remote-as65001!子AS间的联盟eBGP邻居neighbor
10.
2.
1.1remote-as65002社区属性示例BGP设置社区值匹配社区•使用route-map设置社区属性•使用社区列表定义匹配条件•可以设置单个或多个社区值•支持标准和扩展社区列表•使用additive关键字保留现有社区•可使用正则表达式匹配复杂模式route-map SET-COMM permit10ip community-list1permit65001:100matchipaddressprefix-list CUSTOMERip community-list2permit65001:200set community65001:10065001:200route-map MATCH-COMM permit10additive matchcommunity12社区属性传递•默认情况下BGP会向eBGP邻居传递社区属性•通过send-community命令控制传递行为•支持标准、扩展和大型社区类型router bgp65001neighbor
192.
168.
1.2send-communityneighbor
192.
168.
1.2send-community extendedBGP与MPLS VPN典型配置MPLSVPN配置主要集中在PE(Provider Edge)路由器上,包括VRF定义、PE-CE路由协议配置、MP-BGP邻居建立等步骤以下是在Cisco PE路由器上的典型配置!定义VRFip vrf CUSTOMER-Ard65000:100route-target export65000:100route-target import65000:100!配置接口interface GigabitEthernet0/0ip vrfforwarding CUSTOMER-Aip address
192.
168.
1.
1255.
255.
255.0!配置PE-CE路由(静态、RIP、OSPF或BGP)router bgp65000address-family ipv4vrfCUSTOMER-Aneighbor
192.
168.
1.2remote-as65100neighbor
192.
168.
1.2activateredistribute connectedexit-address-family!配置PE-PE MP-BGProuter bgp65000neighbor
10.
0.
0.2remote-as65000neighbor
10.
0.
0.2update-source Loopback0address-family vpnv4neighbor
10.
0.
0.2activateneighbor
10.
0.
0.2send-community extendedexit-address-family邻居故障排查步骤BGP检查邻居状态使用show ipbgp summary或show ipbgp neighbors命令检查BGP邻居状态如果状态不是Established,可以进一步排查原因各状态表示不同的问题Idle可能是配置错误,Active通常是连接建立问题,OpenSent/OpenConfirm可能是参数不匹配验证网络连通性使用ping和traceroute检查是否可以到达对端地址确认TCP179端口是否可达(可使用telnet测试)检查中间设备(如防火墙)是否允许BGP流量通过对于多跳eBGP,验证TTL设置是否正确检查配置错误验证双方AS号配置是否一致检查更新源接口设置和认证配置对于eBGP,确认ebgp-multihop配置(如需要)检查BGP定时器是否一致,以及路由器ID是否唯一查看日志和调试检查系统日志中的BGP相关消息使用debug ipbgp命令启用BGP调试(生产环境中谨慎使用)对于NOTIFICATION消息,检查具体的错误代码和原因利用packetcapture工具分析BGP数据包路由环路与黑洞问题BGP常见路由环路原因路由黑洞原因及解决方法•错误的网络通告或路由重分发路由黑洞是指数据包被发送到无法到达目的地的路径,主要原因包括•AS_PATH预置(prepending)配置错误•反射器拓扑设计不当•NEXT_HOP不可达确保BGP下一跳地址可以通过IGP到达,•联盟配置错误或使用next-hop-self•路由泄漏(route leaking)问题•不完整路由通告检查路由过滤器是否意外阻止了某些关键路由•多AS环境中的策略冲突•聚合路由配置不当检查是否存在缺失的具体路由路由环路的典型症状包括连通性间歇性中断、TTL超时错误、路•AS_PATH循环使用as-path access-list过滤含有本地AS的径跟踪显示循环路径等路由排查工具traceroute、show ipbgp、show iproute等命令可以帮助识别路由黑洞性能和收敛问题BGP万60-90s10-30s50+默认收敛时间优化后收敛时间全球BGP路由条目标准BGP参数下的典型收敛延迟应用BFD和调整定时器后的收敛时间当前互联网BGP路由表规模BGP收敛性能优化的主要技术包括
1.BFD(双向转发检测)快速检测链路故障,通常可在亚秒级别检测到邻居失效
2.调整BGP定时器减小keepalive和holdtime值以加快故障检测,但需平衡CPU负载
3.使用BGP FastExternal Fallover立即重置直连eBGP邻居会话
4.路由聚合减少路由表大小和更新数量
5.路由过滤只接收必要的路由,减轻路由处理负担
6.BGP GracefulRestart在控制平面重启期间保持数据转发
7.路由反射器优化合理设计反射器拓扑,避免过度集中或分散
8.Update Group优化利用BGP实现的Update Group机制优化路由生成和传播在大型网络中,防止BGP更新风暴也很重要,可通过路由抑制、前缀限制和渐进式通告等机制实现行业应用案例运营商互联1三大运营商互联架构跨境链路策略设计中国三大运营商(电信、联通、移动)各自拥有独立的自治系统(AS)中国电信跨境链路是连接中国与国际互联网的关键通道,通常经过香港、美国、新加坡等地的国(AS4134)、中国联通(AS4837)和中国移动(AS9808)它们通过北京、上海、际出口点运营商通常在这些链路上实施严格的路由策略控制广州等多个城市的骨干网交换点(IXP)实现互联每个运营商内部使用iBGP全互联或•入站策略使用AS_PATH和社区属性控制国际流量入境点路由反射器架构,运营商之间通过eBGP交换路由•出站策略通过LOCAL_PREF和MED优化出境流量路径•安全过滤实施严格的前缀过滤和RPKI验证•流量工程使用BGP社区和预置技术实现负载均衡行业应用案例企业多出口2多出口需求与设计实施策略与技术大型企业通常需要通过多个ISP连接互联网,以提高可用性和性企业多出口BGP实施通常采用以下技术能典型的设计目标包括
1.主备链路设计使用LOCAL_PREF将一个ISP设为主要出口•高可用性确保单一ISP故障不会导致完全断网
2.前缀分流不同目的地使用不同ISP出口•负载均衡在多条链路间合理分配流量
3.AS路径操作影响入站流量的路径选择•流量工程根据业务类型选择最佳出口
4.有条件通告备份链路仅在主链路故障时使用•成本优化根据计费模式优化流量分配
5.BGP社区配合ISP实现更精细的路由控制通常采用两层BGP设计边界路由器与ISP建立eBGP连接,内部
6.部分路由表小型企业可只接收默认路由而非全路由核心路由器与边界路由器建立iBGP连接总结与答疑BGP核心特性回顾配置最佳实践BGP是互联网的核心路由协议,专良好的BGP配置应遵循安全性、可为AS间路由设计它具有路径向扩展性和稳定性原则始终使用路量特性,通过丰富的路径属性实现由过滤控制通告范围,合理使用路精细的路由控制BGP使用TCP保由反射器和联盟解决扩展问题,实证可靠传输,通过增量更新机制提施适当的安全措施如MD5认证和高效率,适合处理大型路由表TTL安全,并通过路由聚合减小路由表规模常见问题解决BGP故障排查应遵循分层方法首先检查网络连通性和TCP连接,然后验证BGP配置参数,最后分析路由策略和属性掌握show命令和调试技术是快速解决问题的关键定期监控路由表状态和BGP会话可以预防潜在问题本课程全面介绍了BGP协议的原理和配置方法,从基础概念到高级应用,为您提供了系统的BGP知识体系希望这些知识能够帮助您在实际网络工程工作中更好地设计、配置和维护基于BGP的网络系统。
个人认证
优秀文档
获得点赞 0