标签:stateless static nat linux iptables conntrack
前面几天,我完成了一个static stateless 2-way NAT,写了几篇文章,但是着重于理论分析,本文来展示一个应用实例。在具体展示实例之前,先说一个static stateless 2-way NAT和Linux原生conntrack NAT的区别,static stateless 2-way NAT并不会限制连接的数量,因为它不用维护连接状态,也就没有了最大值的限制,其次,如果static stateless 2-way NAT的算法更好些,它的效率会更高。在哈尔滨长春旅游的那些天,我曾经想过,能不能用这种stateless的方式实现一个NAPT呢?后来觉得很难,因为在TCP/IP协议层面,一个特定的连接中的5元组是不能发生变化的(UDP协议视情况而定),这就要求NAPT在完成5元组唯一性映射的时候需要识别出一个连接,这就不再是stateless了,而是stateful了,一个例子就可以说明这种情况,假设连接A的数据包a的5元组被映射到了{sip-1,dip-1,tcp,sport-1,dport-1},此后这个连接断开了,问题是如果过去很久以后又有相同5元组的TCP连接来到怎么办呢?解决这个问题的办法就是为一个entry维护一个timer,这样...这样还不如直接用conntrack NAT呢....static stateless 2-way NAT on Linux with iptables的应用实例
标签:stateless static nat linux iptables conntrack
原文地址:http://blog.csdn.net/dog250/article/details/42360579