1.1 明确需求:带宽峰值、保证带宽、DDoS 容忍度、SLA(时延/丢包/可用性)和预算。
1.2 询问供应商:是否接入中国 CN2(注明是 CN2 GT/CT/GIA)、是否支持 BGP 承载、是否提供按源/目的 IP 的带宽保留、是否有清洗/黑洞服务和真实流量样本。
1.3 测试链路:购买短期套餐或试用 IP,使用 mtr/traceroute、iperf3(tcp/udp)和 ping 检测到中国主要节点的延迟与丢包。
2.1 提交需求:告诉供应商你需要通过他们的 CN2 通道访问中国大陆,提供目标中国节点或 ASN 以便测试路由。
2.2 要求 BGP 策略:如果你有自有 IP/ASN,要求对方支持 BGP announce 或提供 BGP 社区用于流量优选。
2.3 验证:在拿到 IP 后,进行 traceroute 确认路径是否走 CN2,记录 RTT 与跳数作为 SLA 基线。
3.1 /etc/sysctl.conf 推荐项(写入并 sysctl -p):net.ipv4.tcp_tw_reuse=1, net.ipv4.tcp_fin_timeout=15, net.core.somaxconn=65535, net.ipv4.tcp_max_syn_backlog=4096。
3.2 调整连接限制与文件描述符:ulimit -n 200000,systemd 服务配置中 LimitNOFILE。
3.3 打开 SYN Cookies:net.ipv4.tcp_syncookies=1,用于基础 SYN 放大防护。
4.1 基本策略:DROP 默认,允许必要端口(如 22、80、443)并对管理端口限制来源 IP。
4.2 连接数限制示例(iptables):iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 200 -j REJECT。
4.3 针对常见攻击:限制 SYN 速率、启用 conntrack 超时合理化,使用 fail2ban 阻挡暴力登录。
5.1 设计带宽计划:定义总带宽、保证带宽(guaranteed rate)、突发上限(ceil)。例如总 500Mbps,核心业务保证 300Mbps。
5.2 示例命令(以 eth0 为例):
tc qdisc add dev eth0 root handle 1: htb default 30
tc class add dev eth0 parent 1: classid 1:1 htb rate 500mbit ceil 500mbit
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 300mbit ceil 500mbit prio 1
tc class add dev eth0 parent 1:1 classid 1:20 htb rate 150mbit ceil 500mbit prio 2
tc class add dev eth0 parent 1:1 classid 1:30 htb rate 50mbit ceil 500mbit prio 3
5.3 绑定流量(filter):使用 tc filter match ip protocol/src/dst 或 u32 来识别业务并分配到 classid。
6.1 用 iptables 标记:iptables -t mangle -A PREROUTING -s 10.0.0.0/24 -j MARK --set-mark 10
6.2 tc filter 识别 mark:tc filter add dev eth0 parent 1: protocol ip handle 10 fw flowid 1:10
6.3 优化:针对不同业务(API、静态文件、管理)设定不同 class 以保证关键业务带宽。
7.1 分层防护:本地防护(iptables + tc + connlimit) + 接入商清洗(always-on 或 on-demand)+ CDN/Anycast 层。
7.2 快速切换黑洞/清洗:与供应商约定 BGP 社区或 API,用于在攻击时自动将流量切到清洗节点。
7.3 部署检测:使用 FastNetMon、GoFlow 或 sFlow 采样检测异常流量并触发自动化响应。
8.1 部署采集:在服务器部署 node_exporter、netdata 或 bmon,用 Prometheus + Grafana 收集流量、丢包、延迟。
8.2 关键指标:接口速率、带宽使用率、丢包/错误、conntrack 使用率、SYN 速率、iptables 拒绝计数。
8.3 告警策略:设置阈值(如接口利用率 >85%、SYN 攻击速率超过基线)并通过邮件/短信/钉钉告警。
9.1 带宽验证:使用 iperf3 在不同 class 下生成并发流,验证 tc class 的 rate/ceil 是否生效。
9.2 DDoS 演练:在受控环境用流量发生器模拟异常,测试清洗切换、黑洞策略与恢复流程。
9.3 SLA 记录:保存测试结果与 traceroute、延迟曲线,作为未来与运营商谈判的依据。
答:选择已接入中国 CN2 的供应商并要求通过 CN2 或指定 ASN 的 BGP 路径;在拿到 IP 后用 traceroute/mtr 验证路径是否经过 CN2 节点,必要时让供应商调整对端 peer 或使用 BGP 社区优化路由。
答:通过 tc + HTB 配置保证类(rate)优先,将关键业务用 iptables 标记并 bind 到高优先级 class;配置 ceil 允许在空闲时占用额外带宽,同时在拥堵时回退到保证带宽。
答:与供应商预先约定 BGP 黑洞或清洗的触发机制(API 或 BGP 社区),部署流量检测(FastNetMon)自动识别并调用清洗 API,同时保留本地速率限制与连接控制以缓解切换延迟。