Linux内核提供Netfilter作为NAT和防火墙function的机制。 这两种function都需要对传入数据包进行分析和分类,这被称为“状态数据包检测”。
对于大多数stream量来说,查看IP数据包头是足够的。 但是,像FTP,IRC,H.323(以及更多)的协议在内核configuration中都有特定的模块,以便为这些数据包提供正确的NAT穿越。 在内核中,这些被称为“conntrack模块”。
现在,我的理解是检查这些数据包的有效负载,以便netfilter能够识别外部连接何时到达并需要路由到相应的客户端。 这是因为协议期望在OSI层7上发送的信息直接影响在第3层上发送的实际IP分组。换句话说,应用程序代码导致创build另一个TCP连接,该连接必须由NAT设备。
现在我的问题: