Protobuf

NF_HOOK点自ipv4中的插入

net/ipv4/af_inet.c文件中对ipv4的协议进行了初始化, fs_initcall(inet_init);

在inet_init中进行了ipv4相关的协议进行了初始化:tcp,udp,icmp等处理方法的注册,arp,ip,tcp,udp等协议处理流程的建立,proc文件系统中相关文件的建立等处理,这个在之前就分析过了,现在主要分析的呢是,在ip协议处理流程中NF_HOOK是如何插入的,对这个流程的分析可以比较清楚的看到linux对ipv4的一个处理流程,对特殊ip的处理,对路由包的处理等等。

继续阅读

netfilter在IPV4中的5个HOOK

之前就知道在内核中netfilter的工作原理是:在协议流程中加入hook函数,从而达到对协议流中的数据进行抓取,今天对IPV4中的这几个点在内核中找了下,终于定位了。先在这里分析一下,还需要分析,数据包在内核中是如何路由的!!!哈呵呵

继续阅读

Linux虚拟网卡

昨天研究了下利用虚拟网卡实现两个机器利用一个物理网卡连接外网的内核源码和设置,其实利用虚拟网卡上网的例子在上学 的时候就做过类似的实验,一般可以在一个机器A的一个网卡上配置一个外网ip一个内网ip,另一个内部机器B只配置内网ip,让后B的网关设置为A的内网ip,在A机器上启用netfilter的NAT功能,再启用A机器的路由转发功能,就可以实现B由A上外网的功能了!就如下面这个图。

继续阅读

ipv4内核初始化分析-sock的创建

sock创建的主要数据结构是下面这个结构体:

继续阅读