問題タブ [nat]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
tcp - NATポート転送に最適なオプションは何ですか?
ユーザーがNATのポートをC++アプリのローカルマシンに簡単に転送できるようにしたいと思います。これをOSXとWindowsで動作させたいです。Linuxは大きなボーナスですが、Linuxユーザーはおそらく手動でポートを転送する方が快適なので、それほど心配する必要はありません。LGPLタイプコードは問題ありませんが、ストレートGPLのものは使用できません。
この分野で誰かが持っている考えや経験を聞きたいのですが、いくつかの具体的な質問が思い浮かびます。
linux - SNMP ペイロード アドレス変換
iptables
LinuxでNAT SNMPトラフィックを使用しています。一部の SNMP パケットには、それらを生成したデバイスの (実際の) IP アドレスを含む VARBIND があります。これは、VARBIND で NAT されたアドレスを確認する必要がある標準の管理ツールを混乱させます。そのため、ヘッダーのアドレスに加えて、ペイロードのアドレスも変換する必要があります。
標準ツールはnf_nat_snmp_basic.ko
カーネル モジュールですが、元のバージョンはアドレスの最初のオクテットのみを変換し、最新バージョンは単にパケット全体を破損します。これは明らかに、Web (www.netfilter.org) の「常識」であり、私自身の機器で確認しました。
カーネルに飛び込む前に、他の誰かがこの問題に取り組み、適切な解決策を思いついたことがありますか? 現時点では、OID がタイプを IP アドレスとして指定している VARBIND のみを変換するだけで十分です。つまり、文字列データに埋め込まれたアドレスを変換する必要はありません。これははるかに困難です。
ご提案いただきありがとうございます。
windows - VMware と iptables
Windows で VMware を使用して、iptables を実行する仮想 Linux ボックスをホストする際に問題はありますか? 物理ハードウェアでは動作するように見える構成がありますが、VMware では不安定です。
VMware を使用して、Windows 2003 Server ホストで仮想 Linux 2.6.24 マシンを実行しています。Linux アプリケーションは、基本的に .NET を実行する NATting ルーターですiptables
。表のルールは次のnat
とおりです。
を使用して 10.10.1.33:80 への着信パケットが表示されます。tcpdump
最初のLOG
メッセージはメッセージを生成しますがDNAT
、2 番目も 2 番目もLOG
パケット カウンターに登録されているパケットを表示せず、2 番目LOG
はメッセージを生成tcpdump
せず、へのパケットを表示しません。 192.168.0.33。
アダプタはeth0
10.10.0.0/16 ネットワーク上にあり、デフォルト ゲートウェイは 10.10.1.1 です。セカンダリ アドレスは 10.10.1.33/32 です。 /proc/sys/net/ipv4/config/eth0/forwarding
1に設定されています。
VMware が原因ですか、それとも何か不足していますか? ありがとう!
更新: テスト環境を簡素化しました。NAT ルールはまったくなく、Win2k3 サーバー ホストで実行されている Linux VM だけです。テスト手順:
VM はホスト NIC にブリッジされます。VM とホストは同じサブネット上にあり、上記と同じデフォルト ゲートウェイを使用します。
VM は、サブネット内外のデバイスと通信します: ICMP、TCP、UDP。通信は双方向です。どの機器が通信を開始するかは問題ではありません。
エンジニアは、システムを突っついている間にデフォルト ゲートウェイの電源を入れ直しました。
VM は、そのサブネット上のデバイスとのみ通信するようになりました。ステップ 2でゲートウェイを介して同じ機器に通信しようとしても、パケットを送信できません。 VM の eth0 の tcpdump は、応答のない発信パケットを示します。ホストの WireShark は、物理 NIC に何も表示しません。
VM を停止して再起動しても、その動作は変わりません。VM を停止し、適切な IP アドレスなどを持つ別の VM に置き換えても、動作は変わりません。
Win2k3 ホストは、サブネットの内外で正常に通信を続けます。
このことから、VM とホストの間、つまり VMware ドライバーまたはホストのネットワーク スタックで「何かが発生した」としか結論付けられません。私は再びウェブを精査するために出発します.... これを最初に観察したのは私たちだとは想像しがたいです.
彼らが来るように更新します。あなたの考えと議論をありがとう。
python - Python UPnP/IGD クライアントの実装?
Python でのUPnPクライアントのオープンソース実装、より具体的にはInternet Gateway Device (IGD) 部分の実装を探しています。
今のところ、 PyMediaServer、PyMedS、BRisa、Coherenceなどのプロジェクトで、UPnP メディア サーバーの実装しか見つけることができませんでした。
これらのコード ベースを最初に使用できると確信していますが、メディア サーバーの部分は不必要に複雑になります。
クライアントの UPnP (できれば IGD) の Python ライブラリをお勧めできますか? 別の方法として、呼び出しをMiniUPnPなどの C ライブラリにディスパッチすることもできますが、純粋な Python 実装の方がはるかに望ましいと思います。
更新: SSDP と UPnP に関する興味深い、関連する議論がStackOverflowで利用可能です。
java - 特定のインターフェイスが背後にある NAT のタイプを検出する方法
特定のネットワーク インターフェイスが背後にある NAT のタイプ (フルコーン、制限付きコーン、ポート制限付きコーン、対称) を発見したいと考えています。
さまざまなツール ( http://freshmeat.net/projects/jstun/、http://code.google.com/p/boogu/ ) をテストしましたが、同じインターフェイスに対して異なる結果が報告されています。
Python(または他の言語、他に何も利用できない場合はJavaが2番目の選択肢)で決定的な答えを探しています。
vmware - VMWare-仮想オペレーティングシステムの静的IPアドレス
仮想オペレーティングシステムにVMWwareで静的IPアドレスを持たせるための最良の方法は何ですか。IPアドレスは仮想サーバーなので静的にしたいと思います。
apache2 - NAT ファイアウォールの背後にある場合、Apache ログ ファイルでリモート IP アドレスを取得することは可能ですか?
私はApache2、Ubuntu 8.10を使用しています。現在、Apache はゲートウェイの IP をホスト IP としてログに記録していますが、代わりにリモート クライアントの IP アドレスをログに記録するにはどうすればよいですか? これは可能ですか、それともNATルーターはそれを完全に「失う」のですか?
更新:実際には、ネットワーク内からのアドレスのゲートウェイの IP のみをログに記録しているように見えます。外部要求は正しい IP でログに記録されているようです... 図に進みます。
sockets - オープンソースのクロスプラットフォームNATパンチスルーはありますか?
オープンソースのクロスプラットフォームNATパンチスルーはありますか?
file - Wippienは直接接続を使用しますか?
Wippienを使用して、2台の離れたWindowsサーバー間でp2p接続を確立し始めました。私は2つの異なるGMailアカウントを使用しています。
Wippienは「メディエーター」を使用して接続を開始します。しかし、大量のデータ転送は本当に直接的なものですか、それともメディエーターを介してルーティングされますか?
関連していると思われるこの記事も見つかりました:P2Pアプリでの直接TCP/IP接続
接続が直接接続されているかどうか、および速度を確認するにはどうすればよいですか?
ファイルを転送している間、接続が遅いように見えますが、これは測定されておらず、私の第一印象だけです。
linux - LinuxでのIPv6トラフィックの透過プロキシ
ネットワークを維持する場合、透過プロキシを実行するのが便利なことがよくあります。透過プロキシとは、発信接続を「ハイジャック」し、ローカルサービスを介して実行するプロキシを意味します。具体的には、squidを使用してLinuxファイアウォールを実行し、ポート80で転送されるすべてのtcp/ip接続がsquidによってプロキシされるようにします。
これは、IPv4を使用してiptablesの「nat」テーブルを使用して実現されます。
しかし、IPv6のiptablesには「nat」テーブルがないため、同じ実装を使用することはできません。IPv6接続のトラフィックを透過的にプロキシするために使用できる手法は何ですか?