複数のNATレイヤーを使用するのはなぜ悪い考えですか?


19

組織のコンピューターネットワークには、192.168 / 16のIPアドレス範囲を持つNATがあります。IPアドレスが192.168.xyのサーバーを持つ部門があり、このサーバーはIPアドレス範囲172.16 / 16の別のNATを使用してこの部門のホストを処理します。

したがって、NATには2つの層があります。代わりにサブネット化しないのはなぜですか。これにより、ルーティングが容易になります。

NATの複数の層がパフォーマンスの低下を引き起こす可能性があると感じています。2つの設計戦略を比較してください。

更新:

@Jonさらなる情報

友人との議論の中で、サブネット化は次の問題を引き起こすことがわかった。コンピューターのARP要求は、組織のネットワーク全体をあふれさせます。ルーターがこれらの要求を転送しない場合、ある部門のPCは他の部門のPCに接続できません。別のNATの背後にある場合は、とにかく実行できません。パケットスニファーを使用すると、部門内のほとんどのコンピューターでWindowsでのファイル共有が有効になっているため、ARP要求が多数あることがわかりました。

この問題を解決するには?

また、2台のコンピューターが異なるNATの背後にある場合、それらが相互に接続する方法はありません。


質問を「複数のNATレイヤーを使用するのはなぜ悪い考えですか?」に変更してください。

2
別の宿題...
ジョン・ローデス

1
いや それは実際的な問題です。私はいつも宿題に言及します。
Rohitバンガ

3
@Jon(および彼の支持者)、ここで宿題の質問をすることに問題はありません。meta.stackoverflow.comで何十回も議論されているトピックです-個人的には、HWを指す質問には何も表示されません。
マークヘンダーソン

@Farseeker-質問全体は抽象的です。彼は何も変える立場にないようで、明確な目標なしに「2つの設計戦略を比較する」ことを望んでいます。実世界の問題ではなく宿題のようなにおいがするだけです。もちろん、私が間違っていて、誰かがこのクレイジーなセットアップを持っていることを受け入れるのはうれしいです-その場合、なぜ彼らには正当な理由が必要なのか尋ねてください。
ジョンロードス

回答:


6

多層NATを行う際の唯一の実際の問題は、ネットワークトポロジが混乱することです。NATの複数の層を使用する場合、組織内のすべてのホスト間の対称ルーティングを破棄し、ネットワーク内でプライベートアドレススペースが重複する可能性もあります。n NAT層で使用されていたn + 1 NAT層でアドレス範囲を使用した場合を想像してください。これらのネットワークは相互にルーティングできませんが、n + 1層のホストはn層と同じアドレスを持つ可能性があり、サーバーのIDを混乱させます。

大規模なネットワークのトポロジをレイアウトする場合、サブネットのホストには10​​. *または172.16-24。*のアドレスのみを使用します。次に、一部の部門または個人がNATを2倍にしたい場合、NATホストの背後のネットワークに対して責任があることを理解して(192.168。*ネットワークを使用して)できます。また、これらの二重NATを使用したネットワークのいずれかが大きくなりすぎるよりも、より多くのサブネットを作成する傾向があります。


9

マルチレベルNATの問題は、基本的に単層NATの場合と同じですが、さらに複雑です。といった:

  1. パケットの有効期間中に余分な作業が行われるため、遅延が発生します(ただし、ほとんどの場合、これが重大になることはほとんどありません)

  2. 何がどこから来たのかを知る。特定のリクエストの発信元を追跡しようとしている場合(おそらく、発信ファイアウォールは、スパムを吐き出したり、他の感染ターゲットを検索しようとしている侵害されたマシンのように見えるものをログに記録しています)、NATはそのような診断をはるかに困難にします。

  3. 着信接続ポート転送は、着信接続が必要な場合、セットアップと保守がより簡単です。

  4. 限られた数のポート。NATは、送信元アドレスをさまざまなポートでそれ自体に変換することにより機能します。たとえば、

    • マシン1は、ソー​​スがポート10000などのNATボックスのアドレスに変換されると、ポート1024を使用して外部Webサーバーと通信します。
    • 同じマシンが、ソースポート1025を使用して、2つまたは別のWebサーバーに同時に(異常ではない)要求を行います(2つの同時接続には異なるソースポートが必要です)。NATボックスはこれを「送信元ポート10001の私」に変換します
    • 別のマシンは、外部サーバーへの3つの接続を確立します。罰金、NATボックスはこれらを「ポート10002、10003、10004の私」に変換します
    • パケットが外部マシンから返ってくると、NATボックスは、ポート10000で自分宛てのものがポート1024でマシン1に送られることを知っており、他のアクティブな接続についても同様です。

    これは、多くの発信接続ができるまで大丈夫です。つまり、大規模ネットワークまたは多数の接続を行うマシンのある小規模ネットワーク(bittorrentプロトコルを実装するようなP2Pアプリケーションは、多数の同時接続を作成できます)。IPプロトコルには、予約されている1024未満の65536ポートしかありません。60,000はすぐに消費されるように思えるかもしれませんが、NATボックスは、古いマッピングを削除できるかどうかを判断する必要があります。これにより、奇妙なバグ(診断が困難な理由でランダムな接続が切断される)や、マシンがしばらくの間新しい接続を確立できないことがあります。

  5. NATボックスにロードします。少し低電力のボックス(たとえば、チャンキーCPUを備えたフルPCではなく、ルーターをサポートする既製のNAT)を使用して、NATを追加の変換作業に使用している場合(基本的なルーティングテーブルに従って単純にパケットを転送する場合と比較して) )それらを介した転送が遅くなる可能性があります。インターネットアクセスの場合、これは問題になる可能性は低くなります(「ネット接続がボトルネックになる」)が、ローカルネットワークセグメント間でNATを使用しているため、かなり目立つ可能性があります。


