使用iptables进行NAT和数据包处理
1. 连接跟踪助手模块
在网络环境中,对于一些特定协议,如FTP、IRC、TFTP、Amanda备份协议以及SCTP协议等,有相应的连接跟踪助手模块来提供支持,这些模块分别是IP_NF_FTP、IP_NF_IRC、IP_NF_TFTP、IP_NF_AMANDA和IP_NF_CT_PROTO_SCTP。若要允许NAT后的端点使用这些协议,就需要编译并在防火墙启动时加载对应的模块。
2. netfilter nat表
netfilter的nat表包含三个链:PREROUTING、POSTROUTING和OUTPUT。每个链可以包含一系列规则,内核会按顺序检查这些规则,直到找到与数据包匹配的规则,这和netfilter表中的链规则检查方式一致。我们可以使用以下命令查看这些链:
router:~# iptables -t nat -L Chain PREROUTING (policy ACCEPT) target prot opt source destination Chain POSTROUTING (policy ACCEPT) target prot opt source destination Chain OUTPUT (policy ACCEPT) target prot opt source destination如果内核模块构建正确,在使用iptables –t nat命令时,Linux系统会自动加载ipta