IPtables 处理流程

nat表

举个例子:

A有一台主机

a0:192.168.1.1/24

一个公网IP:10.10.10.10(假设)

B有一台主机:

b0:192.168.2.1/24

一个公网IP:11.11.11.11(假设)

现在需求是A和B之间主机需要能够互相访问。

a0主机访问b0主机,这就需要a0和b0 配置nat转换。

首先a0发送的报文通过nat的规则,将源目IP需要转换成公网IP,因为是在出方向上,流量只会经过output,postrouting链,所以nat可以在output和postrouting链上做。

b0接收a0发送的报文,他需要将数据包中的公网IP转换成对应的内网IP,因为是入方向上,所以可以在prerouting, input链上做。不能在output和forwarid链上做。

这就定下了nat规则应该在哪些链上

raw表

img

再看一下raw表,根据上图。因为raw表是为了做连接追踪的,一但用户使用了RAW表,在某个链 上,RAW表处理完后,将跳过NAT表和 ip_conntrack处理,即不再做地址转换和数据包的链接跟踪处理了。所以raw表中的规则一定要在nat表规则之前做处理,所以应该在prerouting和output。流入时,raw在prerouting可以保证在nat的prerouting和input之前处理。在流出时,raw在output可以保证在postrouting和output之前处理。

mangle

用于对特定数据包的修改,所以无论何时修改都可以,所以任何链都可以进行处理。

filter表

过滤规则,需要根据流量是进入本机,转发和出去的方向进行过滤。我想filter只在input,output和forward上做,是为了尽量减少在其他链上集成太多功能,尽量将功能拆分。

参考:
http://s2.naes.tn.edu.tw/~kv/iptables.htm
http://blog.51cto.com/wushank/1171768

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值