web-dev-qa-db-ja.com

FreeBSDカーネルnatまたはnatd?

FreeBSDでよく気付くように、特定の目標につながる方法は常にたくさんあります。

必要なファイアウォール(ipfwを選択)を見つけた後、ネットワークアドレス変換(NAT)を実行する方法について完全に安全ではなくなりました。

私が今発見したように、NATを行うには2つの方法があります。カーネル空間を使用できますipfw natまたはユーザースペースnatdを使用できます。

FreeBSDハンドブックに記載されているこれらのうちの1つは natd です。

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

もちろん釣りもしたいのですが、マニュアルやハンドブックでどうやって違いがわかるのでしょうか?

4
Peter Smit

_ipfw nat_は、カーネルスペースで実行され、divert + natdよりもCPUの消費量が少ないため、一般的に推奨されます。ただし、FTP接続のルールを動的に追加する必要がある場合はnatdが引き続き役立ちます(natd(8)で_-punch_fw_オプションを探してください)。ハンドブックのページはひどく時代遅れです。

2
gelraen

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

それから、FreeBSD 7.xまではnatdが明らかに唯一の選択肢であり、参照したハンドブックページはおそらく改訂( この投稿を参照 )とカーネル内が必要であることがわかりました。 NATの方がおそらく速いでしょう。

それを除けば、両方の解決策はまだ問題ないようで(結局、両方とも標準のFreeBSDインストールに存在します)、通常のカーネルスペース/ユーザースペースの引数が適用されます...最も満足のいく答えではありません、申し訳ありません。

2
sr_

今夜までカーネルnat(natd置換)があることすら知りませんでした。私のnatdは、トラフィックがほとんどない場合でも、愚かな量のCPUサイクルを使用しています。この高いCPUを回避するには、どのタイプのパケットがnatdを通過するかを慎重に制御する必要があるようです。また、不要なトラフィックがnatdに転送されないようにするために、どのipfwルールが最適であるかは環境の性質によって異なります。

問題を起こさない簡単なルールセットが見つかりません。 LAN IPで刑務所を運営していて、それがnatdを介してトラフィックを生成しているためだと思います。だから、私は今ipfw + kernelnatを学ぶためにオフになっています。

ハンドブックは本当にこれに言及する必要があります、ワンライナーでさえ最初から十分でしょう。

1
Euan Thoms