Dummynet简单部署

本文分享自天翼云开发者社区《Dummynet简单部署》,作者:凸凹

部署流程 ^准备内核版本  ^参看系统内核版本 uname -r  我们需要将ipfw编译成内核模块,请确保ipfw用到的内核源码版本同你linux系统运行内核版本一致。 ^编译dummynet https://github.com/FS1360472174/dummynet.git 下载包 ^上传解压  image ^进入操作目录 cd dummynet-master  image ^编译 make KERNELPATH=/usr/src/kernels/3.10.0-957.el7.x86_64/

image  ^加载ipfw 模块 cd kipfw-mod insmod ipfw_mod.ko image cd ../ipfw cp ipfw /sbin chmod 700 /sbin/ipfw image ^验证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    );

点赞
收藏

评论区

加载中...

相关推荐

常用内核架构

本文分享自天翼云开发者社区《》,作者:JackW宏内核应用程序调用内存分配的API(应用程序接口)函数。处理器切换到特权模式,开始运行内核代码。内核里的内存管理代码按照特定的算法,分配一块内存。把分配的内存块的首地址,返回给内存分配的API函数。内存分配的

Linux CentOS使用yum安装Docker

Docker支持以下的CentOS版本:目前,CentOS仅发行版本中的内核支持Docker.Docker运行在CentOS7上,要求系统为64位、系统内核版本为3.10以上.Docker运行在CentOS6.5或更高的版本的CentOS上,要求系统为64位、系统内核版本为2.6.32431或者更高版本.Docker要求CentOS系统的内核

02_Docker在CentOS 6和CentOS 7下的安装

CentOS7环境下安装docker安装Docker1.检查系统内核是否高于Linux3.10版本unamer1.使用root权限操作,确保yum包是最新版本sudoyumupdate1.卸载老版本docker(可选

CentOS Linux 升级内核步骤和方法

CentOSLinux升级内核步骤和方法1、查看当前系统内核\unamer2.6.3271.e16.i6862、下载linux3.2.14内核包\tarxvflinux3.2.14.tar.bz2\cdlinux3.2.143、配置内核并安装makemr

Liunx版本号码编排惯例

1、内核版本号不代表操作系统整体版本;Linux的内核,以及每一个应用程序、元件、库或者是发行版中的软件包都有自身的版本号。例如你使用的gcc版本号码是2.7.2.3,内核可能是2.2。在安装某个发行版时,所有这些过程得到了简化,因为发行版中包括的每一个软件包都是最新的,例如:RedHat、easyLinux。2、稳定版和开发版任何时候内核都以两

20179311《网络攻防实践》第七周作业

1.Windows操作系统的基本结构分为运行于处理器特权模式的操作系统内核,以及运行在处理器非特权模式的用户空间代码。采用宏内核模式来进行构架,这使得任意的内核模块或设备驱动程序都可能破坏其他内核模块数据,这种宏内核机制也使得Windows操作系统容易遭受以驱动方式植入内核的Rootkit的危害,为了避免这类攻击,最