分类: LINUX
2010-04-17 12:37:48
涉及到的连接状态追踪
|
关于nat类型的判断,用ct->status的IPS_DST_NAT或者
= IP_CT_DIR_ORIGINAL
=
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会保存在哪里?
|