生效时间取决于流量通过哪一层被引到高防,和高防产品本身的关系不大。
- 改DNS(把CNAME或A记录指向高防):通常要几分钟到几十分钟,主要看原记录的TTL和各地LocalDNS缓存。个别运营商的缓存不按TTL过期,可能拖到几个小时。
- BGP路由牵引(BGP广播、Flowspec):一般几秒到30~60秒。全网路由收敛后,流量直接进入清洗集群,不依赖用户重新解析域名。
- 流量已经在高防链路里,只调整策略(防护模式、黑白名单、弹性带宽):大多在秒级到1分钟内生效。
- 游戏盾SDK调度:客户端自己维护节点列表并测速,某个节点被打时,可以在毫秒到秒级内切到备用节点。

所以估算时间之前,先确认自己属于哪种情况。如果域名现在直接解析到源站,要接高防只能改解析,就按DNS的节奏估算。如果被保护的IP由高防方的网络负责宣告和牵引,就按路由收敛估算。如果业务平时就跑在高防CDN上,攻击来了不存在切换这一步。
改DNS为什么慢
递归DNS会缓存旧记录,直到TTL到期才重新查询。原记录TTL是600秒,部分用户最长要等10分钟左右才拿到新地址;TTL是3600秒或更长,等待时间也相应变长。另外,部分地区的LocalDNS不完全遵守TTL。这种情况没有统一的统计数据,实际要靠多地拨测来判断。
缓存过期之前,这部分用户的正常流量和攻击流量会继续直达源站,这段空窗期没办法完全避免。还有一种情况要单独看:攻击者直接打源站IP、不经过域名时,改解析对这部分流量完全没有作用,需要换源站IP,见下文。
计划割接:提前把TTL降下来
- 提前24~48小时,把要切换的记录TTL调到60~300秒。 之所以要提前,是因为各地缓存里还是旧的长TTL,要等它们过期,新的短TTL才会生效。
- 在高防侧配好域名、回源地址和证书。 先用本机hosts把域名指向高防地址,把页面、接口、登录、支付回调都走一遍,确认回源正常。
- 在业务低峰期修改解析记录。
- 按下文的方法确认生效。
- 等旧缓存基本过期,再收口源站:在防火墙或安全组里只放行高防的回源IP。收口太早,还停留在旧解析上的用户就访问不了了。
- 割接稳定后,把TTL改回平时使用的值。
正在被攻击时临时切换
这时旧缓存还没过期,空窗期一定会有。能做的是让切换后的部分尽快稳定,建议按这个顺序处理:
- 先在高防侧完成接入配置,再改解析。 否则解析切过去了,回源却失败,等于自己把业务断掉。
- 修改解析,同时把TTL调低。 调低的TTL只对之后产生的缓存有效,已有的缓存仍按旧TTL过期。
- 判断被打的是不是IP本身。 如果攻击直接冲着源站IP,或者机房已经把这个IP黑洞,改解析救不回来。应该换一个新的源站IP,只填在高防的回源配置里,不再出现在任何解析记录中。黑洞后的处理顺序可以参考香港CN2服务器被DDoS打了怎么处理,源站IP的泄露途径和收口方法见高防CDN接入后源站IP还会暴露吗。
- 解析大面积生效后,在控制台按攻击类型调整策略。 这一步通常是秒级到1分钟。
如果业务正在被攻击、需要有人协助接入,可以直接联系 RockCloud 应急接入。
怎么确认已经完全生效
- 多地拨测解析结果,覆盖主要用户所在的地区和运营商,看是否都返回高防地址。
- 看源站访问日志,非高防回源IP的请求应该逐渐减少,直到基本消失。
- 看高防控制台,确认流量和攻击数据已经出现在面板上。
如果解析已经全部指向高防,源站却还在被直连,多半是源站IP已经暴露,处理方法同上一节第3步。
BGP牵引为什么快
BGP牵引在网络层工作:路由器下发BGP广播或Flowspec规则,全网路由表收敛后,发往这个IP的流量会直接被牵引到清洗集群。这个过程通常在数秒到30~60秒内完成,与客户端的DNS缓存无关。前提是被保护的IP或IP段由提供牵引的网络负责路由,一般是高防IP或清洗服务提供的地址。随便一台普通云主机的IP不具备这个条件。牵引和回注的具体过程见BGP Anycast清洗是怎么工作的。
游戏和私有协议:用SDK绕开DNS
游戏盾的客户端集成SDK后,节点调度不经过公共LocalDNS,所以节点切换能做到毫秒到秒级,玩家通常感觉不到。这种方式要求客户端能集成SDK,普通网页访问用不了。按协议拆分接入方式的思路可以参考游戏服务器该选高防IP还是高防CDN。
不想下次再等:让防护常驻
最直接的办法是平时就把业务接在高防CDN上。这样攻击发生时只剩策略调整,不需要临时改解析。要权衡的是,日常流量也会经过这条链路,接入前应该实测各地延迟,并核算费用。
RockCloud的加速和防御在同一条链路上完成,只收一份费用,按固定峰值计费、不限流量。可以先申请免费测试,用hosts或测试子域名把自己的业务跑一遍,再决定是否把正式域名切过去。
评论(0)