使用BGP防御来自远程AS的DDoS攻击

网络工程 路由 bgp
2021-07-13 15:27:12

我有一个关于 BGP 以及如何实现此配置的问题。

我的企业核心路由器连接到 ISP(单宿主)。该路由器已经在 BGP 更新中与 ISP 交换了特定的公共 ip 前缀。现在假设有一个 AS 在几跳之外用 DDoS 攻击淹没我的本地 AS。该 AS 中有多个网络以我本地 AS 中的 Web 服务器为目标。

我们如何使用 BGP 阻止路由器上的此流量?

感谢您的回复!!:)

4个回答

您可以使用 BGP 做两件事:

RTBH - 远程触发黑洞

第一个选项是激进的:IP 受到攻击的黑洞(停止流量)。缺点:目标 IP 不再可达。好处:网络的其余部分保持正常运行。Packetlife 对它的工作原理和操作方法有很好的解释。第二个选项建立在第一个选项的基础上:

基于源的 RTBH

RTBH 还可用于(在某些配置中)阻止来自特定 IP 的流量(在真正的 DDoS 中,这不会有太大帮助,因为流量来自数千个 IP)。再次,Packetlife 有一个解释。

在您的情况下,您可以从路由数据库(如RADB)获取 AS 的所有前缀,并使用基于源的 RTBH 阻止这些前缀不过,流量仍会在边界处访问您的网络。

当您使用“简单”RTBH 时,优点是您可以将这些 RTBH 路由发送到您的上游 ISP(如果他们支持),然后他们可以阻止他们网络中的流量,因此您不必处理它。

@Sebastian 通过Packetlife描述的 RTBH 方法很有帮助,但该方法仅在您的上行链路没有被攻击流量饱和时才有效如果您的上行链路已饱和,则必须在攻击流量到达您的网络之前某个时间点实施黑洞

您可以通过上游黑洞社区来实现这一点。

Hurricane Electric提供了一个简单的解释/示例,说明客户触发的黑洞与 BGP 社区:

  1. 攻击开始
  2. 客户识别受到攻击的 ip 或 ip 范围
  3. 客户静态路由 ip 或 ip 范围到 Null0 并添加相应前缀的公告,并使用路由映射将其标记为 6939:666。

Cisco 配置示例(其中 XXXX 是被攻击的 ip):

conf t
ip route X.X.X.X 255.255.255.255 Null0
router bgp YourAS
network X.X.X.X mask 255.255.255.255 route-map blackhole
route-map blackhole permit 10
set community 6939:666
end

请注意,这6939:666是 Hurricane Electric 特有的黑洞社区。您可以修改此值以与上游提供商的黑洞社区相对应。

当然有多种方法可以配置它。在我的 Brocade 设备上,我使用以下配置:

router bgp
!
redistribute static route-map blackhole
!
!
route-map blackhole permit  5
 match tag  66
 set community  55555:666

55555:666你的上游供应商的黑洞社区在哪里然后可以使用一个简单的命令应用上游黑洞:

ip route 123.123.123.123 255.255.255.255 null0 tag 66

从 BGP 的角度来看,您无能为力。您可以停止宣传您的前缀,但是您刚刚完成了 DoS 攻击,因为没有人能够访问您的服务。

如果您有多个前缀,您可以重新编号,但攻击也可能会转移到新前缀。

您需要做的是与您的上游合作。他们有洗地服务吗?如果他们有像 Arbor Peakflow 这样的系统,他们可以在流量进入您的网络之前清理并清理它。此类服务通常非常昂贵。

还有其他选项,例如 Cloudflare 和类似公司,您可以通过 GRE 隧道设置 BGP 到该公司,并且您的流量由他们的“云”处理,该“云”可以处理比本地设备多得多的流量。

我在 CloudFlare 工作,我想分享我在过去几个月里积累的一些关于减轻 DDOS 攻击的知识。

第一; 许多人求助于网络级别的措施来缓解应用层 DDOS 攻击。在深入研究 BGP Blackholing 之前,请考虑它是否是速率限制或应用层保护可以处理的问题。那说; 现在发起超大容量 DDOS 攻击的成本非常低(考虑到有多少Open DNS Recursor存在,以及它们如何放大攻击)。

正如 Elliot 在他的回答中所描述的,如果您的网络很小,使用 BGP 社区来黑洞流量可以很好地工作;此机制记录在RFC 3882 中但是,像我们一样,如果您希望吸收攻击流量而不是黑洞(即您想要收集DDOS 攻击数据),那么请注意间接损害,从而导致中间网络提供商最终变得拥挤。您可以通过直接与发起攻击的网络的 ISP 建立对等关系来减轻附带损害。通过这样做,您可以获得从攻击者到目的地的最短路径。此外,您可以实施任播网络设计,这实际上意味着一个 IP 地址会访问多个数据中心(取决于最接近的那个)。

显然,并非每家公司都拥有进行任播和对等互连的基础设施;这就是企业越来越多地转向云服务以在不良流量到达其数据中心之前将其移除的原因。CloudFlare 自然就是这样一种服务。