- 论坛徽章:
- 0
|
这边人多,来这边问问。。。
最近需求要设置一个软路由器,做一个网关访问公网,自然而然就想到了iptables这个东西。
设置了下面俩命令
iptables -A FORWARD -i 内网网卡 -o 外网网卡 -j ACCEPT
iptables -t nat -A POSTROUTING -s 内网网段/掩码 -o 外网网卡 -j MASQUERADE
我很奇怪的是,这个表代表着,内网的数据能够出去,但是应答数据怎么准确的找到了内网的机器?把数据包转回来了?
我查到了conntrack 这个东西,是不是应答数据回来的时候,iptables回去查这个conntrack表?然后根据里面的记录进行转发?转发给内网机器?
如果是这样的话,有一个问题 conntrack 这个表是有上限的,会出现 tables full 的问题,回避他的一个动作就是关闭它,或者加大他这个表。
另外,这个conntarck表在64位机器上占用内存一个记录400Byte,可以这么计算吗?如果这么计算的话。65535条记录差不多就是
我想问的是,Forward应答数据的时候,conntrack这个表是不是必须的?没有这个就没法forward回来了吧。
如果这个表是必须的,那只能加大它?这是唯一的道路?
谢谢各位大侠了。。。
forward
|
|