Netfilter中5个HOOK 的理解
来源:互联网 发布:r语言与网站分析 源码 编辑:程序博客网 时间:2024/06/09 20:24
DNAT(Destination Network Address Translation,目的地址转换) 通常被叫做目的映谢。而SNAT(Source Network Address Translation,源地址转换)通常被叫做源映谢。
这是我们在设置Linux网关或者防火墙时经常要用来的两种方式。以前对这两个都解释得不太清楚,现在我在这里解释一下。
首先,我们要了解一下IP包的结构,如下图所示:
在任何一个IP数据包中,都会有Source IP Address与Destination IP Address这两个字段,数据包所经过的路由器也是根据这两个字段是判定数据包是由什么地方发过来的,它要将数据包发到什么地方去。而iptables的DNAT与SNAT就是根据这个原理,对Source IP Address与Destination IP Address进行修改。
然后,我们再看看数据包在iptables中要经过的链(chain):
图中正菱形的区域是对数据包进行判定转发的地方。在这里,系统会根据IP数据包中的destination ip address中的IP地址对数据包进行分发。如果destination ip adress是本机地址,数据将会被转交给INPUT链。如果不是本机地址,则交给FORWARD链检测。
这也就是说,我们要做的DNAT要在进入这个菱形转发区域之前,也就是在PREROUTING链中做,比如我们要把访问202.103.96.112的访问转发到192.168.0.112上:
这个转换过程当中,其实就是将已经达到这台Linux网关(防火墙)上的数据包上的destination ip address从202.103.96.112修改为192.168.0.112然后交给系统路由进行转发。
而SNAT自然是要在数据包流出这台机器之前的最后一个链也就是POSTROUTING链来进行操作
这个语句就是告诉系统把即将要流出本机的数据的source ip address修改成为58.20.51.66。这样,数据包在达到目的机器以后,目的机器会将包返回到58.20.51.66也就是本机。如果不做这个操作,那么你的数据包在传递的过程中,reply的包肯定会丢失。
- Netfilter中5个HOOK 的理解
- netfilter hook
- netfilter hook
- 2.6内核中netfilter hook点一览
- 2.6内核中netfilter hook点一览
- netfilter中hook函数返回值详解
- linux netfilter IP层的HOOK点
- 关于netfilter钩子 hook值的问题
- 文章标题 netfilter的hook函数
- netfilter各个HOOK的关系简介(笔记中已经总结到函数调用流程中)
- netfilter五个hook点
- netfilter hook 点详解
- linux netfilter hook point
- 一个完整的netfilter的hook的例子
- netfilter/hook关于ICMP协议过滤的样例
- HOOK的理解
- HOOK的理解
- Linux netfilter 学习笔记 之二 ip 层netfilter的hook 注册以及执行hook函数的概要分析
- The history of the Cisco CLI
- 今天开通博客
- Eclipse快捷键 --重要但不常用的
- 韶慧,祝好!
- poj 2255这道题用递归有学问!
- Netfilter中5个HOOK 的理解
- C/C++位操作简介
- 穷举法
- 起步
- 校内网--自动分享视频-flash xss蠕虫分析
- 整数类型的储存
- struts-default.xml
- Dreamweaver表格宽度辅助线怎么除掉
- 【公告】不忍心的公布一件事情!(Eset 升级帐号获取器停止更新)