Chinaunix首页 | 论坛 | 博客
  • 博客访问: 451050
  • 博文数量: 64
  • 博客积分: 3271
  • 博客等级: 中校
  • 技术积分: 727
  • 用 户 组: 普通用户
  • 注册时间: 2009-07-30 18:42
文章分类

全部博文(64)

文章存档

2013年(1)

2011年(19)

2010年(42)

2009年(2)

分类: LINUX

2010-04-17 12:37:48

.总结

涉及到的连接状态追踪

IP_CT_NEW

            - - - - - >

          < - - - - -

                       IP_CT_ESTABLISHED + IP_CT_IS_REPLY
  

IP_CT_ESTABLISHED

                 - - - - - >

                < - - - - -

                       IP_CT_ESTABLISHED + IP_CT_IS_REPLY


 

关于nat类型的判断,用ct->statusIPS_DST_NAT或者

 

= IP_CT_DIR_ORIGINAL

=

 

<>.snat

DNAT会进行reply数据的un-DNAT,un-DNAT可以理解成SNAT。因为它是对reply数据包源地址的替换,它在POSTROUTING完成。

 

     POSTROUTING钩子中

  =

mtype= IP_NAT_MANIP_SRC

statusbit = IPS_SRC_NAT

    reply方向。  statusbit ^= IPS_NAT_MASK

                    statusbit=IPS_DST_NAT;

所以替换src

 

关于替换

对于PREROUTING它里面进行dst(相对数据包,即替换成真实服务器的)的替换。

Dst会保存在哪?

当然是ct->tuplehash[reply].tuple.src。由于是PREROUTING,所以dir=orig,所以得reply=!orig.

 

对于POSTROUTING,它里面进行src(相对数据包而言,即替换成伪服务器的 )的替换,。

Src会保存在哪里​​?

ct->tuplehash[orig].tuple.dst


文件:dnat.rar
大小:82KB
下载:下载

阅读(1400) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~