IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> linux下模拟发往多个特定ip或特定端口的数据包延迟 -> 正文阅读

[系统运维]linux下模拟发往多个特定ip或特定端口的数据包延迟

要模拟网络延迟,可以使用linux自带的tc工具。

tc可以限制特定网卡发出的数据包的流量/延迟等,但不能限制收到的数据包。如果想要限制收到的数据包,就只能先虚拟出一块网卡,将接收到的来自特定ip端口的数据重定向到这块虚拟网卡,再限制虚拟网卡发出的数据包的流量/延迟,从而限制本机接收的数据包。

参考以下文章在Linux上为指定IP端口模拟网络收发包延迟_Linux教程_Linux公社-Linux系统门户网站 (linuxidc.com)

本文仅讨论往多个特定ip或特定端口的数据包延迟。

tc分为三个模块:

qdisc队列:默认情况下,包是FIFO的

class分类:比如一类限速10MBps,一类限速20MBps

filte过滤器:用于将特定ip端口划分到特定类里

  • 首先确定网卡,可以用ifconfig命令来看(尽量不要将所有经由此网卡发出的数据包都一起延迟,会连不上网,特别是ssh登录的情况下)
  • 在网卡bond1上添加一条root qdisc,prio是队列的类型:
sudo tc qdisc add dev bond1 root handle 1: prio bands 5

  这条qdisc下设5个class,handle id为1:。在没有filter的情况下,tc从IP协议层收到的包会根据IP包头的TOS(Type of Service)字段进入第1~第3个class(与pfifo_fast规则相同),第4个和第5个class是没用的。

  • ?现在给第4个class添加一个5秒延迟的qdisc,这个qdisc的handle id为40:,类的id为1:4
sudo tc qdisc add dev bond1 parent 1:4 handle 40: netem delay 5s
  • 给root qdisc添加一个filter,将发给14100端口的包都送到第4个class:(这个fliter将划分给1:4这个类的数据包,prio是优先级的意思)
sudo tc filter add dev bond1 protocol ip parent 1:0 prio 4 u32 match ip dport 14100 0xffff flowid 1:4
  • 现在给第5个class添加一个5秒延迟的qdisc,这个qdisc的handle id为50:,类的id为1:5;并给该队列添加一个filter,将发给192.168.0.1的包都送到第5个class
sudo tc qdisc add dev bond1 parent 1:5 handle 50: netem delay 5s
sudo tc filter?add dev bond1 protocol ip parent 1:0 prio 4 u32 match ip dst 192.168.0.1 flowid 1:5

如果要删除,

sudo tc qdisc del dev bond1 root

这样qdisc下的所有东西都会一起删除

如果要看,

sudo tc -s filter show dev bond1

sudo tc -s qdisc show dev bond1

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-09-21 01:04:54  更:2022-09-21 01:07:59 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 9:45:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码