name: network-engineering
description: 网络架构、故障排除和基础设施模式。在设计网络拓扑、调试连接问题、配置负载均衡器、DNS或实施网络安全时使用。
author: Joseph OBrien
status: unpublished
updated: ‘2025-12-23’
version: 1.0.1
tag: skill
type: skill
网络工程
全面的网络工程技能,涵盖网络设计、故障排除、负载均衡、DNS和网络安全。
何时使用此技能
- 设计网络拓扑
- 故障排除连接问题
- 配置负载均衡器
- DNS配置和故障排除
- SSL/TLS设置和调试
- 网络安全实施
- 性能优化
- CDN配置
网络架构
OSI模型参考
| 层 |
名称 |
协议 |
故障排除工具 |
| 7 |
应用层 |
HTTP, DNS, SMTP |
curl, 浏览器工具 |
| 6 |
表示层 |
SSL/TLS |
openssl |
| 5 |
会话层 |
NetBIOS |
- |
| 4 |
传输层 |
TCP, UDP |
netstat, ss |
| 3 |
网络层 |
IP, ICMP |
ping, traceroute |
| 2 |
数据链路层 |
以太网 |
arp |
| 1 |
物理层 |
- |
电缆测试仪 |
VPC/网络设计
子网策略:
VPC CIDR: 10.0.0.0/16 (65,536 个IP)
公共子网 (面向互联网):
- 10.0.1.0/24 (可用区-a) - 负载均衡器,堡垒机
- 10.0.2.0/24 (可用区-b)
- 10.0.3.0/24 (可用区-c)
私有子网 (应用层):
- 10.0.11.0/24 (可用区-a) - 应用服务器
- 10.0.12.0/24 (可用区-b)
- 10.0.13.0/24 (可用区-c)
数据库子网 (隔离):
- 10.0.21.0/24 (可用区-a) - 仅数据库
- 10.0.22.0/24 (可用区-b)
- 10.0.23.0/24 (可用区-c)
流量流向:
- 互联网 → 负载均衡器 (公共) → 应用 (私有) → 数据库 (隔离)
- NAT网关用于私有子网出站
- VPC端点用于AWS服务
负载均衡
负载均衡器类型
| 类型 |
层 |
使用场景 |
| 应用负载均衡器 (ALB) |
7 |
HTTP/HTTPS, 路径路由 |
| 网络负载均衡器 (NLB) |
4 |
TCP/UDP, 静态IP, 高性能 |
| 经典负载均衡器 |
4/7 |
遗留系统 |
| 网关负载均衡器 |
3 |
第三方设备 |
健康检查
# ALB 健康检查
health_check:
path: /health
protocol: HTTP
port: 8080
interval: 30
timeout: 5
healthy_threshold: 2
unhealthy_threshold: 3
matcher: "200-299"
路由策略
- 轮询: 平均分配
- 最少连接: 路由到最不繁忙的服务器
- IP哈希: 基于客户端IP的粘性会话
- 加权: 基于百分比分配
- 基于路径: 按URL路径路由
- 基于主机: 按主机名路由
DNS
记录类型
| 类型 |
用途 |
示例 |
| A |
IPv4地址 |
example.com → 192.0.2.1 |
| AAAA |
IPv6地址 |
example.com → 2001:db8::1 |
| CNAME |
别名 |
www → example.com |
| MX |
邮件服务器 |
example.com → mail.example.com |
| TXT |
任意文本 |
SPF, DKIM, 验证 |
| NS |
名称服务器 |
DNS委派 |
| SRV |
服务定位 |
_sip._tcp.example.com |
| CAA |
证书颁发机构 |
限制CA颁发 |
DNS调试
# 查询特定记录类型
dig example.com A
dig example.com MX
dig example.com TXT
# 查询特定DNS服务器
dig @8.8.8.8 example.com
# 跟踪DNS解析过程
dig +trace example.com
# 检查传播
dig +short example.com @{dns-server}
TTL策略
| 记录类型 |
推荐TTL |
| 静态内容 |
86400 (1天) |
| 动态内容 |
300 (5分钟) |
| 故障转移记录 |
60 (1分钟) |
| 迁移前 |
降低至60 |
SSL/TLS
证书类型
| 类型 |
验证级别 |
使用场景 |
| DV |
域名所有权 |
基础网站 |
| OV |
组织验证 |
企业网站 |
| EV |
扩展验证 |
高信任度网站 |
| 通配符 |
*.domain.com |
多个子域名 |
| SAN |
多域名 |
多个特定域名 |
TLS配置
推荐设置:
- 仅使用TLS 1.2和1.3
- 强密码套件 (AEAD)
- 启用HSTS
- OCSP装订
- 证书透明度
SSL调试
# 检查证书
openssl s_client -connect example.com:443 -servername example.com
# 检查证书链
openssl s_client -connect example.com:443 -showcerts
# 检查过期时间
echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -dates
# 测试TLS版本
openssl s_client -connect example.com:443 -tls1_2
openssl s_client -connect example.com:443 -tls1_3
故障排除
连接性检查清单
- 物理/云层: 实例是否在运行?
- 安全组: 端口是否开放?
- 网络ACL: 子网是否允许流量?
- 路由表: 路由是否正确?
- DNS: 域名是否解析?
- 应用: 服务是否在监听?
常用命令
# 检查端口是否在监听
netstat -tlnp | grep :80
ss -tlnp | grep :80
# 测试TCP连接性
nc -zv hostname 443
telnet hostname 443
# 检查路由
ip route
traceroute hostname
mtr hostname
# DNS解析
nslookup hostname
dig hostname
host hostname
# 网络接口
ip addr
ifconfig
# 活动连接
netstat -an
ss -tuln
性能调试
# 带宽测试
iperf3 -c server-ip
# 延迟分析
ping -c 100 hostname | tail -1
# MTU问题
ping -M do -s 1472 hostname
# 数据包捕获
tcpdump -i eth0 port 443
参考文件
references/troubleshooting.md - 详细的故障排除工作流程
与其他技能的集成
- cloud-infrastructure - 用于云网络
- security-engineering - 用于网络安全
- performance - 用于网络优化