BGP安全
本文最后更新于:2025年1月1日 下午
客户与提供商之间的路由声明及多提供商与客户同时为提供商的路由设计
路由声明的基本概念
- 客户→提供商的路由声明:客户向提供商声明自己所拥有的IP前缀,表明客户的网络可以被外部访问。
- 提供商→客户的路由声明:提供商向客户声明其能够访问的网络,包括提供商自己的网络及其他通过提供商可达的网络。
问题1:客户有多个提供商时的路由设计
当客户有多个提供商时,路由设计通常采用以下策略:
- 多宿主(Multihoming):
- 客户连接多个提供商,确保网络的冗余和高可用性。
- 每个提供商将通过BGP宣布客户的IP前缀,客户可以根据BGP策略来选择优先使用的路由。
- 客户通过设置默认路由(0.0.0.0/0)指向多个提供商,以确保当一个提供商失效时,另一个提供商仍能提供服务。
- BGP策略控制:
- 客户通过调整BGP的
local-pref
、AS路径等参数来控制流量走向,优化路由选择。 - 例如,设置一个提供商为主要路由,另一个为备份,或者在多个提供商间实现负载均衡。
- 客户通过调整BGP的
- 冗余和路由反射:
- 客户可以设置多个BGP会话与不同的提供商连接,确保冗余。
- 使用BGP路由反射器(Route Reflectors)进一步优化路由,并确保即使一个提供商失效,流量仍可通过其他路径传输。
问题2:客户同时是提供商时的路由设计
当客户既是提供商又是客户时,路由配置变得更加复杂,主要涉及以下几个方面:
- 上游网络的路由声明:
- 客户需要向上游提供商声明其IP前缀,确保其网络能够被外部访问。
- 下游客户的路由管理:
- 作为提供商,客户还需要管理来自下游客户的路由声明,并通过BGP向其上游网络提供下游客户的路由信息。
- 客户需要保证下游客户能够通过其网络访问互联网,同时确保自己的网络与上游的互通性。
- BGP对等关系和流量管理:
- 客户需要建立与多个上游提供商和下游客户的BGP对等连接(Peering)。
- 客户需要根据流量需求和网络状态进行合理的流量管理,确保上下游流量的平衡和稳定。
- 策略和路由选择:
- 客户作为提供商时,需要根据BGP策略优化上下游的流量分配,可能需要设置优先级、路由过滤和负载均衡策略。
总结
- 多个提供商:客户连接多个提供商时,通过BGP协议进行冗余设计和流量优化,确保网络可靠性和高可用性。
- 客户同时为提供商:客户作为提供商时,需要管理上下游的BGP路由声明,并进行合理的流量管理和策略控制,以保证网络互通性。
制定路由策略以满足商业关系模型:Transit与对等关系
一、背景及商业关系概述
在互联网中,不同的自治系统(AS)之间通过不同的商业模式和协议建立连接。常见的商业关系包括:
- Transit服务(P-C模型,Provider-Customer):
- 在这种关系下,一个ISP作为提供商(Provider)向另一个网络(客户,Customer)提供接入互联网的服务。
- 客户为通过提供商的网络访问互联网而支付费用。
- Transit流量指的是流经提供商网络的流量,其起点和终点都不在提供商的网络内。
- 对等(P2P模型,Peer-to-Peer):
- 在对等关系下,两个AS之间通过BGP(边界网关协议)直接交换流量,但不支付费用。
- 各自不为对方的其他客户或提供商传递流量。
- 对等关系通常是为了互惠互利,两者共享流量而不收取费用。
二、如何制定路由策略?
在不同的商业模型下,路由策略决定了流量的传递方式和流量交换的条件。制定路由策略的目的是确保符合各方的商业约定,优化网络流量,并确保不同AS之间的连接不违反既定的商业关系。下面分析如何在Transit服务和对等关系中应用路由策略。
1. Provider-Customer(P-C)模型的路由策略
在Provider-Customer(P-C)模型中,客户通过向提供商支付费用获得访问互联网的能力,而提供商则负责将客户的流量传递到互联网的其他部分。为了保证该模型的实现,路由策略的设计需要满足以下几个要点:
- 客户的流量宣告:
- 客户向提供商声明自己的IP前缀。客户通过BGP向提供商宣布其网络的路由(例如,客户的IP地址段)。
- 提供商接收这些路由并将其转发到外部网络。提供商会确保其他网络能够访问到客户的IP前缀。
- 提供商的流量宣告:
- 提供商宣布自己的IP前缀,以及通过BGP将其他网络的路由传播到客户。提供商必须确保客户能够访问互联网,并且可以将来自客户的流量路由到其他ISP或互联网。
- 提供商将其IP前缀和可以到达的其他网络地址(例如,互联网)通过BGP声明给客户,确保客户能够访问这些外部网络。
- 路由过滤:
- 提供商在接收客户的路由声明时,通常会对这些路由进行过滤。提供商只接收来自客户的路由,而不会将客户的流量再转发给其他提供商或客户(即不为客户的客户提供Transit服务)。
- 提供商应通过BGP的路由过滤策略,避免客户的流量向其他提供商或对等方传递,从而避免违反合同。
- 默认路由:
- 客户一般会将其默认路由(0.0.0.0/0)指向提供商,以确保所有未指定的流量都通过提供商的网络访问互联网。
应用示例:
- 客户路由策略:客户的AS将路由策略设置为仅接收提供商的网络流量,并将默认路由指向提供商。
- 提供商路由策略:提供商设置BGP策略,以保证它只将客户的流量转发到互联网,而不允许将其他流量传递给客户。
2. Peer-to-Peer(P2P)模型的路由策略
在Peer-to-Peer模型中,两个AS之间直接交换流量,并且没有支付费用。这种关系通常建立在互惠互利的基础上,适用于流量交换量较大的网络。为保证对等关系的公正性,需要特别注意以下几点:
- 流量限制与互不传递:
- 在对等关系中,两个AS不会为对方的客户或提供商传递流量。因此,BGP路由策略需要避免将对方网络的流量转发到其他非对等AS。
- 需要设置规则,确保双方只交换各自网络内的流量,而不是扩展到其他网络。
- 对等互惠原则:
- 在P2P关系中,路由策略必须保证双方互惠。通常,双方会交换各自的路由信息,但需要确保流量交换是对等的,即双方在数据流量的传递上保持平衡。
- 一方若通过BGP协议宣布了对方的网络,那么该对等方应该不会单方面增加任何额外费用或让路由流量转发至其他未授权的网络。
- 路由过滤与策略控制:
- 在对等关系中,BGP策略通常会设置过滤规则,避免非对等流量的传递。
- 可以使用BGP的AS路径过滤(AS Path Filtering)来确保某些流量不被错误地传递。例如,不允许从某个P2P对等方传递流量到其他非对等的AS。
应用示例:
- P2P对等方路由策略:每个AS仅允许交换对等关系中的流量,而不为对方的客户网络或提供商网络传递流量。
- BGP策略控制:AS可以设置BGP路由过滤规则,确保只接收来自对等方的网络,而不将对方的流量转发到其他非对等的网络。
三、如何应用这些路由策略?
- BGP路由策略应用:
- 使用BGP属性如local-pref、AS-path、community等来实现流量的偏好选择。例如,在P-C模型中,客户可以优先选择提供商的路由,而在P2P模型中,双方只交换对等流量。
- 利用路由过滤(Route Filtering)来限制不符合商业关系的路由,如避免客户的流量被传递给其他提供商,或限制P2P网络只交换对等流量。
- 默认路由与策略:
- 在P-C模型中,客户可以配置默认路由(0.0.0.0/0)指向提供商,而提供商配置路由来确保互联网流量的正确转发。
- 在P2P模型中,双方配置策略来确保只交换对等流量,不为其他AS传递流量。
- 负载均衡与冗余:
- 对于多个提供商或多个对等连接,可以配置BGP负载均衡和冗余策略,确保流量在多个路径间分配,同时避免流量被错误地传递给不合适的网络。
四、总结
路由策略的关键在于通过BGP协议控制流量的传递和优化,确保符合不同商业模型的约定。对于Provider-Customer模型,路由策略确保客户流量仅通过提供商的网络访问互联网,而不会传递给其他网络。对于Peer-to-Peer模型,策略确保两者仅交换对等流量,避免为其他网络传递流量。通过路由过滤、BGP属性调整和默认路由配置,可以有效实现这些目标。
流量传递原则
- 客户不为提供商之间传递流量
- 对等AS不为各自的其他对等AS或提供商传递流量
无谷(Valley-Free)原则与路由策略的应用
停止“上山”后,就只能一直“下山”
一、无谷(Valley-Free)原则概述
无谷原则(Valley-Free)是一种BGP(边界网关协议)路由设计规则,用于确保AS路径的“健康性”和避免路径形成“谷底”情况。无谷原则要求在AS路径中,不允许出现P2C(Provider to Customer)或P2P(Peer to Peer)之后,出现C2P(Customer to Provider)或P2P。这一原则旨在确保路由传递符合商业协议,避免在不同类型的商业关系之间形成无效的流量传递或不合理的流量路径。
二、无谷(Valley-Free)原则的细节
无谷原则通过控制AS路径的传播,防止将来自提供商(Provider)或对等(Peer)的路由继续传递给其他的提供商或对等网络。这一规则确保了网络中的流量不会绕过商业关系,避免不符合合同约定的流量传播。
无谷原则的基本要求:
- 在AS路径中,P2C(Provider to Customer)和P2P(Peer to Peer)之后,不允许再出现C2P(Customer to Provider)或P2P。
- 也就是说,如果一个AS的路径中已经包括了从一个提供商(Provider)或对等(Peer)来的流量,那么此流量不能再通过该AS传递给另一个提供商或对等连接。
三、如何在路由策略中应用无谷原则?
1. 控制路由的传播
无谷原则的核心在于控制路由的传播,避免不合理的路由转发。其主要通过以下几种方式来应用:
- 不继续声明给其他Provider或Peer:
- 从一个Provider或Peer收到的路由,不能继续转发或声明给其他的Provider或Peer。具体来说,如果一个AS接收到了来自某个提供商的路由信息,它不能再将这个路由声明给另一个提供商或对等连接(P2C → C2P 或 P2P → P2P)。
- 这种做法保证了不同类型的AS之间的流量不会相互干扰或转发,从而维护了各自之间的商业关系。
2. 传出时的过滤
- 传出路由过滤:当一个AS将路由信息传递给其他AS时,需要遵循“无谷”规则,确保其不违反P2C或P2P的传递原则。
- 如果一个AS向一个提供商或对等关系声明路由,该AS就是在为对方提供流量转发服务。此时,需要通过BGP路由过滤控制,防止将接收到的路由继续传递给其他Provider或Peer。
- 例如,AS3接收到来自AS2(一个Provider)的路由信息时,AS3不能将该路由再声明给其他的Provider(例如AS1),否则就会形成一个不符合“无谷”原则的路径。
3. 路由声明与服务提供的关系
- 向谁声明路由,意味着为谁提供服务:
- 在BGP中,路由声明不仅仅是一个信息传播的过程,它还代表着服务的提供。向某个AS声明路由意味着这个AS为接收方提供了流量转发服务。例如,如果AS3向AS2声明了路由,意味着AS3正在为AS2的客户提供流量传递服务(即使这些流量并非来自AS2的客户)。
- 根据无谷原则,AS3不能将从AS2接收到的路由再传递给其他提供商,因为这将意味着AS3为其他提供商提供了不应该传递的流量,从而违反了P2C或P2P之间的商业协议。
四、应用实例:无谷路由策略
假设有以下四个自治系统(AS):
- AS1:一个大型的提供商(Provider)
- AS2:一个客户(Customer),向AS1支付费用以获取互联网接入
- AS3:一个对等(Peer)网络,提供互惠互利的流量交换
- AS4:另一个提供商(Provider)
1. 路由传播过程:
AS2接收AS1的流量
:AS2作为客户接收AS1提供的互联网流量,AS1为AS2提供了接入服务。
- 根据无谷原则,AS2不能将从AS1接收到的路由继续向AS4(另一个Provider)传递,因为这会违反P2C→C2P的路径结构。
AS3接收AS2的路由
:假设AS3与AS2建立了对等连接(Peer-to-Peer)。AS3会接收到来自AS2的路由信息。
- 根据无谷原则,AS3不能将从AS2接收到的路由继续转发到其他Provider,比如它不能将路由传递给AS1,因为这会违反P2P→C2P的路径结构。
2. 无谷路由策略应用:
- 过滤规则:AS2接收到来自AS1的路由后,应该设置路由过滤规则,避免将这些路由进一步声明给其他Provider或Peer(如AS4)。即使AS2与AS4有连接,AS2也不能将这些流量声明给AS4,因为这会形成不符合无谷原则的路径(P2C→C2P)。
- 传出路由:当AS2将路由信息发送给AS3时,AS2必须保证其不会将这些路由进一步传递给其他不符合协议的对等方或提供商。
五、总结
无谷(Valley-Free)原则的核心在于确保BGP路径中不出现不符合商业协议的流量传递。通过控制路由传播,特别是通过BGP的路由过滤,确保从Provider或Peer接收到的路由不会被错误地传递给其他提供商或对等方。这一策略有助于保护不同类型的商业关系(如Provider-Customer和Peer-to-Peer)之间的流量交换,并避免违反合同条款。无谷原则通过过滤和限制路由传播,确保每个AS之间的流量传递符合既定的协议和商业模式。
客户优先原则(Prefer-Customer)与路由策略的应用
前提先遵循无谷原则!!!
一、客户优先原则(Prefer-Customer)概述
客户优先原则(Prefer-Customer)是一种路由选择策略,主要应用于BGP(边界网关协议)路由中,目的是优先选择来自客户的路由。当一个AS有多个路由可供选择时,按照客户优先的原则,优先选择由客户(P2C)提供的路径,其次选择与对等网络(P2P)建立的路径,最后选择来自提供商(C2P)的路径。
这种路由策略有助于确保客户的流量优先通过客户自己的连接,从而提供更好的服务质量和更稳定的流量路径。这也反映了客户付费与服务优先级之间的商业关系,体现了网络运营商对其客户的优先保障。
二、客户优先路由策略
客户优先路由策略的核心思想是:当AS面临多个路由选项时,它会按以下优先级选择路由:
- 优先选择客户的路由(P2C):最优先选择来自客户的路径,这是因为客户向提供商付费,为了满足服务合同,提供商应确保客户的流量优先通过客户的路径进行转发。
- 其次选择对等连接的路由(P2P):如果客户的路由不可用或不优先,提供商会选择对等(Peer-to-Peer)网络中的路径。
- 最后选择提供商的路由(C2P):如果没有客户或对等连接的路径可用,最后才选择通过其他提供商(Provider)提供的路径。
这种策略通过BGP路由过滤、优先级标记和路由选择算法来实现。
三、如何在路由策略中应用客户优先原则?
客户优先原则在路由传播和选择过程中,要求网络运营商明确优先级,并在路由声明和流量转发时进行标记和过滤。具体可以通过以下方法来实施:
1. 选择所使用的路由
在实际操作中,AS需要根据收到的路由信息来做路由选择。基于客户优先原则,网络运营商会根据路由的来源对其进行排序,优先选择来自客户的路由,然后才是来自对等网络的路由,最后是来自提供商的路由。
- 客户路径(P2C)优先:当收到来自不同来源的多条路由时,优先选择来自客户的路由。这可以通过在BGP路由策略中设置较低的本地优先级值或更高的BGP优先级来实现。
- 对等连接路径(P2P)次选:如果客户的路径不可用或不具备最佳条件,则选择对等网络的路径。对等路径通常会根据BGP AS路径长度和路由的成本来进行评估。
- 提供商路径(C2P)最后:当其他两种路径都不可用时,才选择来自其他提供商的路由。
2. 传入路由时标记优先级
在接收路由时,网络运营商会基于路由的来源标记优先级。这种标记方式可以帮助在之后的路由转发过程中明确优先使用哪个路径。
- 优先使用来自客户的路由:一旦路由接收到来自客户的路径,就会通过BGP路由映射或路由过滤策略,将该路径的优先级设置为最高,从而确保流量优先从客户的连接流出。
- BGP标记:可以利用BGP的社区标签或路由映射来标记路由的来源。对于来自客户的路由,分配更高的优先级(如较低的AS路径值或较短的路径长度),而对等或提供商的路由则设置较低优先级。
3. 路由传播时控制策略
在将路由信息传播给其他AS时,网络运营商会基于客户优先的原则控制路由的传播:
- 路由传播过滤:只允许符合优先级的路由传播。例如,网络运营商可以配置BGP路由过滤器,确保来自客户的路由信息优先传播,而来自提供商或对等的路由信息要根据需要进行过滤或降低优先级。
- 客户的路由声明传播:当接收到来自客户的路由声明时,网络运营商会根据客户优先原则,通过BGP路由策略控制这些路由信息,确保客户的流量优先传播。
四、示例应用:客户优先路由策略
假设有以下四个自治系统(AS):
- AS1:提供商(Provider)
- AS2:客户(Customer),向AS1支付费用以获取互联网接入
- AS3:对等网络(Peer)
- AS4:另一个提供商(Provider)
在这种情况下,AS2是AS1的客户,且AS2与AS3建立了对等连接。
1. 路由选择过程
- 优先选择来自AS2(客户)的路由:假设AS2通过其连接向AS1声明了一条路由。根据客户优先原则,AS1优先选择来自AS2的路径来转发流量。
- 其次选择来自AS3(对等连接)的路由:如果AS2的路由不可用或质量较差,AS1会考虑使用来自AS3的对等路径(P2P)。
- 最后选择来自AS1(提供商)的路由:如果没有客户和对等连接的路由,AS1才会选择其他提供商的路由(C2P),但这是最后的选择。
2. BGP路由策略
- AS1的路由策略:
- 配置BGP路由过滤器,使得来自客户AS2的路由优先级更高。
- 设置AS路径长度和BGP优先级值,确保客户的路径优先通过。
- 在AS1接收来自AS2、AS3或其他提供商的路由时,基于路由来源和优先级进行标记和选择。
3. BGP社区标记和路由映射
- AS1通过BGP社区标签来标记不同来源的路由,例如,将来自客户的路由标记为“客户优先”标签,并设置较低的优先级值或较短的AS路径,以确保流量优先走客户的路径。
- AS1使用路由映射来控制路由的选择与传播,确保优先选用来自客户的路由。
五、总结
客户优先原则通过明确路由的选择优先级,保证了客户流量的优先处理。这种策略在BGP中应用广泛,确保了客户网络的流量优先通过客户的路径进行转发,体现了客户付费关系的重要性。通过BGP路由映射、路由过滤器和BGP社区标记等策略,网络运营商可以有效地实现客户优先的路由选择,优化流量路径,提升服务质量。
Tier-1自治域与“无谷”原则的实现
一、Tier-1自治域的定义
Tier-1自治域(Tier-1 AS)是指一种互联网服务提供商,其网络在全球范围内不依赖任何外部的传输服务,能够通过自有的网络直接到达整个互联网。这意味着,Tier-1 AS不需要借助任何提供商(Provider)或中介网络来实现与其他网络的互联,它们通过与其他Tier-1 AS直接对等(Peering)连接,形成一个完全互联的网络。
Tier-1网络的特点:
- 全网连接:Tier-1 AS之间通过对等连接(P2P)互联,能访问全球的网络,确保对全球互联网的完全接入。
- 不依赖Transit:Tier-1 AS不需要依赖其他ISP的Transit服务,因为它们已经通过互联的对等网络覆盖了整个互联网。
二、如何满足“无谷”原则并保证全连通?
1. “无谷”原则的要求
如前所述,“无谷”原则要求在BGP路由中,P2C或P2P路径之后不能出现C2P或P2P路径。也就是说,一个自治系统(AS)在其路由路径中不允许出现从提供商到客户的逆向传递,或跨越不同类型的商业关系进行流量传递。
对于Tier-1 AS来说,要遵循这一原则,同时保证全网连通,必须确保:
- 每个Tier-1 AS都能与其他Tier-1 AS完全对等连接,形成一个完整的对等网(Full Mesh Peering),而不是依赖某个提供商的Transit服务。
- 路由信息从Tier-1 AS传播到其他Tier-1 AS时,不会违反“无谷”原则,避免出现不合理的流量路径。
2. 全对等连接与“无谷”
Tier-1 AS之间通过对等连接实现互联,通常采取全对等(Full Mesh Peering)的方式。这种方式的好处在于:
- 每个Tier-1 AS都直接与其他Tier-1 AS互连,保证了全连通性,并且不需要通过其他外部网络或提供商来实现流量传递。
- 无谷路径:由于所有Tier-1 AS之间的连接都是对等的(P2P),没有任何一个Tier-1 AS依赖于其他提供商(Provider)或客户(Customer)来传播路由,这符合“无谷”原则,避免了路径中的“谷底”结构。
3. 如何通过P2P连接保持全网连通?
在Tier-1 AS之间实现完全连通的关键在于全对等(Full Mesh Peering)。每一个Tier-1 AS都与其他所有Tier-1 AS建立对等连接,而这些连接不会通过任何外部提供商的Transit路径。具体来说:
- 每个Tier-1 AS与其他Tier-1 AS直接互联,形成一个完全互联的网络。这意味着,所有Tier-1 AS之间都有一条直接的路径,使得网络数据包可以在这些AS之间自由流动,确保互联网的全连通性。
- P2P路由传播:Tier-1 AS之间通过对等连接互通信息,每个AS通过这种对等连接获得其他Tier-1 AS的网络信息,进而确保数据包能够顺利传递到达目标。
- 避免C2P或P2P后出现不合适的路由路径:在对等连接中,由于所有Tier-1 AS的连接都是对等的,不会出现从一个提供商到客户的路径(C2P),也避免了商业关系中的不合理路由传递。
三、两个Tier-1 AS之间如何通信?
虽然Tier-1 AS之间通常采用全对等(Full Mesh Peering)来保证全网连接,但在实际的BGP路由传播中,若两个Tier-1 AS之间没有直接对等连接,也可以通过间接的对等连接进行通信。实现这一点的方法有:
- 间接P2P连接:
- 如果两个Tier-1 AS没有直接建立P2P连接,它们可以通过其他Tier-1 AS作为中介来实现通信。例如,假设AS1与AS2没有直接连接,但它们都与AS3建立了P2P连接。在这种情况下,AS1可以通过AS3将流量转发到AS2,确保两者之间的通信。
- 间接的BGP路由传播:
- 如果某两个Tier-1 AS之间没有直接的P2P连接,它们依然可以通过其他AS(不一定是Tier-1)传播路由信息。尽管这种方式不是最理想的,但仍能确保它们的全网连通性。
四、总结
Tier-1 AS通过建立全对等连接(Full Mesh Peering)实现与其他Tier-1 AS的完全互联,这不仅保证了它们之间的全连通性,而且通过避免依赖任何外部提供商的Transit服务,确保了网络的独立性。在这种完全对等的网络结构下,所有Tier-1 AS都能遵循无谷原则,避免不合理的流量路径传递。
为了满足无谷原则并确保全连通性,Tier-1 AS之间通过P2P连接相互传播路由信息,所有AS之间的路径都不会产生从提供商到客户(C2P)或逆向传递的情况。此外,若两个Tier-1 AS之间没有直接连接,它们可以通过间接的对等连接或其他Tier-1 AS进行路由传播,从而确保了整体的网络连接性和可靠性。
Internet连通条件与Valley-free路径定理
在互联网架构中,任意两个AS(自治系统)之间的连通性是由多个因素决定的,主要涉及Tier-1 AS之间的互联方式以及其他AS到Tier-1的连接路径。以下是该架构的详细分析。
条件1:所有Tier-1 AS间通过P2P形成Full Mesh组网
- Full Mesh架构:所有Tier-1 AS之间通过点对点(P2P)链接直接连接,确保每个Tier-1 AS都能与其他Tier-1 AS进行直接的路由交换。
- 优势:这种全连接结构消除了任何可能的单点故障,并为所有Tier-1之间提供冗余路径,确保网络的高可用性和低延迟。
条件2:其他AS具有一条通往某个Tier-1 AS的上山路径
- 上山路径:指的是其他AS(例如Tier-2或非Transit AS)通过某个Tier-1 AS连接到互联网的路径。在BGP路由中,这通常表现为从较低层次的AS向Tier-1 AS的连接。
- C2P(Customer-to-Provider):这里的“上山”路径通常指向Tier-1 AS,Tier-2或其他非Transit AS作为客户,通过Tier-1 AS提供的连接与互联网其他部分进行通信。
定理:任意两个AS间至少存在一条Valley-free路径
Valley-free路径:指的是在一个AS路径中,没有经过比源AS层次更低的AS(例如Tier-2 AS经过Tier-1 AS再到Tier-1 AS,避免了低层AS的中转)。这种路径遵循了“无谷原则”,确保流量从较高层次的AS(Tier-1)直接或间接传递至其他AS,而不经过中间的较低层次AS。
定理的含义:
- 通过满足上述条件,任意两个AS之间的通信路径至少会遵循“Valley-free”规则。
- 由于所有Tier-1之间是完全互联的,且每个其他AS通过Tier-1连接,确保了从一个AS到另一个AS的流量可以避免通过Tier-2或其他低层AS的中转。
- 这样可以确保跨越多个AS的流量传输是有效且不经过“低谷”路径,即没有低层AS的干预。
总结
根据条件1和条件2,任意两个AS之间至少存在一条Valley-free路径,这表明在现代互联网架构中,通过合适的Tier-1全连接和其他AS的上山路径设计,可以确保网络通信遵循高效的路径,避免不必要的中介和延迟,保障数据传输的稳定性和效率。
BGP4要点总结
BGP4(边界网关协议版本4)是用于在自治系统(AS)之间交换路由信息的标准协议,特别适用于互联网中不同AS之间的路由决策。以下是BGP4的主要要点:
1. 交换网络层可达性信息 (NLRI)
- NLRI (Network Layer Reachability Information):即网络层可达性信息,通常是指IP地址前缀(如10.10.1.0/24)。
- 实际交换内容:交换的信息包含IP前缀(NLRI)和与该前缀相关的BGP属性(如AS路径、下一跳等)。
2. 路径向量协议
- BGP是一种路径向量协议,支持基于策略的路由。
- 通过使用累积更新模式,BGP允许多个路由信息的批量更新,减少了协议的开销。
3. BGP Peer与Peering
- BGP Peer:两台相邻路由器互称为BGP peer。
- Peering过程:BGP peer通过TCP端口179建立通信会话,称为peering。
4. BGP发言人 (BGP Speaker)
- BGP Speaker:运行BGP协议的路由器,负责BGP路由的计算与交换。
- 邻居:配置的BGP peer,表示该BGP speaker与其他路由器的连接。
5. eBGP与iBGP
- eBGP(External BGP):用于不同自治系统(AS)之间交换可达性信息,通常直接连接。代表其AS交换信息。
- iBGP(Internal BGP):用于同一AS内的路由器之间交换路由信息,确保域内的网络可达性信息一致。iBGP peer通常通过内部网关协议(IGP)连接,而不是直接连接。qiBGP发言人交换从其他iBGP发言人学到的信息,需要形成全连接。同步所有域内域外信息。
6. 四种BGP消息
BGP协议使用四种消息进行通信:
- OPEN:用于协商并建立peering连接。
- KEEPALIVE:维持现有的peering会话,确保连接不被中断。
- UPDATE:交换路由信息,声明一条或多条路由,并可以撤回已声明的路由。
- NOTIFICATION:报告错误,导致会话重置。
7. 路由声明
- BGP
peer之间交换NLRI(路由声明):BGP通过UPDATE消息宣布路由,声明的路由包括:
- NLRI:IP前缀(如10.10.1.0/24)。
- BGP属性:如AS路径、下一跳、前缀长度等。
8. 路径选择与策略
- BGP允许为同一IP前缀选择多条路径,通过设置路由属性来影响路径选择。
- 策略应用:根据网络的策略,通过修改BGP路由属性(如AS路径、MED值、Local Preference等)来影响路由选择,确保数据流遵循特定的策略。
9. iBGP的全连接
- 为了确保iBGP的路由一致性,在同一AS内的BGP路由器之间必须形成全连接。这意味着每个iBGP路由器都需要与同一AS内的其他路由器建立peering连接。
总结
BGP4通过交换NLRI(IP前缀)和BGP属性(如AS路径、下一跳等)来传递网络层可达性信息。它支持路径向量协议、基于策略的路由,并通过四种主要的BGP消息(OPEN、KEEPALIVE、UPDATE、NOTIFICATION)进行路由信息的交换与错误报告。BGP协议能够处理多条路径选择,并通过策略应用影响最终的路由决策。
AS_Path属性在BGP中的作用
1. AS_Path概述
- AS_Path是BGP路由更新中的一个重要属性,它表示一条路由从源AS到目标AS经过的AS序列。
- AS_Path的作用是记录路由经过的所有自治系统(AS),以确保路由的唯一性和防止路由环路。
2. AS_Path的功能
- 路径追踪:AS_Path包含了一个AS序列,它标明了数据包从源网络到达目的网络所经过的所有自治系统。例如,如果路由经过AS100、AS200和AS300,AS_Path属性将记录为
100 200 300
。 - 防止环路:BGP使用AS_Path来检测路由环路。如果某个AS在AS_Path中已经出现,那么BGP会知道这条路径已经经过了该AS,路由器会拒绝这种带有环路的路径,避免数据包在网络中无休止地转发。
3. 环路检测
- 检测环路:AS_Path用于环路检测。当一个路由器收到BGP更新时,它会检查AS_Path属性中的AS序列。如果本地AS已经在AS_Path中出现,表示路由已经回到了自己,形成了环路。此时,路由器会丢弃该路由,避免数据包循环转发。
- 例如,如果AS100发送一个路由到AS200,AS200再将该路由发送给AS100,AS100就会发现该路由已经回到了自己,因此会丢弃这条路由。
4. 应用策略
- 基于路径的策略:AS_Path可以作为BGP路由选择策略的依据。例如,一个AS可以选择优先选择路径较短的AS路径(即较少经过的AS),从而实现更高效的路由。
- 例如,在AS选择过程中,路径长度较短的AS路径可能更优,因此可以通过AS_Path的长度来决定最优路径。
- 政策应用:BGP管理员可以根据AS路径的内容来控制路由的选择。比如,通过设置AS路径过滤规则来允许或拒绝特定AS的路由信息,或通过选择某些特定AS路径作为优先路径。
5. AS_Path的其他用途
- 环路避免:BGP通过维护AS_Path列表,确保数据包不会在网络中无限循环。每个AS路径中都包含了所有经过的AS,避免了回环的发生。
- 路径过滤:AS_Path还可以用于路径过滤,允许网络管理员配置策略,阻止或优先选择某些路径。例如,可以拒绝某些AS发来的路由,或者只允许来自特定AS的路由。
6. AS_Path的特性
- 累积性质:在eBGP路由更新中,AS_Path是累积的。当一个AS接收到来自邻居AS的路由更新时,它会将自己AS的编号加到AS_Path的末尾,形成一个新的AS路径。例如,AS100收到来自AS200的路由后,AS100会将
200
加到路径的末尾,成为200 100
。 - 多路径支持:BGP允许多个路径到达同一目标,AS_Path帮助区分这些路径,确保路由器能够选择最佳路径。
总结
AS_Path是BGP中的核心属性之一,用于记录一条路径的AS序列,防止环路并应用策略进行路由选择。BGP通过AS_Path来检测环路,允许基于路径长度、路径内容等进行路由策略的控制。通过这一机制,BGP能够实现有效的路径选择与环路避免,确保网络的稳定性和高效性。
Next Hop属性在BGP中的作用
1. Next Hop属性概述
- Next Hop是BGP路由中的一个重要属性,表示到达某个网络的下一跳路由器的IP地址。
- 在BGP路由更新中,Next Hop通常是指向目标网络的直接下一跳的IP地址。
2. eBGP中的Next Hop
- eBGP会话(即不同自治系统之间的BGP会话)中,Next Hop属性通常指向对方自治系统的边界路由器的IP地址。
- 下一跳通常在同一个子网中:在eBGP会话中,通常两台对等路由器(peer)会直接连接,它们之间的通信路径是点对点的。因此,下一跳的IP地址通常会落在同一子网内。
- 例如,在两个自治系统之间,路由器A(属于AS1)和路由器B(属于AS2)之间建立了eBGP连接。如果它们通过直接的物理链接通信,A到B的下一跳(Next Hop)地址就是路由器B的地址,而这两个路由器通常位于同一子网内。
3. Next Hop在路由更新中的变化
- eBGP:在eBGP路由更新中,Next Hop通常是发送更新的路由器的IP地址。由于eBGP路由器之间通常是通过直接连接的链路进行通信,因此下一跳地址通常会在相同的子网中。
- iBGP:在iBGP(同一自治系统内的BGP会话)中,Next Hop通常不变,因为iBGP的目的是确保同一AS内的BGP路由器间能够保持一致的网络可达性信息,iBGP通常使用内部网络协议(如OSPF、IS-IS等)来保证路由的传播。
4. Next Hop的重要性
- 路由转发决策:下一跳属性直接影响路由器如何转发数据包。路由器查看每条路由的Next Hop属性,决定将数据包转发到哪个路由器或接口。
- 跨AS的路由传播:当一个路由更新通过eBGP从一个AS传播到另一个AS时,Next Hop属性告诉接收AS的路由器应该将流量发送到哪个路由器作为下一个转发点。
总结
在eBGP会话中,Next Hop属性通常指向发送更新的路由器的IP地址,并且通常位于同一子网中。Next Hop是BGP路由中的核心属性之一,它决定了数据包的转发路径,并在不同自治系统之间交换路由信息时起着关键作用。
LOCAL_PREF属性在BGP中的作用
1. LOCAL_PREF概述
- LOCAL_PREF(Local Preference)是BGP的一种路由属性,用于在同一AS内的路由器间传递路由偏好值。
- 它是一个本地AS范围内有效的属性,用于在多个出口路由之间选择最佳的路由器。
- 值越高优先级越高,用于决定流量从哪个出口转发到邻居AS。
2. LOCAL_PREF的应用场景
多宿主AS的出口路由选择
- 当一个AS通过多个提供商(Provider)或对等方(Peer)连接到外部网络时,AS内部的BGP路由器需要选择哪个出口路由器转发流量。
- LOCAL_PREF允许网络管理员根据需要设置偏好,例如:
- 优先选择客户提供的路由(成本低或带宽高)。
- 对等方(Peer)的路由作为次优。
- 最后选择Provider的路由(成本高)。
实现客户优先策略
- 客户优先策略遵循以下优先级:
- Customer(客户):客户的流量优先,确保本地AS尽可能选择客户的路由,增加收入。
- Peer(对等方):与对等方交换的流量次优,尽量避免无收益的流量转发。
- Provider(提供商):尽量减少流量通过Provider,避免额外的传输成本。
Transit客户AS的路由选择
- 多宿主或提供中转服务(Transit)的AS,可能从多个Provider接收到相同目的地的路由。
- LOCAL_PREF用于在这些Provider间进行选择,例如:
- 优先选择延迟较低或带宽较高的路径。
- 按照商业协议的要求选择特定的Provider作为首选路径。
3. LOCAL_PREF的传播与配置
传播范围:LOCAL_PREF是一个本地属性,只在同一个AS内部传播。
配置方式
:
- 在BGP配置中,网络管理员可以通过路由策略(Route Policy)为不同的邻居AS设置LOCAL_PREF值。
- 常见策略:
- 为客户的路由设置较高的LOCAL_PREF值。
- 为对等方的路由设置中等的LOCAL_PREF值。
- 为Provider的路由设置较低的LOCAL_PREF值。
4. LOCAL_PREF与路径选择过程
BGP的路径选择遵循严格的优先级规则,LOCAL_PREF是最先考虑的因素之一:
- LOCAL_PREF:值越高优先级越高。
- AS_Path:路径越短优先级越高。
- Origin类型:IGP优于EGP,EGP优于Incomplete。
- MED(Multi-Exit Discriminator):值越低优先级越高(在跨AS边界选择路径时使用)。
5. 配置示例
假设AS100通过三个连接到达目标网络:
- 客户AS200。
- 对等方AS300。
- 提供商AS400。
网络管理员可以配置以下LOCAL_PREF策略:
1 |
|
这种配置会导致AS100优先选择AS200的路由,次选AS300,最后才选择AS400的路由。
总结
LOCAL_PREF是BGP中用于出口路由选择的重要属性,仅在AS内部传播。通过设置LOCAL_PREF,可以实现基于策略的出口路由选择,例如优先使用客户提供的路径,次选对等方,最后才选择Provider路径。该属性在多宿主或Transit AS场景中尤为重要,帮助优化流量转发,降低成本并提高网络性能。
BGP路由过程与策略概览
1. 导入与导出策略
导入(Import)策略
- 目的:控制入站的路由信息,以影响本地的出站流量。
- 特点:
- 基于IP前缀、AS_PATH等属性过滤或修改入站路由。
- 通过设置LOCAL_PREF属性来优先选择客户的路由。
- 在多Provider场景下,通过路径优先级选择最优的出口路径。
导出(Export)策略
- 目的:控制出站的路由信息,以影响其他AS的入站流量。
- 特点:
- 决定是否为其他AS提供转发服务(transit)。
- 通过修改属性(如AS_PATH)影响其他AS的路径选择。
- 符合商业关系的导出策略。
2. 商业关系与“无谷”策略
商业关系类型
- Customer-Provider(客户-提供商):客户向提供商购买流量传输服务。
- Peer-to-Peer(对等关系):对等方间交换对等范围内的流量,无额外费用。
- 自身网络:AS内的路由。
“无谷”策略
- 目标:遵循经济利益,避免无偿转发无收益流量。
- 具体规则:
- 对Provider的路由导出:
- 导出自己的路由及其客户的路由。
- 不导出来自其他Provider或Peer的路由。
- 对Peer的路由导出:
- 同样仅导出自己的路由及其客户的路由。
- 对Customer的路由导出:
- 导出所有路由,包括来自自己、Provider、Peer和其他Customer的路由。
- 对Provider的路由导出:
3. 策略实现机制
(1) 入界流量控制
- 原则:控制对邻居AS公布的路由信息,以决定是否为其提供转发服务。
- 对客户:通告所有路由信息。
- 对Provider和Peer:仅通告自己及其客户的路由。
(2) 出界流量控制
- 原则:通过属性控制本地AS流量的出口路径。
- 为出口路径设置Local Preference,优先顺序为:客户 > 对等 > 提供商。
- 或者,设置IGP成本,使流量更倾向选择低成本路径。
(3) 影响上游入界入口
- 方法:通过修改路由属性影响上游AS选择入口路径。
- Path Prepending:向AS_PATH中重复添加自己的AS号,增加路径长度,降低优先级。
- 应用场景:AS7希望AS2通过AS5访问自己,可以在通往AS2的路由中增加AS号。
(4) 影响邻居入界入口
方法
:通过调整路由属性吸引邻居AS的流量。
- 调整MED值:将特定路径的MED值设置为较低,使邻居AS更倾向于选择该路径。
- 应用场景:AS7希望AS4通过特定路径访问自己,可以在该路径上设置较低MED值。
(5) 增加前缀长度以竞争流量
方法
:利用IP路由的
最长前缀匹配规则
吸引更多流量。
- 操作:将一个IP前缀拆分为多个更长的子前缀进行通告。
- 应用场景:AS4希望AS2到AS7的流量经过自己,可以发布更长的前缀。
4. 总结
BGP通过导入与导出策略,以及控制路由属性(如LOCAL_PREF、AS_PATH、MED等),实现灵活的流量管理和商业策略。遵循“无谷”策略确保经济效益,同时利用路径调整和前缀优化实现对流量的精细化控制。
BGP前缀劫持示例:声明更长前缀
BGP(边界网关协议)前缀劫持是指通过虚假声明更精确的路由前缀,导致其他AS(自治系统)将流量错误地路由到劫持者的网络。下面是一个具体的示例:
示例分析
- AS7声明了更长的前缀:
- AS7通过宣布两个前缀:
10.0.0.0/17
和10.0.128.0/17
,这些前缀覆盖了原本属于另一个AS(如AS6)的10.0.0.0/16
。 - 这些前缀的作用是将流量误导到AS7的网络上,从而实现流量劫持。
- AS7通过宣布两个前缀:
- 最长前缀匹配规则:
- BGP路由选择是基于最长前缀匹配的原则,这意味着如果有多个路由匹配一个目的地址,BGP会优先选择最具体的(最长的)前缀。
- 在这个例子中,所有的AS(除了AS6)会根据最长前缀匹配规则选择AS7的路由,因为
10.0.0.0/17
和10.0.128.0/17
是更精确的前缀。
- AS6的例外:
- 由于AS6原本拥有
10.0.0.0/16
的前缀,它会选择最符合自己路由配置的路径,因此AS6不会受AS7的更长前缀的影响,保持选择原有的路由。
- 由于AS6原本拥有
- /24前缀过滤的限制:
- 如果AS的BGP路由器配置了前缀过滤规则(例如过滤掉长度超过
/24
的前缀),那么AS7的这种前缀劫持方法就会失败。 - 例如,如果AS的路由器配置了规则过滤掉更长的前缀(如
10.0.0.0/25
),即使AS7宣布了更具体的前缀,其他AS也无法选择这些劫持路径。
- 如果AS的BGP路由器配置了前缀过滤规则(例如过滤掉长度超过
总结
BGP前缀劫持利用了BGP协议中的最长前缀匹配规则,劫持者通过宣布更长的前缀将流量引导到自己的网络。然而,如果路由器配置了前缀长度过滤,劫持行为则可能失败。
BGP前缀劫持:影响范围分析
当一个自治系统(AS)同时收到“虚假路由”和“真实路由”,它将根据BGP的路径选择策略(包括客户优先原则和路径长度优先原则)来决定采用哪一个路由。以下是对影响范围的分析以及相关表格的推导。
BGP路径选择的核心规则
- 客户优先:
- 路径来源优先级顺序是:客户 > 同级(Peer) > 提供商。
- 如果虚假路由和真实路由分别来自不同关系的AS,BGP会优先选择客户路径。
- 路径长度优先:
- 如果路径来源关系相同,BGP会选择路径长度较短的路由。
- 最长前缀匹配(前提):
- 在虚假路由前缀和真实路由前缀长度相同时,路径选择规则才会生效。
虚假路由的影响分析
假设:
- 虚假路由路径长度为 \(n\)。
- 真实路由路径长度为 \(m\)。
虚假路由影响结果的关键取决于两者的来源关系和路径长度:
来源关系 | 路径长度对比 \(n\) 与 \(m\) | 采用的路由 |
---|---|---|
虚假路由来自客户,真实路由来自提供商或同级 | 无论 \(n\) 和 \(m\) | 虚假路由(客户优先) |
虚假路由和真实路由都来自客户 | \(n<m\) | 虚假路由(路径更短) |
虚假路由和真实路由都来自客户 | \(n \geq m\) | 真实路由(路径更短或相等时默认真实路由) |
虚假路由来自同级,真实路由来自客户 | 无论 $n $和 \(m\) | 真实路由(客户优先) |
虚假路由和真实路由都来自同级 | \(n<m\) | 虚假路由(路径更短) |
虚假路由和真实路由都来自同级 | \(n \geq m\) | 真实路由(路径更短或相等时默认真实路由) |
虚假路由来自提供商,真实路由来自客户或同级 | 无论 \(n\) 和 \(m\) | 真实路由(客户或同级优先) |
影响范围的分析
- 虚假路由路径短并来自客户:
- 在这种情况下,虚假路由的影响范围最广,因为客户优先规则直接压制了真实路由。
- 虚假路由路径短并来自同级:
- 如果真实路由来自同级或提供商,虚假路由仍然会优先被选择。
- 虚假路由来自提供商:
- 影响范围较小,因为客户优先和同级优先规则能够有效压制虚假路由。
- 路径长度较长的虚假路由:
- 真实路由通常会被选择,虚假路由的影响范围有限。
总结
虚假路由的影响范围取决于路径长度和路由来源关系:
- 客户优先规则是决定性因素,客户关系的虚假路由具有最大破坏力。
- 路径长度规则对同级或同来源关系的路由选择影响更大。
分析这些影响有助于在网络中采取合适的防御措施,例如配置过滤规则或监控异常路径以限制虚假路由的传播。
路由泄漏与潜在问题的示例分析
1. 图示背景
- AS7的行为:
- AS7没有正确配置无谷模式(No-Export Community),将从AS4学习到的路由信息泄漏给了AS5。
- 由于这种路由泄漏行为,AS5和AS2根据路由优先级策略,选择通过AS7来访问目标网络。
- AS4的行为:
- AS4对入界流量进行了过滤,仅允许源地址为AS7的流量通过。
- 结果导致来自AS2或AS5的流量被丢弃,形成路由黑洞。
2. 具体问题
- 非无谷路径问题:
- AS7未正确配置无谷模式,导致了本不应传递的路由信息被传播到其他自治系统(AS5和AS2)。
- 这种错误的路由传播违背了正常的路由策略。
- 路由黑洞问题:
- 因AS4的流量过滤策略仅允许来自AS7的流量,AS5和AS2的流量在到达AS4时被丢弃,导致通信失败。
3. 解决措施建议
- 无谷模式配置:
- AS7应在向AS5传播路由信息时正确使用无谷(No-Export Community)标记,防止路由泄漏。
- 流量过滤策略优化:
- AS4可以调整流量过滤策略,例如允许符合源地址条件的流量(AS2和AS5流量)通过,以减少路由黑洞问题。
- 整体协作机制:
- 各AS之间需确保路由协议的正确配置,遵守路由策略以避免类似问题。
4. 图中的总结
- 路由泄漏: AS7将从AS4学到的路由信息错误传播给其他自治系统。
- 策略冲突: AS4的流量过滤和AS7的泄漏行为共同导致路由不可达和通信失败。
此图反映了路由配置中常见的错误,以及这些错误可能带来的后果和解决思路。
路由泄漏分类及解释
以下是6种常见的路由泄漏类型以及每种类型的详细解释:
Type 1:带有全部前缀的发卡弯(Hairpin Turn with Full Prefix)
- 描述:
- 一个多宿主AS(Autonomous System,自治系统)将从一个provider学习到的全部前缀泄漏给另一个provider或peer。
- 造成的现象是:数据流形成“发卡弯”(Hairpin Turn),通过这个AS返回到数据的初始源头。
- 影响:
- 可能导致路由环路(Routing Loop)或性能下降,因为流量会经过不必要的路径。
- 案例:
- AS1从AS2学习到一个路由,但却将其传播给AS3,而AS3又通过AS1返回流量给AS2。
Type 2:横向ISP-ISP-ISP泄漏(Lateral ISP-ISP-ISP Leak)
- 描述:
- 一个ISP将从另一个ISP学习到的路由泄漏给第三个ISP。
- 此类泄漏通常发生在ISP之间的横向路由传递中。
- 影响:
- 破坏了ISP之间的商业协议和路由策略。
- 流量可能被强制通过不合理的路径,造成网络资源浪费。
- 案例:
- ISP1学习到ISP2的路由后,将其泄漏给了ISP3,而ISP2和ISP3原本是对等关系,不应通过ISP1进行路由。
Type 3:提供商前缀被泄漏给对等(Leak of Transit-Provider Prefixes to Peer)
- 描述:
- 一个AS将从自己的上游提供商(Provider)学习到的前缀,错误地泄漏给自己的对等体(Peer)。
- 影响:
- 对等体可能开始使用这个AS作为流量转发路径,导致其承担额外的流量转发负担。
- 违背了商业协议,因为对等体之间通常没有转发第三方流量的义务。
- 案例:
- AS1从Provider-AS2学习到前缀后,将其错误地泄漏给了Peer-AS3。
Type 4:对等前缀泄漏给提供商(Leak of Peer Prefixes to Transit Provider)
- 描述:
- 一个AS将从对等体(Peer)学习到的路由,错误地泄漏给自己的上游提供商(Provider)。
- 影响:
- 提供商可能将流量引入到这个AS,增加其负担。
- 对等体可能因为流量增加导致性能下降。
- 当AS将对等体的前缀泄漏给提供商时,提供商会认为可以通过这个AS到达对等体的网络,并将大量第三方流量(原本不属于对等体之间的流量)发送到对等体。
- 案例:
- AS1从对等体-AS2学习到的前缀,将其错误地泄漏给了Provider-AS3。
Type 5:带有通往合法起源路径的前缀重组织(Prefix Re-origination with Data Path to Legitimate Origin)
- 描述:
- 一个多宿主AS将从一个Provider学习到的路径重组(去掉BGP路径),并以自身为起源重新声明前缀。同时,这个AS通过某种方式建立了一条到真正起源AS的反向路径。
- 数据流仍然可以到达真正的起源AS,但路径信息被篡改。
- 影响:
- 会对路由稳定性和安全性造成威胁(如影响BGP路由的可信性)。
- 增加流量传递的复杂性。
- 案例:
- AS1从AS2学习到前缀后,将该前缀重新声明为自己起源,并泄漏给AS3。
Type 6:内部或更具体前缀泄漏(Accidental Leak of Internal Prefixes and More-Specific Prefixes)
- 描述:
- 一个AS将其内部的路由信息泄漏给Provider或Peer,这些路由通常比原声明的前缀更加具体(如/16被拆分成/24或更小粒度的前缀)。
- 影响:
- 可能导致全球路由表膨胀。
- 增加流量管理复杂度,可能会形成路由环路或引入攻击风险(如BGP劫持)。
- 案例:
- AS1将其内部的/24前缀泄漏给了Provider-AS2,而原本只需要声明/16前缀。
总结
- 路由泄漏类型的核心问题主要涉及 前缀传播范围控制 和 BGP策略配置错误。
- 各类泄漏的共同点是:
- 破坏了BGP的正常运行和网络流量管理。
- 可能影响路由稳定性,甚至引发安全风险。
- 解决措施:
- 路由过滤: 严格配置BGP路由过滤策略,防止非预期前缀传播。
- 使用社区标记: 利用No-Export等BGP社区属性控制前缀的传播范围。
- 监控与检测: 部署BGP监控系统,实时发现并解决路由泄漏问题。
BGP前缀窃听:实现分析
BGP前缀窃听(Prefix Hijacking for Eavesdropping) 是一种攻击技术,攻击者试图在不破坏目标网络可达性的情况下,将尽可能多的网络流量经过自己,从而实现数据窃听。这种攻击与传统的前缀劫持有所不同,其核心目标是流量窃听,而不是阻断通信。因此,它需要更精细的实施策略。
以下从两个任务的角度分析实现方法及技术细节:
任务1:攻击者如何令目标网络流量经过自己
目标:
让邻居选择“经过攻击者的路由”作为到目标前缀的最佳路径,而不是选择已有的合法路径。
方法:满足前缀劫持条件,提升路由优先级
攻击者需要精心设计路由通告,使得“攻击者伪造的路由”比合法的路由具有更高优先级,从而吸引邻居的流量。
具体操作步骤:
- 劫持目标前缀(前缀声明):
- 攻击者伪装成目标网络,向邻居通告目标前缀(例如
10.0.0.0/16
)。 - 邻居会将攻击者视为到目标前缀的合法路径。
- 攻击者伪装成目标网络,向邻居通告目标前缀(例如
- 优化攻击者的路由属性(提升优先级):
- 更具体的前缀通告:
- 攻击者可以通告更具体的子前缀(例如,将
10.0.0.0/16
分为10.0.1.0/24
)。 - BGP的优先级规则倾向于选择更具体的前缀,因此邻居更可能选择攻击者的路由。
- 攻击者可以通告更具体的子前缀(例如,将
- 更短的AS路径:
- 攻击者伪造一个较短的AS路径通告(例如,将路径伪造为
AS-1 -> AS-Attacker
)。 - BGP倾向于选择AS路径较短的路由,这会增加攻击者路径的优先级。
- 攻击者伪造一个较短的AS路径通告(例如,将路径伪造为
- 修改其他BGP属性:
- 设置较高的
Local Preference
,诱导邻居优先选择攻击者的路由,因为其在自己的AS内优先级高。 - 修改
MED(Multi-Exit Discriminator)
值,吸引特定方向的流量。
- 设置较高的
- 更具体的前缀通告:
- 维持目标网络的可达性:
- 攻击者需确保流量能够最终到达目标网络,而不是中断目标网络的正常通信。
- 实现方法:
- 攻击者将流量转发给目标网络的真实路由(即成为流量的中间人)。
- 例如,通过建立一个回程路径,将收到的流量转发到目标AS。
任务2:利用不重合的路径实现窃听
目标:
通过构建一条“攻击者控制的路径”,并利用另一条“与受影响路由无重合的路径”,实现流量窃听。
挑战:
实现“流量路径分离”,即攻击者需要在控制流量路径的同时,确保有一条反向路径可以将流量送回目标网络。
具体实现方法:
- 伪造“经过攻击者的路径”:
- 攻击者通告目标前缀的假路由,吸引流量通过攻击者。
- 与任务1类似,攻击者需要优化路由属性,使得邻居选择攻击者作为流量的中转点。
- 构建另一条回程路径:
- 攻击者确保有一条与受影响路径无重合的路径,可以将窃听流量转发至目标网络。
- 实现方法:
- 攻击者与另一个AS建立对等关系或使用现有路径,将窃听到的流量通过该路径送回目标网络。
- 例如:攻击者伪造的路径为
AS-1 -> AS-Attacker -> AS-2
,而回程路径为AS-Attacker -> AS-3 -> AS-Target
。
- 技术细节:
- 利用BGP路由泄漏:
- 攻击者通过“路由泄漏”将伪造的路由通告给自己的Provider或Peer。
- 这种方法尤其适合攻击者与多个上游提供商或对等体连接的场景,可以更灵活地控制路径。
- 构建流量回程:
- 在攻击者的AS中配置策略,确保流量能够通过另一条路径送回目标网络。
- 利用多宿主(Multi-Homing)机制,在不同路径之间分配流量。
- 利用BGP路由泄漏:
- 对受害者网络影响较小:
- 攻击者会设计流量路径,避免完全中断目标网络的通信。
- 因此,目标网络可能无法察觉到流量被窃听。
简单可行的实现方式:路由泄漏
路由泄漏的原理:
攻击者可以利用“路由泄漏”技术,通过向Provider或Peer通告伪造的目标前缀路由,吸引流量进入攻击者控制的路径。
具体步骤:
- 伪造目标前缀:
- 攻击者通告一个虚假的目标前缀路径给自己的Provider或Peer,诱使其将流量转发到攻击者。
- 利用上下游路径差异:
- 上游提供商可能会根据攻击者的路由选择将流量发送到攻击者。
- 攻击者通过另一条未受影响的路径,将窃听流量送回目标网络。
- 隐蔽性高:
- 路由泄漏通常不会造成大范围的流量中断,因此难以被检测到。
- 攻击者可以持续窃听,而不引发显著的网络异常。
总结
BGP前缀窃听的核心在于通过路由劫持和路由泄漏技术,诱导流量经过攻击者,同时利用回程路径维持目标网络的可达性。以下是两项任务的关键点:
- 任务1(吸引流量):
- 提升攻击者的路由优先级,使邻居选择“经过攻击者的路由”。
- 技术:更具体的前缀、更短的AS路径、更高的Local Preference。
- 任务2(路径分离与回程路径):
- 利用不重合的路径将窃听流量转发回目标网络。
- 技术:多宿主、多路径配置、路由泄漏。
通过这些方法,攻击者能够在不破坏目标网络通信的情况下,实现数据流量的窃听和监控。
深入讲解:BGP中的Local Preference
和MED
的作用与使用方式
在BGP(Border Gateway Protocol)中,Local Preference
和
MED(Multi-Exit Discriminator)
是两个重要的路由选择属性。攻击者可以通过操控这些属性,诱导流量选择特定的路由,最终实现流量窃听的目的。
1.
设置较高的
Local Preference
,诱导邻居优先选择攻击者的路由
什么是
Local Preference
?
Local Preference
是一个 BGP 属性,用于影响本地AS内的路由选择优先级。它是非传递属性,仅在同一个AS内传播,不会通告给其他AS。
BGP的路由选择规则中,
Local Preference
的优先级很高:- 数值越大,优先级越高。
- AS内部所有设备都会优先选择
Local Preference
值高的路由。
如何通过操控
Local Preference
实现窃听?
攻击者可以通过以下方式,设置较高的 Local Preference
值,诱导邻居(通常是下游AS)将流量路由到自己:
伪造更高的
Local Preference
值:- 攻击者在自己的AS内部,通过BGP策略人为设置一个高的
Local Preference
值(例如,比目标网络原始路径的值高)。 - 下游邻居会优先选择这条路由,将流量发送到攻击者AS。
- 攻击者在自己的AS内部,通过BGP策略人为设置一个高的
攻击场景:
- 假设目标网络是
AS-Target
,攻击者是AS-Attacker
,下游AS是AS-Neighbor
。 - 正常情况下,
AS-Neighbor
会通过一个合法路径(例如AS-Legit
)到达AS-Target
。 - 攻击者通过通告一条伪造的路径,并人为设置一个较高的
Local Preference
值,强制AS-Neighbor
将流量优先发送给攻击者的AS。
- 假设目标网络是
实现方法:
攻击者在BGP策略中配置如下规则:
1
2
3route-map SET_LOCAL_PREF permit 10
match ip address prefix-list TARGET_PREFIX
set local-preference 200- 上述规则针对目标前缀(例如
10.0.0.0/16
),将Local Preference
设置为200(比默认值100更高)。
- 上述规则针对目标前缀(例如
这样,攻击者的AS内部优先选择此路由,并将其通告给下游邻居。
窃听的隐蔽性:
Local Preference
不会传播到其他AS,因此攻击范围局限在攻击者的邻居中,隐蔽性较高。
2.
修改 MED(Multi-Exit Discriminator)
值,吸引特定方向的流量
什么是 MED
?
MED
是一个 BGP属性,用于引导不同AS之间的路由选择。它是传递属性,会从一个AS传播到另一个AS,但仅在两个AS之间生效(不会向第三方AS传播)。
MED
的主要作用是建议对方AS
选择特定的出口路由:
- 数值越小,优先级越高。
- 低的
MED
值会吸引对方AS将流量优先发往指定的出口。
如何通过操控 MED
实现窃听?
攻击者可以通过修改 MED
值,诱导流量从特定的入口进入自己的AS,从而达到窃听流量的目的。
降低
MED
值吸引流量:- 攻击者通过修改
MED
值,建议邻居选择“经过攻击者的路由”作为首选路径。 - 攻击者通过多宿主(multi-homed)的网络连接,可以将特定方向的流量吸引到自己的AS。
- 攻击者通过修改
攻击场景:
- 假设攻击者AS(
AS-Attacker
)连接到两个不同的邻居AS(AS-Neighbor1
和AS-Neighbor2
)。 - 正常情况下,
AS-Neighbor1
和AS-Neighbor2
会根据默认路由选择策略决定出口。 - 攻击者通告目标前缀(如
10.0.0.0/16
),并向AS-Neighbor1
宣布较低的MED
值(例如20),向AS-Neighbor2
宣布较高的MED
值(例如100)。 AS-Neighbor1
会优先选择低MED
的路由(即攻击者的路由),将流量转发给攻击者。
- 假设攻击者AS(
实现方法:
攻击者在BGP策略中配置如下规则:
1
2
3route-map SET_MED permit 10
match ip address prefix-list TARGET_PREFIX
set metric 20- 上述规则将目标前缀的
MED
值设置为20。
- 上述规则将目标前缀的
这样,邻居AS会优先选择这条路由。
结合流量回程路径:
- 攻击者将接收到的流量通过另一个出口(例如回程路径)转发到目标网络,确保目标网络的通信不受影响。
- 例如:攻击者接收从
AS-Neighbor1
转发来的流量,通过另一条路径送往目标AS(AS-Target
)。
隐蔽性分析:
- 修改
MED
值只影响直接邻居的路由选择,不会导致大范围的异常,隐蔽性较高。 - 由于
MED
是建议性属性,邻居AS可以选择是否遵守,攻击效果可能受到邻居配置的影响。
- 修改
总结:Local Preference
和 MED
的攻击特性
属性 | 特性 | 操控方式 | 应用场景 |
---|---|---|---|
Local Preference | 非传递属性,仅在本地AS内有效 | 设置较高值,提升攻击者路由优先级 | 诱导下游邻居优先选择攻击者的路由 |
MED | 传递属性,影响跨AS的路由选择 | 设置较低值,吸引特定方向的流量 | 吸引邻居将流量发送到攻击者 |
通过调整 Local Preference
和 MED
值,攻击者可以精确控制流量的路由选择,使其流经攻击者AS并最终到达目标网络。两者的结合使用,可以在隐蔽性和灵活性之间取得平衡,是前缀窃听攻击中常见的策略之一。
BGP路由泄漏防御思路总结
1. 保护性过滤
保护性过滤是指通过监控和限制路由的传播,确保只有符合预期的路由信息被通告。
- 关键措施:
- 了解你的邻居:清楚邻居AS的角色(Provider/Peer/Customer),并根据这些角色制定合适的BGP路由过滤规则。
- 异常检测:监控路由变化,发现不合常规的路由更新(如异常的AS路径、路由标记等)。
- 对意料之外的行为持怀疑态度:对不符合既定规则的路由信息保持警觉。
- 与注册机构提供的权威信息比对:通过对比IRR数据库或RPKI信息,验证路由的合法性。
- 掌握发现异常的基本依据:基于BGP的路由选择规则和流量行为,发现异常行为(如劫持或泄漏)。
2. 签名和验证
通过对BGP路由信息进行签名和验证来提高路由信息的可信度,防止伪造的路由通告传播。
- 发现并拒绝虚假的AS路径:通过验证AS路径的真实性,确保路径中没有被伪造的AS。
- 数据平面验证:将数据流量的实际转发路径与控制平面(BGP通告)中的路径进行对比,确保二者一致。
3. 路由泄漏防御思路
思路1:AS内部防止路由泄漏
- 配置合理的BGP路由过滤规则,限制从AS内部向外传播的路由。
- 确保向外传播的路由信息符合预期,例如只通告合法的客户前缀,不通告过多的内部或上游前缀。
思路2:检测来自邻居AS的路由泄漏
- 配置严格的路由接收规则,防止接收来自邻居的异常路由。
- 通过监控工具检测邻居AS是否通告了不应接收的路由信息。
基于角色的路由泄漏阻止
基于角色的路由泄漏阻止通过为BGP会话和路由声明引入“角色”概念(如Provider、Peer、Customer),在路由通告时根据角色的不同限制路由传播。
1. BGP角色的定义
在BGP会话中,增加一个可配置的选项,明确路由器之间的互联角色。可选角色包括:
- Peer:发送方和邻居是对等关系。
- Provider:发送方是服务提供商。
- Customer:发送方是客户。
- Internal:发送方和邻居属于同一组织(iBGP会话)。
角色用途
- 在BGP
OPEN
消息中,双方通过协商达成一致的角色。 - 根据角色配置的不同,路由器会为通告的路由添加特殊标记(例如
RLP
标记)。
2. 路由泄漏防御机制
(1) 基于角色检查的机制
- 在建立BGP会话时,对对端角色进行检查。
- 检查流程:
- 发送方的角色是否符合接收方的预期角色关系。
- 如果发现不匹配(如Customer尝试作为Peer连接),则发送
NOTIFICATION
消息,断开会话。
- Strict Mode(严格模式):
- 若配置为
true
,必须声明角色,否则拒绝建立BGP会话。
- 若配置为
- 检查流程:
(2) 基于路由标记的机制
- 在路由通告中,根据角色为路由添加特殊标记,防止路由被泄漏到不符合角色关系的AS。
基于标记的路由泄漏防御
1. Route-Leak Protection(RLP)标记
在BGP路由声明中,添加一个新的属性RLP
,用于防止路由泄漏。
属性定义:
RLP字段值为
0
时:默认未设置,不限制路由传播。RLP字段值为
1
时:限制该路由向“上游”或“横向”传播。每个支持RLP的AS在
AS_PATH
中插入自己的{ASN, RLP}
对。- 场景描述:
- AS1(Customer)将一个前缀 10.0.0.0/16 通告给 AS2(Provider)。
- AS2 支持 RLP,并决定此路由只能向其他 Customer 传播,而禁止向上游或 Peer 传播。
- AS2 将
{ASN2, 1}
添加到 AS_PATH 中,并将该路由通告给 AS3。 - AS3 作为另一个 Provider 检查到 AS_PATH 中有
{ASN2, 1}
,因此拒绝将该路由向上游或 Peer 传播。
AS_PATH 示例:
假设 AS1 是 Customer,AS2 和 AS3 是 Provider,AS_PATH 更新如下:
- 初始路由(AS1 → AS2):
- AS_PATH =
{ASN1, 0}
- AS_PATH =
- AS2 接收路由后(限制向上游传播):
- AS_PATH =
{ASN1, 0}, {ASN2, 1}
- AS_PATH =
- AS3 接收到路由后(检查 RLP 标记,拒绝传播):
- AS3 拒绝传播该路由,因为
{ASN2, 1}
表示禁止向上游传播。
- AS3 拒绝传播该路由,因为
由邻居AS根据角色关系对
RLP
值进行判断,发现异常传播时直接拒绝。
优势:
- 通过明确的标记和传播限制,防止由客户泄漏到服务商或对等关系AS的路由。
2. Internal Only To Customer(iOTC)属性
iOTC
是一种简单有效的防止路由泄漏的机制,确保从Provider或Peer接收的路由不会再泄漏给其他Provider或Peer。
- 属性规则:
- 收到来自Provider或Peer的路由时,添加
iOTC
属性,标记该路由为“只能发送给内部或客户”。 - 发送路由时:
- 若邻居是Provider或Peer,则不发送带有
iOTC
属性的路由。 - 不允许将带有
iOTC
属性的路由再添加iOTC
属性。 - 接收方在处理路由时,必须移除收到的路由中的
iOTC
属性。
- 若邻居是Provider或Peer,则不发送带有
- 收到来自Provider或Peer的路由时,添加
- 演变:
- 后被
OTC
属性取代,成为RFC 9234标准的一部分。 - 作用类似于
RLP
,通过标记防止上游或横向传播。
- 后被
BGP路由泄漏总结
- 保护性过滤:
- 依赖对邻居AS和通告路由的清楚了解,通过验证和监控异常行为来减少泄漏风险。
- 基于角色的防御:
- 通过明确角色关系(Provider/Peer/Customer)并在BGP会话中协商角色,限制不符合角色关系的路由传播。
- 基于标记的防御:
- 使用RLP或iOTC/OTC标记为路由传播提供约束条件,有效阻止路由泄漏。
- 签名和验证:
- 通过验证AS路径和数据平面行为一致性,进一步提高路由的安全性。
路由泄漏防御核心原则:
- 明确角色,设置合理过滤规则。
- 使用标记属性,为路由传播提供安全保障。
- 对异常行为保持警惕,配合工具进行监控和验证。
防御重点在于主动性措施和明确的边界控制,结合协议标准的改进(如RLP和OTC)实现更高的安全性。
路由泄漏检测与阻止的分析和总结
1. 路由泄漏检测
检测规则:
当接收方接收到一条路由更新时,若满足以下条件,则可以标记该路由为“路由泄漏”:
- 路由更新来自于 Customer 或 Peer:
- 即路由来源为下游(Customer)或横向(Peer)的 AS。
- 这些来源通常被认为是潜在的路由泄漏源,因为下游 AS 不应将收到的 Provider 或 Peer 路由转发到其他上游或横向关系。
- AS_PATH 中除最近一跳外,有一跳或多跳的 RLP 字段为
1:
- 即在 AS_PATH 路径中,除了最近一跳以外,其他跳的 RLP 字段被标记为
1
(禁止向上或横向传播)。 - 这种情况表明,之前的 AS 在路径声明中已经明确规定该路由不应向上游或 Peer 传播。
- 即在 AS_PATH 路径中,除了最近一跳以外,其他跳的 RLP 字段被标记为
- 排除最近一跳的原因:
- 接收方检查的是“最近一跳的前一跳”的 RLP 标记:
- 因为“最近一跳”即为路由的直接邻居,它的角色已经由 BGP会话的关系定义(即 Customer 或 Peer)。
- 检查其前一跳可以更准确地判断,是否发生了违反 RLP 标记的传播。
- 接收方检查的是“最近一跳的前一跳”的 RLP 标记:
2. 路由泄漏阻止
阻止机制:
当检测到路由泄漏后,接收方需要采取措施,防止被泄漏的路由影响正常路由选择。阻止的基本原则是:
- 否决 Customer 优先(Prefer Customer)策略:
- 如果接收方收到来自 Customer 的路由被标记为“路由泄漏”,应放弃对 Customer 路由的优先选择。
- 原因:路由泄漏通常发生在 Customer 将 Provider 或 Peer 的路由错误地传播给另一个 Provider 或 Peer。
- 优先选择其他干净的路由:
- 如果接收方还有未被标记为“路由泄漏”的替代路径,优先选择这些路径。
- 通过调整 Local Preference(本地优先级) 来实现:将被标记为“路由泄漏”的路径设置为较低优先级。
- 无替代路径的情况下:
- 如果没有未被标记的“干净”替代路径,则可以接受被标记为“路由泄漏”的路径。
- 原因:即使是被标记为泄漏的路径,如果没有其他路径可用,仍可作为一种最后的备选路径来保持网络连通性。
3. 路由泄漏防御总结
基于角色的方法 vs. 基于路由标记的方法
对比维度 | 基于角色的方法 | 基于路由标记的方法 |
---|---|---|
防御侧重点 | AS 内部限制输出,防止路由泄漏 | 检测外部输入的路由泄漏 |
操作粒度 | AS 粒度(基于 AS 间关系) | 前缀粒度(基于具体路由前缀) |
适用性 | 需要所有邻居 AS 支持角色协商(需要广泛部署) | 需要大型 Provider 支持 RLP 标记 |
配置复杂度 | 配置较为简单(通过角色关系进行限制) | 配置更复杂(需要根据路由标记动态检测和调整策略) |
场景适用性 | 更适用于 AS 内部防御 | 更适用于 AS 间外部防御 |
4. 基于角色的路由泄漏防御
思路:
- BGP 会话中引入角色定义:
- 在两个 BGP 路由器的会话建立阶段(OPEN 消息),协商双方在 AS 间的角色关系。
- 角色类型包括:
- Peer(对等体):AS 间为对等体。
- Provider(提供商):发送方为 Provider。
- Customer(客户):发送方为 Customer。
- Internal(内部):发送方和接收方在同一组织内。
- 通过角色关系标记路由:
- UPDATE 消息根据角色关系设置限制标记:
- Peer 和 Customer 的路由不能传递给其他 Peer 或 Provider。
- Provider 的路由不能传递给其他 Provider。
- UPDATE 消息根据角色关系设置限制标记:
- 角色不匹配时拒绝会话建立:
- 若对方声明的角色与本地配置不符,会话被拒绝,并发送错误通知(NOTIFICATION 消息)。
5. 基于路由标记的路由泄漏防御
思路:
RLP(Route-Leak Protection)标记:
- UPDATE 消息中添加 RLP 标记,明确指出路由是否可以向上游或横向传播。
- 规则:
- Provider 或 Peer 发送给 Customer 时,不设置 RLP。
- Customer 或 Peer 发送给 Provider 时,设置 RLP=1(禁止向上游传播)。
iOTC/OTC 属性:
iOTC 属性
(Internal Only To Customer):
- 标记 Provider 或 Peer 的路由,仅可在 AS 内部使用或传递给 Customer。
OTC 属性:
- 更通用的 iOTC 替代方案,已被纳入 RFC 9234 标准。
6. 实际应用中的挑战
- 跨 AS 的兼容性:
- 基于角色的方法需要所有邻居支持角色协商,而基于标记的方法需要 AS 广泛支持新的属性(RLP、OTC)。
- 部署难度:
- 需要调整现有 BGP 配置,并确保更新版本的 BGP 软件能够支持这些防御机制。
- 检测与防御的配合:
- 单独依赖检测可能不足以阻止泄漏,防御机制(如标记和角色限制)必须同时实施。
总结
- 检测阶段: 接收方检查 AS_PATH 中的 RLP 标记,结合来源判断路由是否为泄漏。
- 阻止阶段: 若标记为泄漏路由,则调整 Local Preference,优先选择其他路径。
- 防御方案选择:
- 基于角色 更适用于小范围、已知的 AS 关系(例如 Provider-Customer 模式)。
- 基于标记 更适合大范围复杂网络环境,需要大型 Provider 支持。
利用路由策略的攻击方式与分析
以下是常见的路由策略攻击手段,以及这些手段对网络稳定性和安全性的潜在影响。
1. 路径截断(Shorten AS_PATH)
攻击手段:
攻击者将路由声明中的 AS_PATH 缩短,使得攻击者的路径看起来更短,从而优先被选择(BGP 的路由选择原则之一是选择路径较短的路由)。
影响:
- 诱导流量:通过缩短路径,攻击者可以诱导更多流量经过自己,从而实现流量劫持或监听。
- 覆盖范围更大:攻击者会覆盖更大范围的邻居,甚至跨 AS 吸引全球流量。
目标:
- 数据窃听、恶意流量监控或 DoS 攻击(流量集中于攻击者后,造成网络瓶颈)。
防御措施:
- AS_PATH 验证: 使用 AS_PATH 数量限制 或 检测异常短路径,拒绝路径异常短的路由。
- RPKI(Resource Public Key Infrastructure): 验证路由的合法性,检测伪造路径。
2. 路径延长(Extend AS_PATH)
攻击手段:
攻击者在路由声明中插入伪造的 AS_PATH,使得路径看起来比实际的更长,以隐藏攻击者的存在或使攻击者的路由看起来像一个合法路径。
影响:
- 掩盖攻击路径: 攻击者可以延长路径,使得伪造的路径看起来像是经过多个合法的 AS,欺骗检测机制。
- 分流合法流量: 通过欺骗下游邻居,使其认为该路由不优先,而选择其他路径。
目标:
- 隐藏攻击者在路由中的参与,避免被检测。
- 影响目标流量的传输路径,将其转移到攻击者控制的其他路由中。
防御措施:
- 最大路径长度限制: 在 BGP 配置中设置路径长度上限,丢弃超长路径。
- BGP 路由一致性检查: 比对实际路径和 AS_PATH,检测路径异常。
3. 删除特定 AS(Remove AS from AS_PATH)
攻击手段:
攻击者在路由声明中删除特定的 AS,隐藏这些 AS 的存在,从而使得与这些 AS 相关的路由策略失效。
影响:
- 绕过策略限制: 例如某些路由器设置了拒绝来自特定 AS 的路由,删除 AS 后使得该路由绕过策略。
- 隐藏路由泄漏: 删除某些 AS,可以隐藏路由泄漏行为,使得被泄漏的路由看起来更像合法路径。
目标:
- 绕过路由策略(例如拒绝策略、防环路策略等)。
- 恶意传播假路由,影响目标流量。
防御措施:
- 严格 AS_PATH 检查: 使用 RPKI 验证路由是否匹配合法的 AS_PATH。
- 监控和检测: 检测路由更新中的异常行为,例如路径中出现非对等关系的变化。
4. 添加特定 AS(Insert Specific AS into AS_PATH)
攻击手段:
攻击者在路由声明中添加一个不存在的 AS,诱导目标 AS 为了避免环路(BGP 的环路检测机制),自动丢弃该路由。
影响:
- 干扰路由传播: 被伪造的 AS 可能是受害者的 AS,从而使得该路由看起来像环路,影响目标的正常流量。
- 隔离目标网络: 通过插入目标 AS,使得其他 AS 丢弃前往目标网络的路由,造成网络隔离。
目标:
- 实现网络隔离,切断目标 AS 的路由连接。
- 中断特定流量路径,造成局部或全局网络瘫痪。
防御措施:
- 环路检测策略: 监控和比对正常的 AS_PATH,检测并拒绝伪造的环路。
- AS_PATH 清理: 大型 ISP 通常会清理收到的路由中不合理的 AS_PATH。
5. 篡改 MED(Multi-Exit Discriminator)
攻击手段:
攻击者通过修改 MED(多出口判别符) 值,诱导特定的流量流向攻击者控制的路径(BGP 的优先规则之一是根据 MED 值选择路由)。
影响:
- 诱导流量方向: 修改 MED 值,可以使流量优先选择攻击者控制的出口路径。
- 负载不均: 攻击者可以将大量流量集中到某个方向,导致网络性能下降。
目标:
- 流量劫持或监听:通过影响流量路径,吸引目标流量经过攻击者控制的设备。
- 网络性能干扰:通过将大量流量引向某一方向,造成瓶颈或瘫痪。
防御措施:
- 严格的 MED 策略: 配置合理的 MED 值范围,并对异常的 MED 值进行过滤。
- 流量异常检测: 检测流量方向的异常变化,快速识别问题路径。
6. 篡改 ORIGIN 属性
攻击手段:
攻击者篡改路由的 ORIGIN 属性,使其看起来更像合法路由,从而影响邻居的路由选择。
影响:
- 优先选择伪造路径: BGP
路由选择中,
IGP < EGP < Incomplete
,攻击者将 ORIGIN 设置为IGP
,使得邻居优先选择攻击者路径。 - 路由传播伪造: 篡改 ORIGIN,可以欺骗邻居认为路径是合法的,从而传播伪造的路由。
目标:
- 增强伪造路由的可信度,吸引流量。
- 误导路由选择,影响流量的正常流向。
防御措施:
- 属性验证: 检测和验证 ORIGIN 属性是否与真实的路由声明一致。
- 流量分析: 比对流量和实际路径,检查是否存在异常的 ORIGIN 属性篡改。
总结
以下是各攻击手段的目标、影响和防御对比:
攻击手段 | 目标 | 影响 | 防御措施 |
---|---|---|---|
路径截断 | 吸引流量 | 流量劫持、监听 | AS_PATH 验证、RPKI |
路径延长 | 隐藏攻击路径 | 路由错误、掩盖攻击 | 路径长度限制、路由一致性检查 |
删除特定 AS | 绕过策略限制 | 策略失效、伪造路径 | RPKI 验证、AS_PATH 检查 |
添加特定 AS | 造成环路 | 路由丢弃、目标网络隔离 | 环路检测策略、AS_PATH 清理 |
篡改 MED | 吸引特定流量方向 | 流量劫持、性能下降 | MED 策略限制、流量异常检测 |
篡改 ORIGIN | 提高伪造路径优先级 | 路由选择错误、流量被劫持 | 属性验证、流量路径分析 |
通过以上分析可以看出,这些攻击手段均利用了 BGP 的信任机制,因此防御的核心在于:
- 属性验证(如 RPKI 和路由签名)
- 异常检测(路径、流量方向、属性值)
- 全网协作(如大型 Provider 的支持)