FreeBSDカーネルnatまたはnatd?

FreeBSDカーネルnatまたはnatd?

FreeBSDで作業するときによくわかるように、特定の目標を達成する方法は常にいくつかあります。

私が望むファイアウォールが何であるかを見つけた後(ipfwを選んだ)、NAT(Network Address Translation)にどのような方法を使うべきかは完全に不安になりました。

今見つけたようにNATを実行する方法には、カーネルスペースを使用するipfw natか、ユーザースペースを使用する2つの方法がありますnatd

FreeBSDのマニュアルに記載されている唯一の項目は次のとおりです。natd

私が知りたいのは、それらの主な違いは何ですか?どちらがより人気がありますか?

もちろん、私も釣りをしたいのですが、マニュアル/マニュアルでこのような違いをどのように見つけることができますか?

答え1

ipfw nat通常、カーネル空間で実行され、divert +よりもCPUを消費しにくいので、これは優れていますnatd。ただし、natdFTP接続ルールを動的に追加する必要がある場合はまだ便利です(-punch_fwでオプションを検索natd(8))。マニュアルページが真剣に古い。

答え2

まず、あなたは一人ではありません(この問題のメーリングリストスレッド)

これから私はこれがnatd明らかにFreeBSD 7.x以前の唯一のオプションであり、あなたが参照しているマニュアルページを修正する必要があるかもしれないことを理解しています(この投稿を見た)、カーネル内のNATが速くなる可能性があります。

それ以外の場合、両方のソリューションはまだ問題ないようです(最終的には両方とも標準のFreeBSDインストールに存在します)、一般的なカーネルスペース/ユーザースペースパラメータが適用されます...最も満足のいくものではありません。答えは申し訳ありません。

答え3

今夜まで私はカーネルnat(natの交換)があるかさえ知りませんでした。私のnatdはトラフィックがほとんどないにもかかわらず、多くのCPUサイクルを使用しています。これらの高いCPUを避けるために、natdを通過するパケットの種類を慎重に制御する必要があるようです。望ましくないトラフィックが natd に移行するのを最良に防止する ipfw ルールは、環境の性質によって異なります。

私に問題を引き起こさない単純なルールセットが見つかりません。私はLAN IPで刑務所を実行し、natdを介してトラフィックを生成するので、これだと思います。だから私はipfw + kernel natを学び始めました。

マニュアルでは、実際にこれを言及するだけです。始めるには1行で十分です。

関連情報