FreeBSD 内核 nat 还是 natd?

FreeBSD 内核 nat 还是 natd?

正如我在使用 FreeBSD 时经常注意到的那样,总是有很多方法可以实现某些特定目标。

在弄清楚我想要哪个防火墙(我选择 ipfw)之后,我现在对使用哪种方式进行网络地址转换 (NAT) 完全不安全。

正如我现在发现的,有两种方法可以进行 NAT,我可以使用内核空间ipfw nat,也可以使用用户空间natd

FreeBSD 手册中描述的唯一一项是natd

我想知道的是它们之间的主要区别是什么?哪一个更受欢迎。

当然我也希望能够钓鱼,那么我如何才能找出手册/手册中的这些差异呢?

答案1

ipfw nat通常更可取,因为它在内核空间中运行,并且比 divert+ 消耗更少的 CPU natd。但natd如果您需要动态添加 FTP 连接规则,仍然很有用(-punch_fw在 中查找选项natd(8))。手册页面严重过时。

答案2

首先,你并不孤单(有关该问题的邮件列表线程)

由此,我了解到这natd显然是 FreeBSD 7.x 之前的唯一选择,并且您引用的手册页面可能需要修订(看到这个帖子),并且内核内 NAT 可能更快。

除此之外,这两种解决方案看起来仍然很好(毕竟,两者都存在于标准 FreeBSD 安装中)并且通常的内核空间/用户空间参数适用......这不是最令人满意的答案,抱歉。

答案3

直到今晚我什至不知道有一个内核 nat(nat 替代品)。我的 natd 使用了大量的 cpu 周期,即使几乎没有任何流量。看来你需要仔细控制什么类型的数据包通过natd以避免这种高cpu。哪种 ipfw 规则最能避免不需要的流量被转移到 natd,这取决于您环境的性质。

我找不到一个不会给我带来问题的简单规则集。我怀疑这是因为我有在 LAN IP 上运行的监狱,并且通过 natd 生成流量。所以,我现在开始学习 ipfw + 内核 nat。

手册实际上只需要提及这一点,即使是一句台词就足以开始。

相关内容