名称: 网络模拟 描述: 用于网络条件模拟、仿真和混沌工程的技能 允许工具:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
网络模拟技能
用于网络条件模拟、仿真和混沌工程测试环境的专业技能。
能力
- 流量控制: 配置tc(流量控制)进行延迟、带宽和丢包模拟
- 网络命名空间: 设置网络命名空间进行网络隔离测试
- 广域网仿真: 使用netem仿真广域网条件(延迟、抖动、丢包、损坏)
- 虚拟拓扑: 创建虚拟网络拓扑进行测试
- 数据包操作: 模拟数据包丢失、重排序、重复和损坏
- 降级条件测试: 在降级网络条件下测试应用程序
- 混沌场景: 生成混沌工程场景进行弹性测试
- 容器网络: 配置Docker/Kubernetes网络模拟
工具和依赖
tc- Linux流量控制netem- 网络仿真器ip netns- 网络命名空间mininet- 网络仿真器toxiproxy- 混沌测试TCP代理comcast- 网络模拟工具pumba- 容器混沌测试
目标进程
- network-testing-framework.js
- load-testing-tool.js
- protocol-fuzzer.js
- tcp-socket-server.js
使用示例
延迟模拟
tc qdisc add dev eth0 root netem delay 100ms 20ms distribution normal
tc qdisc change dev eth0 root netem delay 200ms 40ms 25% correlation
丢包模拟
tc qdisc add dev eth0 root netem loss 5% 25%
tc qdisc add dev eth0 root netem loss gemodel 1% 10% 70% 0.1%
带宽限制
tc qdisc add dev eth0 root tbf rate 1mbit burst 32kbit latency 400ms
网络命名空间隔离
ip netns add test_ns
ip link add veth0 type veth peer name veth1
ip link set veth1 netns test_ns
ip netns exec test_ns ip addr add 10.0.0.2/24 dev veth1
ip netns exec test_ns ip link set veth1 up
Toxiproxy混沌测试
toxiproxy-cli create -l localhost:6379 -u localhost:6380 redis_proxy
toxiproxy-cli toxic add -t latency -a latency=1000 redis_proxy
质量门限
- 网络条件正确应用
- 验证应用程序在降级条件下的行为
- 混沌场景成功执行
- 恢复测试完成
- 性能基线建立