私は危険なほどネットワーキングを知っています。 NAT=の重要な低レベルの詳細は、私が特に知っているものではありません。
NAT Gateway。(1つのパブリックIPアドレスとXのプライベートLANアドレス)の背後にノードの束を配置することについての今日のディスカッションで誤って見つけました。16ビットの制限をTCP protocol、( http://www.ietf.org/rfc/rfc793.txt -15ページ)の送信元ポートと宛先ポートのフィールド)接続数を65,000に制限します(65536)-その答えについてはあまり自信がありません。
私の側の着信ポート(サーバーポート)は、sourceIP x SourcePortの組み合わせと同じ数の接続を受け入れることができることを理解しています。とりあえずそれらを割り引いて、LANで始まり、NATゲートウェイを経由して、ランダムなポートでランダムなホストで終了する)接続に焦点を当てましょう。
通常の[Linux]システムでは、発信接続はソースIPごとにポートごとに1つに制限されています。各システムが1つのIPアドレスしか持たない単純な世界に住んでいると仮定すると、「通常のシステム」は絶対最大65536接続に制限されます。
1)TCPは単一ソースIPが65536 MAXの理論上の発信接続に制限されていますか?
2)各リモートホストの実際の制限は65536接続ですか?
2)[別の方法で記述]:同じ送信元ポートを異なるremoteHostIP:RemotePortの組み合わせに使用できますか?
例:(次は大丈夫ですか?)
Source IP |Source Port |Remote IP|Remote Port
192.168.0.20:36500 --> 8.8.8.8:23
192.168.0.20:36500 --> 8.8.4.4:23
3)質問1と2の回答は...「通常のシステムではない」[NATゲートウェイ]として機能するCiscoルータ)では異なりますか?
例:1つのパブリック向けIPとその背後に最大65,000までのLAN IP [以上]を持つ特殊なネットワークデバイスですか?魔法はあるのでしょうか、それとも質問2に対する答えは常にそうです。 (またはいいえ)
4)上記の質問はすべて、ステートフルなTCP接続を前提としています。UDPのようなステートレスな接続では、ストーリーは異なりますか?
5)LANは、単一のパブリックIPアドレスを介した外部への同時接続数が65536(またはその他の理論上の制限)に制限されますか?
ありがとうございました! :)
この質問のために、私たちは非常に頑丈で真新しいCisco Nexusギア(7000シリーズだと思います)の背後にいます。特に定量化できない場合は、メモリなどの制限を無視した方がよい場合があります。
私が間違っている場合は私を修正しますが、これは私が理解している方法です。制限はクライアント/サーバー/ポートごとです。それを踏まえて。
1)TCPは単一ソースIPであり、理論上の発信接続は65536 MAXに制限されていますか?
いいえ、同じ宛先IPの理論上の最大値は65536に制限されています。
Windowsワークステーション(サーバー以外のバージョン)には制限が課されているため、この数ははるかに少なくなります。 Linuxにはリソース制限がありますが、一般的に平均的なユーザーに影響を受けることはなく、簡単に調整できます。
64Kに近いところから数を増やし始めると、おそらく他のリソース制限に達するでしょう。
リソースが限られているため、コンシューマーグレードのルーターの制限ははるかに低い場合があります。
2)各リモートホストの実際の制限は65536接続ですか?
はい
3)質問1と2の回答は...「通常のシステムではない」[NATゲートウェイとして機能するCiscoルーター)で異なりますか?
番号
4)上記の質問はすべて、ステートフルなTCP接続を前提としています。UDPのようなステートレスな接続では、ストーリーは異なりますか?
UDPはコネクションレスです。したがって、これはUDPには実際には関係ありません。
5)LANは、単一のパブリックIPアドレスを介した外部への同時接続数が65536(またはその他の理論上の制限)に制限されますか?
番号。
接続を追跡し、他の追跡機能を提供するステートフルファイアウォールのコンテキストでは、これらのモジュール自体に制限がある場合があります。運用チームは、どのファイアウォール/ NATルーターが使用されているかについては何も述べていないため、現時点でどのような制限が課されるかについて推測することもできません。
NAT=設計には多くのアプローチがあるため、もちろん答えは「それは依存する」です。ジェフ・ヒューストンは書きました さまざまなNATの優れた概要デザイン
私の経験では、多くの小規模オフィス/ホームオフィスルーターは、同じアドレスへの64kを超えるアドレスを処理しませんが、ポートの枯渇のためだけではありません。多くはメモリが限られているため、RAM NATテーブルの場合は64kの制限に達する前に不足します。
5)LANは、単一のパブリックIPアドレスを介して外部に65536(または他の理論的な制限)の同時接続に制限されますか?
いいえ、1つのポートNAT IPは複数の接続に使用できます。
cat /proc/net/ip_conntrack | grep 51380
tcp 6 191 ESTABLISHED src=10.1.8.5 dst=17.133.254.23 sport=51380 dport=5223 src=17.133.254.23 dst=my.nat.pub.ip sport=5223 dport=51380 [ASSURED] mark=0 use=2
tcp 6 24 CLOSE_WAIT src=10.1.26.1 dst=80.68.255.71 sport=51380 dport=80 src=80.68.255.71 dst=my.nat.pub.ip sport=80 dport=51380 [ASSURED] mark=0 use=2
ストーリーショートとは、プラットフォームに大きく依存し、構成に依存し、実装に依存するということです。
しかし、簡単に説明しましょう。
どうやら、> 65535に到達した理論上の制限について他の回答が述べています(ポート0は多くの場合 予約済み )。 ...などのある程度まで:
ただし、限られたリソースでハードウェアアクセラレーションルーティングが実行される現実の世界では、NATテーブルには-既知の制限。これは多くの場合、保護の構成パラメーターです。
シスコは、IOS 12で始まると言及しています。最大NATは、DRAMに依存するため、約10Kの変換が発生します( source )。あなたの質問ではそれらの65K未満です。
古いxDSLルーターを使用します。多くの接続がある自宅でP2Pを起動したい場合は、それらのほとんどが1024〜4096のグローバル最大制限を構成しています。たとえば、私の自宅のハイエンドFTTHルーターには、NAT制限がベンダーによって8Kに設定されています。
最後に、Q2-rewriteに回答するために、 RFC3489 のdispair実装を備えた製品を次のNATテーブルです。明らかに、最後のテーブルはNAT可能性をかなり制限します:
この回答が気に入ったら、いいね!
NATマッピングテーブルの主キー:
sourceIP:sourcePort + DestinationIP:DestinationPort
異なるsourceIp:sourcePortを同じDestinationIP:DestinationPortにマップできます。したがって、ポート番号(2^16
)は接続の制限ではありません。