免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 15336 | 回复: 7

[网络管理] iptables中mangle和filter中的forward有什么区别? [复制链接]

论坛徽章:
0
发表于 2007-08-17 18:35 |显示全部楼层
这几天研究iptables,可是不太明白mangle表是做什么用的,在什么情况下才会用到这个表呢?还有filter表中的FORWARD。如果用iptables做策略上网,如果要做限制应该在哪个表里面做呢?版主的那个贴子看了不太明白,请大家通俗的讲讲,谢谢!

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
发表于 2007-08-17 18:39 |显示全部楼层
mangle表,一般是对数据包进行修改用的。
通常可以在filter的forward链做,当然你一定要在mangle里做也不是不可以,但是他们过滤的位置不一样的。
具体的参见IPTABLES指南。

论坛徽章:
0
发表于 2007-08-17 20:06 |显示全部楼层
[root@yxlas43 ~]# iptables  -vnL  FORWARD
Chain FORWARD (policy DROP 1 packets, 57 bytes)
pkts bytes target     prot opt in     out     source               destination
25545 3145K ACCEPT     0    --  *      *       172.16.15.253        0.0.0.0/0
    1   536 DROP       tcp  --  *      *       172.16.0.0/16        0.0.0.0/0           ctstate INVALID
  588 31152 DROP       tcp  --  *      *       172.16.0.0/16        0.0.0.0/0           #conn/32 > 100
    0     0 DROP       udp  --  *      *       172.16.1.33          0.0.0.0/0           udp spts:10240:65535
    0     0 DROP       tcp  --  *      *       172.16.1.33          0.0.0.0/0           tcp spts:10240:65535
48633 3113K DROP       tcp  --  *      *       172.16.1.33          0.0.0.0/0           tcp dpts:10240:65535
44245 3998K DROP       udp  --  *      *       172.16.1.33          0.0.0.0/0           udp dpts:10240:65535
    0     0 DROP       0    --  *      *       0.0.0.0/0            219.129.216.193
    0     0 DROP       0    --  *      *       0.0.0.0/0            125.91.6.111
    0     0 DROP       0    --  *      *       0.0.0.0/0            125.91.6.36
   39  2304 DROP       0    --  *      *       0.0.0.0/0            60.190.31.10
38238 5620K DROP       0    --  *      *       0.0.0.0/0            0.0.0.0/0           ipp2p v0.8.1_rc1 --kazaa --gnu --edk --dc --bit --apple --soul --winmx --ares
  35M   22G eth0_fwd   0    --  eth0   *       0.0.0.0/0            0.0.0.0/0
  28M   20G eth1_fwd   0    --  eth1   *       0.0.0.0/0            0.0.0.0/0
  871 42100 Reject     0    --  *      *       0.0.0.0/0            0.0.0.0/0
  871 42100 reject     0    --  *      *       0.0.0.0/0            0.0.0.0/0
[root@yxlas43 ~]# iptables -t mangle -vnL PREROUTING
Chain PREROUTING (policy ACCEPT 63M packets, 42G bytes)
pkts bytes target     prot opt in     out     source               destination
1717 96543 ACCEPT     udp  --  *      *       172.16.15.253        0.0.0.0/0
37595 4696K ACCEPT     0    --  *      *       172.16.15.253        0.0.0.0/0
329K  301M DROP       0    --  *      *       0.0.0.0/0            0.0.0.0/0           ctstate INVALID
599K   40M DROP       tcp  --  *      *       0.0.0.0/0            0.0.0.0/0           #conn/32 > 100
607K   41M DROP       udp  --  *      *       0.0.0.0/0            0.0.0.0/0           udp spts:10240:65535
  63M   42G tcpre      0    --  *      *       0.0.0.0/0            0.0.0.0/0
应该是同样的策略,但在不同的表中得到的结果却不同?

论坛徽章:
0
发表于 2007-08-17 20:25 |显示全部楼层
由这张图可不可以这样认为mangle表中的PREROUTING要先于nat 表中的PREROUTING 和 filter表中的FORWARD的呢?
bridge3b.png

论坛徽章:
5
IT运维版块每日发帖之星
日期:2015-08-06 06:20:00IT运维版块每日发帖之星
日期:2015-08-10 06:20:00IT运维版块每日发帖之星
日期:2015-08-23 06:20:00IT运维版块每日发帖之星
日期:2015-08-24 06:20:00IT运维版块每日发帖之星
日期:2015-11-12 06:20:00
发表于 2007-08-17 22:02 |显示全部楼层
应该是的。

论坛徽章:
0
发表于 2007-08-17 22:26 |显示全部楼层
谢谢ssffzz1

论坛徽章:
0
发表于 2007-08-17 23:54 |显示全部楼层
原帖由 5639863 于 2007-8-17 20:25 发表
由这张图可不可以这样认为mangle表中的PREROUTING要先于nat 表中的PREROUTING 和 filter表中的FORWARD的呢?

PREROUTING 和 FORWARD 没有可比性,PREROUTING 一定先于 FORWARD
你应该问:mangle 的 PREROUTING 是否优先于 nat 的 PREROUTING?
或者:mangle 的 FORWARD 是否优先于 filter 的 FORWARD?
答案是:是的

从 netfilter 的内核代码看,各个处理流程的优先级如下

  1. enum nf_ip_hook_priorities {
  2.         NF_IP_PRI_FIRST = INT_MIN,
  3.         NF_IP_PRI_CONNTRACK = -200,
  4.         NF_IP_PRI_BRIDGE_SABOTAGE_FORWARD = -175,
  5.         NF_IP_PRI_MANGLE = -150,
  6.         NF_IP_PRI_NAT_DST = -100,
  7.         NF_IP_PRI_BRIDGE_SABOTAGE_LOCAL_OUT = -50,
  8.         NF_IP_PRI_FILTER = 0,
  9.         NF_IP_PRI_NAT_SRC = 100,
  10.         NF_IP_PRI_LAST = INT_MAX,
  11. };
复制代码

可见,nat 在 mangle 之后,而 nat 中又有 NAT_DST(PREROUTING)和 NAT_SRC(POSTROUTING)
其他部分优先级见上面的枚举结构

[ 本帖最后由 platinum 于 2007-8-18 08:18 编辑 ]

论坛徽章:
0
发表于 2007-08-20 11:39 |显示全部楼层
谢谢,看来我对IPTABLES还是很不了解啊。谢谢指正!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP