说明目标与前置条件:明确业务峰值、SLA、是否需要DDoS防护。准备:SSH密钥、供应商控制台账号、测试机和带宽测试工具(iperf3、speedtest-cli)。
操作小分段:1) 在运维机安装iperf3:sudo apt-get install -y iperf3;2) 获取历史流量:vnstat或从路由器导出流量日志。
1) 实测流量:在业务高峰期对内外网进行iperf3测量:iperf3 -s(服务器端),iperf3 -c SERVER_IP -P 8 -t 60(客户端并发8线程)。
2) 采样与预测:连续7天每小时采样,使用vnstat或sar导出CSV,计算95百分位后乘以余量(通常1.5倍)得到采购带宽。
步骤:1) 测试延迟/丢包:mtr -r -c 100 TARGET;2) 验证BGP与多出口:使用he.net查看AS信息,要求提供商支持BGP社区用于流量工程。
3) DDoS/清洗:确认是否包含清洗或可选付费scrubbing,若无则准备接入云防火墙或CDN。
1) SSH与账号:禁止密码登录,编辑/etc/ssh/sshd_config,设置PermitRootLogin no,UsePAM yes,Restart:sudo systemctl restart sshd。
2) 防火墙:使用ufw或nftables示例:sudo ufw default deny incoming; sudo ufw allow 22/tcp; sudo ufw enable。安装fail2ban并配置/ jail.local。
编辑/etc/sysctl.conf添加:net.core.rmem_max=16777216 net.core.wmem_max=16777216 net.ipv4.tcp_rmem=4096 87380 16777216 net.ipv4.tcp_wmem=4096 65536 16777216,然后sudo sysctl -p。
对网卡做离散测试:ethtool -S eth0查看误包;使用iperf3+tcpdump(sudo tcpdump -i eth0 -w capture.pcap)定位瓶颈。
1) 部署Prometheus+node_exporter:下载并运行node_exporter,systemd单元文件示例。2) 配置Prometheus抓取节点并在Grafana建立面板(带宽、连接数、丢包)。
3) 告警:在Prometheus Alertmanager中设定规则(如95百分位>阈值或丢包>1%),并配置邮件/Slack通知流程。
1) 备份:使用rsync或Borg,示例:borg create /backup::'{hostname}-{now}' /var/www。2) 补丁流程:先在测试机更新并回归测试,参照剧本再对生产执行。
3) 滚动重启:在LB后端按序停止服务、更新、健康检查通过后再下一个。对于systemd服务:sudo systemctl restart myapp && sudo systemctl status myapp。
1) 负载均衡:部署HAProxy+keepalived示例,keepalived配置虚拟IP实现主动-被动切换。2) 自动扩容:若在云或支持API的机房,使用Terraform脚本批量创建并在LB加入新节点。
示例:将新节点加入NGINX upstream:curl -X POST http://lb-api/add_backend -d '{"host":"10.0.0.5","port":80}',并在CI中自动化健康检查。
网络异常流程:1) mtr/traceroute定位延迟点;2) ss -tuna 查看连接状态;3) tcpdump抓包以确认包是否到达本端或被丢弃。
带宽饱和:使用iftop或nethogs查看哪进程占用带宽,若为外部攻击,临时在路由器侧做黑洞或联系上游开启流量清洗。
1) 快速策略:在BGP支持下请求上游做社区黑洞或将流量导向清洗中心;2) 本地限流:iptables/netfilter设置限速规则(示例:iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 200 -j DROP)。
3) 事后复盘并调整WAF规则、CDN缓存策略以及增加监控阈值。
答:相对复杂但可管理。关键在于监控、自动化和与带宽提供商的SLA协同。按步骤建立测试、备份、告警和应急联络链可以把复杂度降到可接受水平。
答:难点在于链路层(BGP/多出口)、硬件端口和上游计费策略。实操上需提前验证BGP切换、端口速率支持,并通过脚本自动化新增后端与LB配置。
答:建议建立运维手册与播放演练(runbook),包含带宽测量、内核调优、故障排查命令集与联络清单,并通过小规模演练验证流程再推广到实际环境。