Dummynet简单部署
本文分享自天翼云开发者社区《Dummynet简单部署》,作者:凸凹
部署流程
^准备内核版本
^参看系统内核版本
uname -r
我们需要将ipfw编译成内核模块,请确保ipfw用到的内核源码版本同你linux系统运行内核版本一致。
^编译dummynet
https://github.com/FS1360472174/dummynet.git 下载包
^上传解压

^进入操作目录
cd dummynet-master

^编译
make KERNELPATH=/usr/src/kernels/3.10.0-957.el7.x86_64/

^加载ipfw 模块
cd kipfw-mod
insmod ipfw_mod.ko

cd ../ipfw
cp ipfw /sbin
chmod 700 /sbin/ipfw

^验证ipfw
ipfw add pipe 2 in proto tcp
可选择地,将ipfw 设置为boot启动
cp /root/dummynet-master/kipfw-mod/ipfw_mod.ko /lib/modules/3.10.0-957.el7.x86_64/kernel/net/netfilter
depmod
sh -c 'echo modprobe ipfw_mod >> /etc/rc.modules'
chmod +x /etc/rc.modules
^附录
问题分析
1.insmod: ERROR: could not insert module ipfw_mod.ko: Invalid module format
解决:
modinfo ipfw_mod.ko 看下vermagic版本是不是uname -r的版本。
然后重新编译ipfw 模块
make KERNELPATH=/usr/src/kernels/3.10.0-957.el7.x86_64
2.ipfw: getsockopt(IP_FW_ADD): Protocol not available
解决:
ipfw 模块未加载到内核
可以lsmod |grep ipfw看下
需要重述上述步骤,将ipfw编译进内核模块
3.编译模块时报错
类似于ipfw2_mod.c line 848 nf_hook_ops.hk struct have errors.
解决:
Hook structure 在各个版本的linux中定义不一样,所以如果是从dummynet 站点中下载的
老的dummynet 包可能就有错误。
查看下当前所用系统的hook 结构
/usr/src/kernels/linux-3.10.0-957.el7/include/linux/netfilter.h
定义了nf_hook_ops,nf_hookfn的结构
struct nf_hook_ops {
struct list_head list;
/* User fills in from here down. */
nf_hookfn *hook;
struct module *owner;
void *priv;
u_int8_t pf;
unsigned int hooknum;
/* Hooks are ordered in ascending priority. */
int priority;
/* Reserved for use in the future RHEL versions. Set to zero. */
unsigned long __rht_reserved1;
unsigned long __rht_reserved2;
unsigned long __rht_reserved3;
unsigned long __rht_reserved4;
unsigned long __rht_reserved5;
};
typedef unsigned int nf_hookfn(const struct nf_hook_ops *ops,
struct sk_buff *skb,
const struct net_device *in,
const struct net_device *out,
#ifndef __GENKSYMS__
const struct nf_hook_state *state
#else
int (*okfn)(struct sk_buff *)
#endif
);
Dummynet简单部署的更多相关文章
- XenApp简单部署
作者:MR.Yangwj 目录 XenApp简单部署... 1 一. XenApp安装... 1 (一) 服务器配置任务... 9 1) 许可证服务器配置... 9 ...
- mongodb 简单部署方案及实例
mongodb 简单部署方案及实例 转载:http://my.oschina.net/zhuzhu0129/blog/53290 第一节 准备工作 一 安装mongodb 我这里选用rehl 5.6 ...
- Glue4Net简单部署基于win服务的Socket程序
smark 专注于高并发网络和大型网站架规划设计,提供.NET平台下高吞吐的网络通讯应用技术咨询和支持 Glue4Net简单部署基于win服务的Socket程序 在写一些服务应用的时候经常把要它部署到 ...
- SQL Server中的变更捕获技术--简单部署
------准备------ CREATE DATABASE db_test_cdc ,) ,name )); INSERT INTO t1(name)VALUES('test') ------开始- ...
- Tomcat_记一次tomcatwar包应用简单部署过程
记一次tomcat war包应用简单部署过程 by:授客 QQ:1033553122 1. 实践环境 Linux apache-tomcat-7.0.73 2. 实践步骤 # 解压tomcat压缩 ...
- Ceph分布式存储-原理介绍及简单部署
1)Ceph简单概述Ceph是一个分布式存储系统,诞生于2004年,最早致力于开发下一代高性能分布式文件系统的项目.Ceph源码下载:http://ceph.com/download/.随着云计算的发 ...
- WebStorm 简单部署服务器进行测试操作
WebStorm 简单部署服务器对外发布接口 第一步: 查看webstorm防火墙是否允许链接,控制面板-->防火墙-->高级设置 入站规则-->webstrom是否允许链接 ,双击 ...
- nginx之旅:安装及简单部署
安装之前最好了解一下nginx,参考nginx百度百科吧,下面这一句话基本概括了nginx的基本功能 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 ...
- jenkins安装和简单部署
jenkins安装和简单部署 jenkins历史 jenkins是一款非常好用的团队CI(Continuous Integration)工具.它可以使你的构建,集成,发布,开发流程自动化.减轻各个环节 ...
- Hexo博客搭建和简单部署
title: Hexo博客搭建和简单部署 date: 2020-03-02 12:00:00 categories: - [IT,博客] - [IT,软件,程序] - [IT,软件,搭建与配置] ta ...
随机推荐
- 高性能计算-gemm-mpi并行计算优化(8)
1. 目标: 矩阵A(MK) 矩阵B(KN)相乘,计算结果 C(M*N);本测试将使用不同的数据分块方式.MPI通信接口.数据循环模型,测试通信及计算效率,计算耗时为程序用户态和核心态的占用cpu时间 ...
- 鸿蒙NEXT开发案例:亲戚关系计算器
[引言] 在快节奏的现代生活中,人们往往因为忙碌而忽略了与亲戚间的互动,特别是在春节期间,面对众多的长辈和晚辈时,很多人会感到困惑,不知道该如何正确地称呼每一位亲戚.针对这一问题,我们开发了一款基于鸿 ...
- Xdebug+Phpstorm本地调试
很久不用php进行开发, debug插件的安装与配置都忘完了, 看了下自己之前记录的一篇文章, 有点太乱了, 这里简约介绍下,方便后面快捷使用 XDebug下载地址: https://xdebug.o ...
- SFE人才需要具备哪些能力
SFE(销售队伍效力)人才在企业中扮演着至关重要的角色,他们需要具备一系列的能力来确保销售队伍的高效运作和业绩提升.关于SFE的角色和能力,可以从业务理解.数据洞察.向上管理以及效率提升等几个方面来通 ...
- 源启行业AI平台 银行智能业务的驱动引擎
AI技术已经深入金融行业,在营销.渠道.风控等领域广泛应用,但人工智能开发与应用面临成本高.难度大.门槛高.重复建设.无统一管理复用AI模型资产等问题,这些问题也正是源启AI行业平台要解决的. 源启行 ...
- 两个 F# 的 MVVM
fsprojects/Avalonia.FuncUI: Develop cross-plattform GUI Applications using F# and Avalonia! fabulous ...
- Debian 11 (bullseye) 国内软件源
本文整理了Debian 11在国内的几个软件源. 1.使用说明 一般情况下,将/etc/apt/sources.list文件中Debian默认的软件仓库地址和安全更新仓库地址修改为国内的镜像地址即 ...
- FISCO BCOS 控制台 部署合约 调用 查看已部署合约的地址
deploy 部署合约.(默认提供HelloWorld合约和TableTest.sol进行示例使用) 参数: 合约路径:合约文件的路径,支持相对路径.绝对路径和默认路径三种方式.用户输入为文件名时,从 ...
- spring boot 配置多个DispatcherServlet
传统的web项目,只需要在web.xml里配置多个即可,并且支持多个url-pattern 在spring boot中,我们默认无需配置,系统会自动装配一个,感兴趣的可以看下源码 org.spring ...
- 在 .NET Core 中使用 ActionBlock 实现高效率的多步骤数据处理
目录 一.引言 二.ActionBlock介绍 什么是 ActionBlock? ActionBlock 的特点 ActionBlock 的使用场景 ActionBlock 的基本用法 三.假设场景 ...