2025年【网络模拟】网络环境模拟搭建

【网络模拟】网络环境模拟搭建原先使用 NEWT 在 Windows 端搭建一套网络仿真的环境 现在搭建一套更加精确的网络控制器 网络模拟拓扑图 其中 网络控制器需要时一个双网卡的服务器 两个网口 eth0 和 eth1 网桥的搭建 网桥 工作在网络链路层 可以连接不同局域网的网络设备 网络控制器中网桥的搭建

大家好,我是讯享网,很高兴认识大家。

原先使用NEWT在Windows端搭建一套网络仿真的环境,现在搭建一套更加精确的网络控制器

网络模拟拓扑图

这里写图片描述
讯享网

其中,网络控制器需要时一个双网卡的服务器,两个网口eth0和eth1

网桥的搭建

网桥:工作在网络链路层,可以连接不同局域网的网络设备

网络控制器中网桥的搭建:
安装网桥搭建工具bridge-utils:
yum install bridge-utils
配置网桥:
brctl addbr br0
brctl addif br0 eno1
brctl addif br0 eno2
ifconfig br0 xxx.xxx.xxx.xxx netmask xxx.xxx.xxx.xxx up

使用brctool show查看配置是否成功:
这里写图片描述

流量控制模块配置

网桥搭建成功后,现在我们开始流量控制部分

实现工具:
linux2.4以上版本的内核中自带了有netem(net emulation)模块和tc(traffic contrl)模块,前者用于网络仿真,后者用于流量整形控制,都是通过tc命令进行配置

作用:
在性能良好的局域网中,模拟出复杂的互联网传输性能,诸如低带宽、传输延迟、丢包等等情况

实现流程:

这里写图片描述

配置命令:

延时

  • 固定延时
# tc qdisc add dev eno1 root netem delay 100ms 

讯享网
  • 波动性的延时:
讯享网tc qdisc change dev eno1 root netem delay 100ms 10ms 

将 eno1 网卡的传输设置为延迟 100ms ± 10ms (90 ~ 110 ms 之间的任意值)发送

ping 一下153机器:
这里写图片描述

  • 进一步加强波动性的延时:

设置相关性为30%:

tc qdisc change dev eno1 root netem delay 100ms 10ms 30% 

抖动

设置延时抖动为正态分布:

讯享网# tc qdisc change dev eno1 root netem delay 100ms 20ms distribution normal 

丢包

  • 固定丢包率:
 # tc qdisc change dev eno1 root netem loss 10% 

ping 一下153机器:
这里写图片描述
因为ping的时长较短,故丢包率不是很准确

包重复

讯享网# tc qdisc add dev eno1 root netem duplicate 1% 

将 eno1 网卡的传输设置为随机产生 1% 的重复数据包

包损坏

# tc qdisc add dev eno1 root netem corrupt 0.2% 

将 eno1 网卡的传输设置为随机产生 0.2% 的损坏的数据包(内核版本需在 2.6.16 以上)

乱序

  • 按照个数
讯享网# tc qdisc change dev eno1 root netem gap 5 delay 10ms 

每第5个包马上发送,其他的包间隔10ms发送

  • 按照百分比
# tc qdisc change dev eno1 root netem delay 10ms reorder 10% 25% 

10%的包(相关性为25%)马上发送,其他的包间隔10ms发送

带宽
模拟工具:ethtool
命令:

讯享网–s ethX [speed 10|100|1000] [duplex half|full] [autoneg on|off] 
  • 如设置100M的带宽:
# ethtool -s eno1 autoneg off speed 100 duplex full 
  • 使用ethtool eno1 查看网络带宽

这里写图片描述

  • 查询网口收发包统计
讯享网ethtool –S eno1 
  • 将ethtool 设置永久保存在网络设备的方法

ethtool 设置可通过 /etc/sysconfig/network-scripts/ifcfg-ethX 文件保存,从而在设备下次启动时激活选项。
例如:ethtool -s eno1 speed 100 duplex full autoneg off
此指令将eno1设备设置为全双工自适应,速度为100Mbs。若要eno1启动时设置这些参数, 修改文件/etc/sysconfig/network-scripts/ifcfg-eno1,添加如下一行:
ETHTOOL_OPTS=“speed 100 duplex full autoneg off”

问题1:

配置OK后出现网络控制器无法连接外网但可ping通局域网,数据接收端可正常连接外网且能ping通局域网的问题,删除网桥后,网络控制器即可访问外网
是否因为网桥的设置出现问题,尝试删除eno1和eno2网口的ip等信息,尝试将eno1和eno2的ip等设置为手动设置,尝试将linux的防火墙关闭,甚至是重装系统,各种尝试均无解的时候,检测网络控制器ping外网时的路由情况traceroute hostname,发现只是在本地连网关都没到达,网络控制器的gateway没有设置(奇怪的是,在linux右上角网络设置界面设置了gateway是无效的),使用命令

route -n 

可查看路由情况,此时可以使用命令添加默认gateway

讯享网route add default gw 172.18.152.1 

网络控制器即可成功的访问外网

删除gateway后实验一下是否此时是网络控制器无法访问外网,使用命令

route del default 

此时网络控制器无法访问外网,说明是没有默认网关引起的问题,但是好奇的是为何数据接收端的主机是可以进行外网访问,eno1是不需要走默认gateway?

小讯
上一篇 2025-03-17 12:44
下一篇 2025-02-10 22:02

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/18439.html