web-dev-qa-db-ja.com

常に同じTeredoIPv6アドレスを使用する方法はありますか?

私のコンピューターの1つはIPv4のみのISPにあるので、IPv6アドレスを持つためにmiredoを使用しています。次に、IPv6を使用してこのコンピューターにリモートでアクセスする必要があります。 (IPv4はNAT Iであり、新しいポート転送を追加できないため、ここでは使用できません。)問題は、の一部が原因でAAAADNSレコードを追加できないことです。コンピュータがネットワークに接続するたびに、IPアドレスがランダムに変更されます。

だから私の質問は:Teredoで常に同じIPアドレスを使用する方法はありますか?

4
Rudloff

Teredo IPアドレスは、 Wikipedia のようにいくつかの要素に依存します。

まず第一に、それはルーターのIPv4アドレスに依存します。それが変更される可能性がある場合は、問題があります。

次に、Teredoが使用する送信元ポートによって異なります。これは、NATデバイスによって変換および変更される可能性があります。NATデバイスが送信元ポートを保持する場合内部のアプリケーションで使用される場合、mayは、これを変更しないようにすることができます。Windowsを使用している場合は、Teredoの「clientport」オプション役に立つかもしれません。 このtechnetの記事を参照してください。

簡単な答え:あなたほとんどの場合同じにすることができるかもしれませんが、あなたのマイレージはかなり異なるかもしれません。 NATデバイスが送信元ポートを壊す可能性があるため、これを信頼できるものにすることはできないでしょう。ファイアウォールにポートフォワードを設定することで、これを止めることができるかもしれません...しかしあなたはすでにそれをすることはできません...だから...

TeredoインターフェイスのIPv6アドレスを公開するクライアントが見つかると仮定して、動的DNSクライアントを設定することをお勧めします。

2

どうやら、 RFC 5991 なので、IPv6アドレスの一部は、予測不可能にするために常にランダムです。

したがって、私にとって最も簡単な解決策は、dynv6.comのようなIPv6をサポートするダイナミックDNSサービスを使用することでした。

1
Rudloff

はい、Teredoプロトコルでそれを行うことは可能です。ただし、TeredoクライアントとTeredoサーバーの両方でコードを変更する必要があります。

クライアントとサーバーの両方が変更された後でも同じプロトコルと見なすことができる理由を説明するために、最初に通信に関係する他のコンポーネントが何であるかを説明する必要があります。

Teredoの基本

Teredoプロトコルを使用した通信における4つの重要なネットワークノードは次のとおりです。

  • Teredoクライアント
  • Teredoサーバー(クライアントが選択)
  • Teredoリレー(ネイティブIPv6ノードによって選択)
  • ネイティブIPv6ノード

最終的に、IPv6パケットを交換するのはTeredoクライアントとネイティブIPv6ノードです。 TeredoサーバーとTeredoリレーは、そのトラフィックを容易にするために存在します。

Teredoサーバーは、初期接続セットアップにのみ関与します。接続が確立されると、TeredoクライアントとネイティブIPv6ノード間のトラフィックは、Teredoサーバーがトラフィックを認識せずにリレーを通過します。

クライアントはTeredoリレーの選択に影響を与えないため、リレーの変更が必要なソリューションは機能しません。幸い、それは必要ありません。トラフィックの大部分が送信されるクライアントとリレー間の接続は、完全に標準のTeredoトラフィックのままです。

クライアントとリレーは引き続き標準のTeredoを使用して通信し、クライアントはまだ2001::/32プレフィックスにIPv6アドレスを持っているため、これは引き続きTeredoと見なされます。

必要な変更

Teredoアドレスの12ビットは、Teredoクライアントによってランダムに選択されます。それらがランダムにならないように、クライアント側で変更が必要です。

Teredoアドレスの48ビットは、Teredoサーバーから見たTeredoクライアントのIPv4アドレスとUDPポート番号です。

ここでは、これらの48ビットがサーバーから見たポートアドレスであることが非常に重要です。 NAT)のため、クライアントとリレーはUDPポートのアドレスが完全に異なると考える場合があります。ただし、クライアントとリレーが認識するIPv4アドレスとポート番号は、最終的なIPv6アドレスには影響しません。

通常、関係するNATはTeredoクライアントの近くにあります。ただし、最終的なIPv6アドレスに影響を与えたい場合は、NATを同じマシンに配置できます。 Teredoサーバーとして。必要に応じて、NATをTeredoサーバーに直接組み込むこともできます。

これの実装は存在しますか?

おそらくそうではありません。

私は以前にこれを行うTeredoサーバーのほとんどを実装しました。ただし、クライアントはIPv4アドレスのみを選択でき、UDPポート番号は選択できません。クライアントを区別するためにUDPポート番号が必要でした。

特定のユーザーのIPv4アドレスとUDPポートの両方を静的に保つことをサポートするTeredoサーバーには、ユーザーを認識する何らかの方法が必要です。プロトコルには、そのために使用される可能性のあるフィールドがあります。しかし、Teredoサーバーに対してTeredoクライアントを識別するためのサポートを備えた実装は知りません。

さらに、Teredoには重大な信頼性の問題があります。この信頼性の問題は、Teredoプロトコルの一部に関連しており、ここで説明した変更には影響されません。

Teredoの問題

問題は、ネイティブIPv6ノードが使用するTeredoリレーをどのように選択するかです。理想的には、ネイティブIPv6ノードが配置されているネットワークの管理者は、そのネットワークのTeredoリレーを構成します(そして、NAT if NAT IPv4に使用されています)。

しかし、多くの管理者はTeredoリレーを展開しないことを選択しています。通常、Teredoは非常に信頼性が低いため、サポートする必要はありません(この理由により、Teredoの信頼性が自己達成的な予言になることに気付くことはありません)。

代わりに、ネイティブIPv6ノードからのトラフィックがデフォルトルートを介してアップストリームプロバイダーに送信され、アップストリームプロバイダーがアップストリームプロバイダーに送信し、最終的にトラフィックがAS上のパブリックサードパーティリレーに到達する可能性があります。 2001::/32を発表することにしました。

サードパーティのリレーを使用すると、ネットワークパスが長くなり、遅延が増加します。また、SLAがなく、Teredoリレーに送信されるトラフィックに対して十分な容量がない可能性があることも意味します。

静的IPアドレスが必要な場合のほとんどは、ある程度の信頼性も必要です。また、通信するすべてのリモートノードを制御できることはめったにないため、どのTeredoリレーを使用するかも制御できません。

これにより、静的IPアドレスを持つTeredoは、信頼性が保証されていない静的IPアドレスを取得するために、変更されたTeredoクライアントをインストールすることをいとわない少数の人々にとってニッチな製品になります。

1
kasperd

6in4トンネルを使用したほうがよい場合があります。これはプロトコル41を使用します。追加のNATルールは必要ありません。無料のトンネルを提供するブローカーがあります。ネットワーク上でトンネルブローカーIPを使用しているのがあなただけである限り、問題はありません。 。

ルーターのIPアドレスが静的でない場合は、IPアドレスが変更されたときにネットワークを再構成するために、追加の構成を行う必要があります。これは、DDNSで行う必要があることと似ています。

NAT不要なトラフィックからユーザーを保護することはできないため、接続をファイアウォールで保護してください。

6in46to4の両方のサポートがLinuxに組み込まれています。私はもともと6to4から始めましたが、これは機能しましたが、思ったほど安定していませんでした。 6in4を使用すると、安定した接続が可能になりました。私はこれをNTP接続に使用しており、IPv6を介して安定したタイムソースを取得しています。

0
BillThor