Linux网络模拟

在Linux下, 通常使用netem或bridge来模拟网络不稳定情况。 在模拟过程中, 最好使用虚拟机。 如果是远程机器, 那么网络环境模拟需要两块网卡, 而桥模拟最好使用三块网卡。 就是需要附加一个网卡, 用作管理。

netem

是一个网络模拟器, 它为测试提供了一些互联网我, 如延时, 丢包, 重包, re-ordering. 在Linux2.6的发行版本中, 一般会带有此包。

  • 端口延时命令
  1. tc qdisc add dev eth0 root netem delay 100ms : 表示对端口廷时100ms
  2. tc qdisc del dev eth0 root netem delya 100ms : 表示对端口廷时命令删除
  3. tc qdisc change dev eth0 root netem delay 100ms 10ms :表示对改变端口廷时命100ms ± 10ms 延时范围(90到110)
  4. tc qdisc change dev eth0 root netem delay 100ms 10ms 25% : 表示廷时范围100ms ± 10ms * 25%
  • 端口丢包命令:
  1. tc qdisc change dev eth0 root netem loss 0.1% : 丢包率为0。1%
  2. tc qdisc change dev eth0 root netem loss 0.3% 25% : 丢包率为范围(0。3% 25%)
  • 数据包副本命令
  1. tc qdisc change dev eth0 root netem duplicate 1% : 数据包副本率 1%
  • 数据包分发命令
  1. tc qdisc change dev eth0 root netem gap 5 delay 10ms : 数据包重发每格5的整数倍的包将不被延时。其它的将延时10ms
  • 速率控制命令:两条命令共同完成
  1. tc qdisc add dev eth0 root handle 1:0 netem delay 100ms
  2. tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000
  • 查看规则信息
  1. tc -s qdisc ls dev eth0
  2. tc qdisc show
  • 删除规则 tc qdisc del dev eth0 root

bridge

bridge-utils可以模拟一个网桥。 在多数情况下,我们做网桥防火墙需要的是一台三网卡的服务,2个网卡做桥接,另外一个配置好ip地址作为管理接口,以便远程登陆网桥服务器对防火墙进行管理。 (这是可以把此主机看到两个端口的HUB )

  1. brctl addbr mybridge (创建bridge mybridge,然后用ifconfig查看会发现多了一个mybridge端口)
  2. brctl addif mybridge eth0
  3. brctl addif mybridge eth1 (把eth0和eth1包含到mybridge中)
  • 然后需要对各端口做以下动作
  1. ifconfig eth0 0.0.0.0 promisc
  2. ifconfig eth1 0.0.0.0 promisc(打开混杂模式)
  3. ifconfig mybridge up(启动网桥)

*.从网桥中删除网卡eth0 和eth1

  1. brctl delif eth0
  2. brctl delif eth1
  • 删除网桥br0
  1. brctl delbr br0

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Linux中文件系统注册及mount过程分析5

    这些介绍了从读超级快,获得磁盘的块的属性,然后进行了sops注册,然后进入ext4_iget进行了文件操作,目录操作,链接操作等函数的注册,比如读文件

    用户3765803
  • 编译ffmpeg无法生成ffplay的问题解决

    好多人问编译ffmpeg时无法生成ffplay,其具体原因多数是由于没有SDL或者SDL版本不正确所导致。

    用户3765803
  • P2P RTMFP Server - MonaServer 中事件(Event)的基本使用

    当Server的app被创建的时候并且第一次执行到的时候,才会调用这个事件,这个事件的第一个参数是app的path

    用户3765803
  • MySQL 各种SQL语句加锁分析

    Locking read( SELECT ... FOR UPDATE or SELECT ... LOCK IN SHARE MODE),UPDATE以及DE...

    用户1278550
  • centos7下将/home分区空间扩容至/分区

    在安装centos7系统时,假若不进行任何的分区操作,默认会分为两个区,一个根分区,一个/home分区,如下所示:

    dogfei
  • Android EditTextView 实现带空格分隔的输入(电话号码,银行卡)

    When an object of a type is attached to an Editable, its methods will be called ...

    砸漏
  • Centos7.2学习记录(4)——调整root和home大小

    剩余大小为441.12G。 扩展/root所在的lv,增加421.12G大小

    胡了了
  • 剑指Offer - 面试题17. 打印从1到最大的n位数

    输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。

    Michael阿明
  • CentOS减小home分区扩大root分区

    用户1086810
  • Dimple在左耳听风ARTS打卡(十四)

    所谓ARTS:每周至少做一个LeetCode的算法题;阅读并点评至少一篇英文技术文章;学习至少一个技术技巧;分享一篇有观点和思考的技术文章。(也就是Algori...

    程序员小跃

扫码关注云+社区

领取腾讯云代金券