1.
概述与目标
本文目标是给出可落地的香港节点高防实施步骤:流量检测->本地限速/黑名单->流量旁路到清洗中心->恢复上线。适用于自建机房或云主机(如香港机房)需要在遭受DDoS时保证业务可用。
2.
整体架构设计
建议架构:本地边缘(路由器/防火墙)+检测引擎(sFlow/NetFlow/FastNetMon)+控制器(自动下发规则)+清洗中心(Anycast/旁路GRE)+回源链路。关键点是能在秒级检测并通过BGP或隧道导流。
3.
流量检测与阈值配置
步骤:1) 开启sFlow/NetFlow:在交换机开启采样,发往检测主机;2) 部署FastNetMon并设置阈值,例如:pshreshold=1000pps或bps阈值为总带宽的30%;3) FastNetMon触发时调用脚本执行旁路或黑洞。
4.
本地清洗:iptables/ipset与tc
实操示例:1) 安装ipset:ipset create blacklist hash:ip timeout 86400;2) 加黑:ipset add blacklist 1.2.3.4;3) 在iptables中引用:iptables -I INPUT -m set --match-set blacklist src -j DROP;4) 对突发流量用tc限速:tc qdisc add dev eth0 root tbf rate 500mbit burst 32klatency 400ms。
5.
旁路策略一:BGP黑洞与清洗中心(适用于有公网BGP的机房)
步骤:1) 检测到攻击后,控制器通过FRRouting或ExaBGP下发BGP route的NO_EXPORT或社区到上游,示例vtysh命令:configure terminal; router bgp 64512; ip prefix-list BLACKHOLE seq 5 permit 1.2.3.0/24; route-map TO_BLACKHOLE permit 10; set ip next-hop 192.0.2.1; 2) 上游运营商会把流量导到指定清洗出口。
6.
旁路策略二:隧道(GRE/VXLAN)导流到清洗机房
操作步骤:1) 在边缘路由创建GRE:ip tunnel add gre1 mode gre local <本地公网> remote <清洗中心公网> ttl 255; ip link set gre1 up;2) 添加路由:ip route add <被保护网段> dev gre1;3) 清洗中心接收隧道流量并回源到原地址或通过回程链路返还干净流量。
7.
与清洗中心对接要点
要点:1) 双向确认带宽与MTU(GRE需留出头部);2) 制定黑白名单同步机制(通过API或rsync);3) 设置回源策略:清洗后通过专线或回流IP回到香港机房并做源NAT以避免回环问题。
8.
自动化与告警流程
实操:1) FastNetMon触发脚本示例:当检测到threshold时调用curl到控制器API:curl -X POST http://controller/api/mitigate -d '{"ip":"1.2.3.4","method":"gre"}';2) 控制器执行相应的旁路或下发ipset/iptables规则;3) 告警集成至Slack/邮件。
9.
流量恢复与白名单策略
恢复步骤:1) 攻击结束后不要马上撤销,先把阈值逐步提升并观察;2) 将被封禁IP移入观察集(短期watchlist);3) 自动脚本可以在N小时无异常后清空ipset或撤销BGP黑洞。
10.
测试与演练
建议:1) 在非高峰期模拟小规模流量攻击(例如使用合法压力测试)演练旁路;2) 验证GRE隧道稳定、MTU、双向回流;3) 测试FRR/ExaBGP下发黑洞到上游并确认上游策略执行。
11.
监控与性能调优
监控项包括:接口带宽、丢包率、sFlow样本率、CPU/内存、FastNetMon告警频率。根据监控调整采样率、iptables规则链顺序和tc队列策略,避免在高并发下导致边缘设备CPU饱和。
12.
常见风险与合规注意
风险:误封正常用户、旁路导致延时增长、隧道丢包。合规:与互联网服务供应商(ISP)签署清洗与黑洞的SLA,遵守香港本地法律与数据隐私要求。
13.
问:香港机房如何快速决定用本地清洗还是旁路到清洗中心?
答:优先判断攻击量与边缘带宽占用率:当攻击占用带宽>30%且边缘设备CPU达到阈值,优先旁路到清洗中心;若只是少量恶意连接,用本地ipset+iptables+tc即可。
14.
问:没有BGP公网如何实施旁路?
答:可使用GRE/VXLAN隧道与清洗厂商对接:在边缘创建到清洗中心的隧道并通过路由指向隧道,清洗后由清洗中心回源或通过专线回流。
15.
问:实操中常用的自动化工具有哪些,如何落地?
答:推荐FastNetMon(检测)、FRRouting/ExaBGP(BGP控制)、Ansible(规则下发)、Prometheus+Grafana(监控)。落地流程:部署检测->编写触发脚本->在控制器用Ansible执行iptables/ipset/隧道命令->联调清洗中心接口。
来源:技术手册 香港网站服务器高防的流量清洗与旁路策略解析