手搓一台简单的网络损伤仪——弱网测试

1、介绍

  • 支持对链路带宽、传输时延、丢包率和无码率的手动设置;

1.1、网络损伤仪在使用时,网络拓扑连接

手搓一台简单的网络损伤仪——弱网测试_第1张图片

1.2、网络损伤仪管理页面展示

手搓一台简单的网络损伤仪——弱网测试_第2张图片

2、使用的设备及相关技术栈

  • 一台Intel 赛扬 J1900的迷你主机【拥有4个千兆网口】;
  • ubuntu-18.04.5-live-server-amd6操作系统;
  • OpenvSwitch【配置网桥和设置带宽】;
  • tc命令【设置网卡的传输时延、丢包率和无码率】;
  • Python3.6+Flask+Vue【编写终端管理页面】。

3.1、OpenvSwitch安装步骤及使用到的相关命令

  • 安装参考链接;

  • 新建br0网桥,让4个网口可以进行数据的透传:

    # 新建br0网桥
    ovs-vsctl add-br br0
    # 将4个物理网卡挂在到br0网桥下:
    ovs-vsctl add-port br0 enp1s0
    ovs-vsctl add-port br0 enp2s0
    ovs-vsctl add-port br0 enp3s0
    ovs-vsctl add-port br0 enp4s0
    
  • 通过ovs-vsctl设置指定网卡的带宽:

    # 将enp1s0网卡的带宽设置为1Mbps【ingress_policing_rate参数单位为Kbps】
    ovs-vsctl set interface enp1s0 ingress_policing_rate=1000
    # 清除enp1s0网卡的相关设置
    tc qdisc del dev enp1s0  root
    

3.2 tc的相关命令

  • 设置指定网卡的时间延迟、丢包率和误码率:
    # 将enp1s0网卡的时间延迟设置为5ms、丢包率设置为百分之一、误码率设置为百分之二
    tc qdisc replace dev enp1s0 root netem delay 5ms loss 1% corrupt 2%
    # 清除enp1s0网卡的相关设置
    tc qdisc del dev enp1s0 root
    

3、遇到的相关问题及解决方案

问题1:主机在开机后,再插入网线,无法自动激活网口。

解决方式:

通过配置 00-installer-config.yaml 网络配置文件,设置网口开启自启,并支持插入网线后自动激活:

network:
  ethernets:
          enp1s0:
                  dhcp4: yes
                  optional: true
          enp2s0:
                  dhcp4: yes
                  optional: true
          enp3s0:
                  dhcp4: yes
                  optional: true
          enp4s0:
                  dhcp4: yes
                  optional: true

          br0:
                  addresses: [192.168.3.88/24]
                  gateway4: 192.168.3.1
                  nameservers:
                          addresses: [114.114.114.114]
  version: 2


PS:此处,将br0的网桥IP设置为192.168.3.88,需要调整链路参数时候,用网线连接PC及迷你主机的任一网口,即可使用浏览器访问http://192.168.3.88/进行参数设置。

你可能感兴趣的:(测试工具,网络,python)