ポイント4この問題は、NATの層の数に関係なく同じである必要があります!
Rohitバンガ

確かに、ポイント4はシングルレベルNATとマルチレベルNATの両方で同じ問題ですが、マルチレベルNATはどの接続が無効であるかを判断する問題を悪化させ(外部ホストは内部接続ほど多くのコンテキストを知らないかもしれません)、診断を行いますポートマッピングの制限が問題になる場合は難しくなります。また、公平な帯域幅の割り当てやその他のトラフィックシェーピングの実装と監視がより混乱する可能性があります(それを回避する方法はありますが、通常、ネットワークトポロジを簡素化する方が良いオプションです)。
デビッドスピレット

6

パフォーマンスの損失/速度は、実際に使用するルーターの品質によって決まります。

良い/悪いアイデアについては、単純にルーティングを使用することが可能である場合、私はそれに反対しますが、それは本当に環境とあなたが達成しようとしていることに依存します。

マシンが標準ポートで共有されているいくつかのことだけを実行する必要がある場合は、ルーター/ NATデバイスにアクセスして、必要なものを許可するルールを設定できます(1)。ただし、デバイス間で多くのタスクを実行する場合は、各マシンに固有のIPがある適切なルートを作成する方がはるかに簡単です(2)。

(1)たとえば、1対多-1台のマシンにWebサーバーがあり、それを他のユーザーと共有したい-ルーターのルールをマシンのポート80に設定し、次に外部ネットワーク(または内部nat-loopbackが有効になっている場合)、http://router.ipにアクセスしてアクセスできます。

(2)ただし、すべてのマシンでWebサーバーを使用する場合、または多くのサービスを使用する場合は、すべてのルールを設定する悪夢になります(しかし、不可能ではありません)。

あなたのシナリオに関しては-ある部門が192.168.xxを使用し、他の部門が192.168.yxを使用している場合、デバイスを通過し、重複がない場合、サブネットを/ 24から/ 16(または逆の場合)、ルーターをスイッチ/または同様のものに交換し、サービスを失うことはありません。

ネットワークについて詳しく知ることなく支援するのは本当に難しいです。正しく設定されていれば、ダブルNATで「間違った」ことは何もありません。ただし、本当に必要な場合、または非常に正当な理由がない限り、可能であれば移行を検討します(個人的な意見)


@iamrohitbanga-あなたの質問への回答(コメントのために)

比較は難しい-ルーティングは、すべてのマシンがすべてのマシンにアクセスできるプライベートネットワークでうまく機能します。Natはうまく機能しますが、通常は手動で着信ルール/ルートを設定する必要があるため、ルーティングを必要としないネットワークで主に使用されます。

たとえば、インターネット接続があり、NATを無効にしている場合、ルートまたはブリッジモードを手動で設定します-マシンはインターネットに直接接続されます-すべてのポートにアクセスでき、どのマシンでも目的の処理を実行できます。

一方、NATを備えたルーターを使用している場合、外部IPを使用して「Nat-ed?」を提供します。(用語についてはわかりません...)インターネット-すべての内部マシンにはインターネットからアクセスできないIPがありますが、手動ルールを設定できます-たとえば、1台のマシンへのポート80 ...発信接続(ファイアウォール)多くのサービスをホストしている場合、着信ルールを設定するのは悪夢です...動的ポート(ftp、Windows ADなど)を必要とする何かを行うと悪夢になる可能性があります。

これがお役に立てば幸いです。何か他のことを知りたい場合は、お気軽にお問い合わせください。


2つの戦略を比較してください。ネットワークは、ホストへのインターネットアクセスを提供するために使用されます。
ロヒトバンガ

@iamrohitbanga-回答の更新
ウィリアムヒルサム

5

NATの主な問題(一般的に、特に複数のレイヤー)は、トラブルシューティングが非常に困難な場合があることです。


4

NATの最大の問題は、古いネットワークソフトウェアが変換を実行しているときに、多くのアプリケーション(FTP、VoIPなど)を傷つける場合です。最新のファイアウォール/ゲートウェイには、翻訳(Ciscoの用語での修正)があり、それにより多くの場合簡単になります。

会社がプライベートサブネット間でNATを使用する理由がわかりません。ルーティングするだけではどうですか?


2

ネットワークとクライアントをIPV6にアップグレードするだけで、NATを再度使用する必要はありません。


1

質問の新しい2番目の部分に答えるには...

ルーターはブロードキャストドメインを壊します-ルーターはarpパケットを転送せず、サブネット内に留まります*。Windowsファイル共有(真剣?)Netbiosブロードキャストトラフィックはサブネットを離れません。

サブネットあり:

サブネットの外部からWindows共有にアクセスする必要がある場合は、そのIPアドレスを直接使用するか、ホスト名でDNSまたはWINSサーバーをセットアップすることでアクセスできます。

NATの場合:

NATがPATの種類であり、1対1のマッピングではない場合、これを機能させるにはポート転送を構成する必要があります-これは悪いことです。

既に説明したように、NATは一般的にネットワークの機能を損なうため、悪いことです。使用する必要があるからです。IPv6でロールします。

*もちろん、ブロードキャストフォワーダ/リレー/ヘルパーは存在します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.