zl程序教程

您现在的位置是:首页 >  其他

当前栏目

一种手动建立损伤网络的方法

2023-02-19 12:21:23 时间
  1. 在windows上安装Linux虚拟机 windows 192.168.43.100 路由 43.254 CentOS5.4 linux 192.168.43.101 路由 43.254 这时 linux windows 上网都是正常的。
  2. 启动linux的路有功能 sysctl -w net.ipv4.ip_forward=1 也可以设置到配置文件中,重启生效 vi /etc/sysctl.conf net.ipv4.ip_forward = 1 查看方式: sysctl net.ipv4.ip_forward
  3. 将windows的网关改成 43.101 用 tracert 看是否生效。
  4. Linux 设置延时 300ms tc qdisc add dev eth0 root netem delay 300ms
  5. 在windows 上 ping 192.168.43.101, 可发现已经生效。 tc qdisc del dev eth0 root 则可以失效。 参考: http://wenku.baidu.com/view/49389da8dd3383c4bb4cd264.html 例子 tc qdisc add dev eth0 root netem delay 300ms 20ms 延时300ms,正负抖动20ms tc qdisc add dev eth0 root netem loss 50% 随机丢包50% tc qdisc add dev eth0 root netem loss 5% 100% 随机丢包5% 成功率100% //不是很懂 还可以乱序,损伤包,重复发等。 以上的操作(delay、loss„„)可以叠加使用,即同一interface可以同 时模拟delay & loss等 tc qdisc add dev eth0 root netem loss 50% delay 300ms 20ms
  6. 在windows 上 ping 192.168.31.56 如果延时了, 则说明路由正确了。 如果没延时 route print 查看路由表。 尝试删除 route delete 192.168.43.100 然后再试。 注意实验完毕后, 要把windows的网关改回 43.254,否则虚拟机一关就不能上网了。 另外有网上推荐WANem能完成同样功能(据说底层也是基于tc的),但图形化了,可以研究一下。 http://blog.sina.com.cn/s/blog_9de1d6110100zad9.html http://wenku.baidu.com/view/de5e880716fc700abb68fc6f