关于 network-engineering
Network Engineering 是用于网络设计、配置和故障排查的技能,涵盖网络架构、负载均衡、DNS、SSL/TLS、安全与性能,并提供命令和参考资料。
主要功能
- 01规划 VPC 和子网布局
- 02配置负载均衡器与路由
- 03设置并排查 DNS 记录
- 04配置并检查 SSL/TLS
- 05排查连接与性能问题
适用场景
- 01设计云网络拓扑
- 02调查 DNS 或连接故障
- 03配置负载均衡与运行状况检查
- 04排查证书及网络性能问题
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ 89jobrien/ steve --skill network-engineering安装后在 Claude Code 中输入/network-engineering确认已加载。
详细介绍
网络工程
涵盖网络设计、故障排查、负载均衡、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 | 数据链路层 | Ethernet | arp |
| 1 | 物理层 | - | 电缆测试仪 |
VPC/网络设计
子网策略:
VPC CIDR: 10.0.0.0/16 (65,536 IPs)
Public Subnets (internet-facing):
- 10.0.1.0/24 (AZ-a) - Load balancers, bastion
- 10.0.2.0/24 (AZ-b)
- 10.0.3.0/24 (AZ-c)
Private Subnets (application tier):
- 10.0.11.0/24 (AZ-a) - App servers
- 10.0.12.0/24 (AZ-b)
- 10.0.13.0/24 (AZ-c)
Database Subnets (isolated):
- 10.0.21.0/24 (AZ-a) - Databases only
- 10.0.22.0/24 (AZ-b)
- 10.0.23.0/24 (AZ-c)
流量路径:
- Internet → 负载均衡器(公有)→ 应用(私有)→ 数据库(隔离)
- 使用 NAT Gateway 处理私有子网的出站流量
- 使用 VPC Endpoints 访问 AWS 服务
负载均衡
负载均衡器类型
| 类型 | 层 | 使用场景 |
|---|---|---|
| 应用型(ALB) | 7 | HTTP/HTTPS、基于路径的路由 |
| 网络型(NLB) | 4 | TCP/UDP、静态 IP、高性能 |
| 经典型 | 4/7 | 旧版应用 |
| 网关型 | 3 | 第三方设备 |
健康检查
# ALB Health Check
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 调试
# Query specific record type
dig example.com A
dig example.com MX
dig example.com TXT
# Query specific DNS server
dig @8.8.8.8 example.com
# Trace DNS resolution
dig +trace example.com
# Check propagation
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 调试
# Check certificate
openssl s_client -connect example.com:443 -servername example.com
# Check certificate chain
openssl s_client -connect example.com:443 -showcerts
# Check expiration
echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -dates
# Test TLS versions
openssl s_client -connect example.com:443 -tls1_2
openssl s_client -connect example.com:443 -tls1_3
故障排查
连接检查清单
- 物理层/云层:实例是否正在运行?
- 安全组:端口是否开放?
- NACL:子网是否允许流量通过?
- 路由表:路由是否正确?
- DNS:域名是否能解析?
- 应用:服务是否正在监听?
常用命令
# Check if port is listening
netstat -tlnp | grep :80
ss -tlnp | grep :80
# Test TCP connectivity
nc -zv hostname 443
telnet hostname 443
# Check routes
ip route
traceroute hostname
mtr hostname
# DNS resolution
nslookup hostname
dig hostname
host hostname
# Network interfaces
ip addr
ifconfig
# Active connections
netstat -an
ss -tuln
性能调试
# Bandwidth test
iperf3 -c server-ip
# Latency analysis
ping -c 100 hostname | tail -1
# MTU issues
ping -M do -s 1472 hostname
# Packet capture
tcpdump -i eth0 port 443
参考文件
references/troubleshooting.md- 详细的故障排查工作流
与其他技能的集成
- cloud-infrastructure - 用于云网络
- security-engineering - 用于网络安全
- performance - 用于网络优化
评论
支持 Markdown