首页 > 其他分享 >Dummynet简单部署

Dummynet简单部署

时间:2023-05-25 15:14:38浏览次数:40  
标签:__ struct ipfw 部署 unsigned nf Dummynet 简单 mod

本文分享自天翼云开发者社区《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

   );

标签:__,struct,ipfw,部署,unsigned,nf,Dummynet,简单,mod
From: https://www.cnblogs.com/developer-tianyiyun/p/17431256.html

相关文章

  • 部署node项目外网访问失败
    原因是没有正确的开启防火墙端口。查看防火墙是否在运行firewall-cmd--state查看都有哪些端口添加到例外firewall-cmd--permanent--list-port正确命令是:firewall-cmd--zone=public--add-port=8888/tcp--permanent 永久开启防火墙8888端口,再执行 firewall-cmd--reload......
  • DDD简单入门
    DDD入门DDD的理解领域模型(domainmodel)是对领域内的概念类或现实世界中对象的可视化表示。领域模型也称为概念模型、领域对象模型和分析对象模型。在传统的架构设计中,经常针对⼀些功能点争论“这个功能不应该我改,应该是你那边改”,最终被妥协改了之后都改不明⽩为什么这个......
  • k8s部署sonarqube
    安装PGSqlapiVersion:apps/v1kind:Deploymentmetadata:name:postgres-sonarlabels:app:postgres-sonarspec:replicas:1selector:matchLabels:app:postgres-sonartemplate:metadata:labels:app:postgres-sonar......
  • k8s部署grafana
    创建grafana.yamlapiVersion:v1kind:PersistentVolumeClaimmetadata:name:grafana-pvcnamespace:pro-wxspec:accessModes:-ReadWriteOnceresources:requests:storage:10GistorageClassName:openebs-hostpath---apiVersion:apps/......
  • tomcat 部署多个程序
    可以采取多tomcat的形式 将已有tomcat复制为tomcat2修改tomcat\conf\Catalina\localhost下的xml文件将docBase指向项目路径path和docBase同名<?xmlversion="1.0"encoding="UTF-8"?><Contextpath="/NXZNDATA"reloadable="false"doc......
  • 安卓逆向——frida安装及简单接口开发
    1.Frida安装在github下载,github.com/frida/frida/releases然后addpush(解压后得到的文件,单文件,重命名为frida-server)frida-server/data/local/tmpaddshellcd/data/local/tmpchmod777frida-server开启服务./frida-server另外开启一个cmd窗口,进入虚拟环境frida-ps-U验证是......
  • 部署aws命令配置管理机以及部署eksctl管理eks
    AWS命令部署curl"https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip"-o"awscliv2.zip"unzipawscliv2.zipsudo./aws/installaws--versionawsconfigurecurl-Ohttps://s3.us-west-2.amazonaws.com/amazon-eks/1.26.2/2023-03-17/bin/linu......
  • Spring下RestTempLate与Feign简单使用
    RestTempLate官网:RestTemplate:TheoriginalSpringRESTclientwithasynchronous,templatemethodAPI.从上面的介绍中我们可以知道:RestTemplate是一个同步的RestAPI客户端。如果您需要从应用程序中调用远程REST服务,则可以使用SpringFramework的RestTemplate类。......
  • HTML是什么、html简单介绍
    目录1.概念:是最基础的网页开发语言2.快速学习:3.标签学习:1.文件标签:构成html最基本的标签2.文本标签:和文本有关的标签3.图片标签:4.列表标签:5.链接标签:6.div和span:无任何样式,方便CSS控制7.语义化标签:无任何样式,方便CSS控制8.表格标签:1.概念:是最基础的网页开发语言  ......
  • fastposter v2.15.0 从繁琐到简单,简洁好用的海报生成器
    fastposterv2.15.0从繁琐到简单,简洁好用的海报生成器从繁琐到简单,简洁好用的海报生成器我很高兴向大家推荐一款令人兴奋的工具——Fastposter海报生成器。作为一名开发者,我们深知在项目中创建专业级海报的重要性,但常常面临时间和设计技能的限制。现在,Fastposter海报生成器为我们......