1.
准备与需求评估
- 明确目标:是保护单个网站、游戏服还是 CDN/代理节点。量化峰值带宽、并发连接数、可接受延迟与预算。
- 列出地点:香港机房(HKG)为主,是否需要多个 POP(如香港、东南亚、东京)做 Anycast/多活。
2.
选择供应商与机房类型
- 比较香港本地机房与云厂商的高防服务:本地机房通常提供物理端口/交叉连接,云厂商(阿里云/腾讯云/Cloudflare)提供云清洗。
- 如果要求低时延与 BGP 控制,优先选择可以开 BGP 的 Colo(如 Equinix、PCCW、HKCOLO)。确认是否支持 BFD、私有链路、交叉接入。
3.
端口、带宽与链路规划
- 购买至少两个物理链路或独立上游(A 与 B),分别接入不同骨干或运营商。带宽预留按峰值 1.5-2x 估算。
- 申请公网 IP 段或使用上游提供的 /29/ /28;准备 ASN(自有或上游提供)。
4.
网络拓扑设计(示例)
- 简单拓扑:客户设备 -> 交换机 -> 路由器(FRR) -> 两个上游 ISP -> Internet。
- Anycast 拓扑:在多个机房部署同一服务 IP,前端通过 Anycast+清洗节点做流量分发;后端通过 GRE/IPsec 隧道汇聚业务。
5.
BGP 与路由配置实操
- 安装 FRR(Debian/Ubuntu):apt update && apt install frr frr-doc。启用 bgpd。
- bgpd 简单模板(替换 ASN/IP):
router bgp 65001
bgp router-id 1.1.1.1
neighbor x.x.x.x remote-as 65002
network 203.0.113.0/29
保存并重启 frr。
- 配置 BFD 加速失效检测;在 FRR 中启用 bfd 并在 neighbor 下配置 bfd。注意与上游协商。
6.
Anycast 与清洗链路部署
- 若采用 Anycast(多机房同 IP),需要在每个 POP 宣告相同前缀并在清洗层之前做好流量分流。
- 清洗方案:1)上游云清洗(下发净化后的流量回到你的机房);2)自建清洗池(需大流量硬件)。与服务商签 SLA,测试清洗触发逻辑与回流路径。
7.
VPN/隧道与互联(GRE/IPsec 实例)
- GRE 隧道(Linux)示例:
ip tunnel add gre1 mode gre remote <对端IP> local <本端IP> ttl 64
ip link set gre1 up
ip addr add 10.10.10.1/30 dev gre1
- IPsec(strongSwan)做加密:配置 /etc/ipsec.conf 与 /etc/ipsec.secrets,启动 ipsec restart,用于不同机房间安全回流。
8.
负载均衡与高可用(Keepalived + HAProxy)
- 部署 Keepalived 做 VRRP:配置虚拟 IP(VIP)在主备服务器之间漂移,心跳检测后切换。
- HAProxy 基本配置:将 VIP 指向本地后端池,并配置健康检查(http-check、tcp-check)。示例:
backend web
balance roundrobin
server s1 10.0.0.1:80 check
- 整合防火墙规则,确保 VIP 与真实服务器通信。
9.
防火墙、内核与连接数优化
- sysctl 优化(/etc/sysctl.conf)示例:
net.core.somaxconn=65535
net.ipv4.tcp_tw_reuse=1
net.netfilter.nf_conntrack_max=2000000
- iptables 基本规则先允许管理 IP,再限制 SYN 攻击:
iptables -N SYNPROTECT
iptables -A INPUT -p tcp --syn -m limit --limit 25/second -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP
10.
监控、日志与告警
- 部署监控:Prometheus + node_exporter + Grafana 监控主机指标,BGP 状态用 bgp_exporter 或 FRR 的数据。
- 流量采样与日志:sFlow/NetFlow 导出到收集器,nginx/haproxy 的 access.log 配合 fail2ban 做自动封禁。设置告警(短信/邮件/钉钉)。
11.
测试与演练步骤
- 常规测试:ping、traceroute 检查路径;curl 验证应用;tcptraceroute 检查端口。
- 灾备演练:模拟单链路故障,断开上游 A,观察 BGP 收敛时间与应用切换;模拟清洗触发(与服务商协作)验证回流。
12.
运维与运费注意事项
- 定期更新 FRR/OS,备份配置与证书。制定黑名单/白名单管理流程。
- 合同里写清楚 DDoS 容量、清洗延时、可用性 SLA 以及计费规则,避免临时超峰单价暴涨。
13.
故障排查快速流程
- 排查步骤:1)查看链路与上游 BGP 状态(show ip bgp summary);2)检查防火墙/conntrack 是否满;3)查看服务器负载与磁盘/网络 IO;4)回放流量采样找异常来源。
14.
常用命令汇总
- ip addr/show/route、ss -tnlp、tcpdump -i eth0 'port 80'、vtysh(FRR)查看 BGP、journalctl -u frr;记录常用命令脚本化并纳入运维手册。
15.
问:香港高防部署必须同时使用 Anycast 和清洗吗?
- 答:不必须。Anycast 适合多点分发与就近接入,减少单点压力;清洗是针对大流量攻击的净化手段。小规模业务可以先用单点清洗或云清洗,大流量/全球业务建议两者结合。
16.
问:如何评估上游清洗商是否靠谱?
- 答:评估要看清洗容量(Gbps)、清洗响应时间、回流路径、是否有 SLAs、是否提供 BGP 社区与自动化触发接口,以及过往案例与客户口碑,最好做压力演练。
17.
问:启动后如何持续优化成本与性能?
- 答:定期分析流量来源、峰值时间,针对常见攻击类型调整防护规则;按需调整带宽与清洗套餐;通过缓存、CDN、应用优化减少回源流量,从而在保障性能下控制费用。
来源:从零开始搭建香港高防服务器互联方案的实战经验分享