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

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

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

そこで質問なのですが、Teredo で常に同じ IP アドレスを使用する方法はあるのでしょうか?

答え1

Teredo IPアドレスは、いくつかの要素に依存します。ウィキペディア

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

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

短い答え:あなた5月ほとんどの場合、同じ結果を得ることができますが、状況は大きく異なる可能性があります。NAT デバイスがソース ポートを壊してしまう可能性があるため、この信頼性を得ることはできない可能性があります。ファイアウォールでポート転送を設定することで、この状態を回避できる可能性がありますが、すでにそのようにすることはできません。

より良い選択肢としては、Teredo インターフェイスの IPv6 アドレスを公開するダイナミック DNS クライアントが見つかると仮定して、ダイナミック DNS クライアントを設定することが考えられます。

答え2

どうやら、RFC5991 参照IPv6 アドレスは予測不可能にするために、一部の部分は常にランダムになっています。

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

答え3

はい、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 リレーを構成します (IPv4 に NAT が使用されている場合は、それを NAT の外部に配置します)。

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

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

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

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

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

答え4

トンネルを使用する方がよいかもしれません6in4。これはプロトコル 41 を使用するため、追加の NAT ルールは必要ありません。無料のトンネルを提供するブローカーがあります。ネットワーク上でトンネル ブローカー IP を使用しているのが自分だけであれば、問題は発生しません。

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

NAT が不要なトラフィックから保護しないため、接続をファイアウォールで保護してください。

6in4との両方のサポートは6to4Linux に組み込まれています。私は最初 6to4 を使い始めましたが、これは機能しましたが、思ったほど安定していません6in4でした。 では安定した接続が得られました。私はこれを NTP 接続に使用しており、IPv6 経由で安定した時間ソースを取得しています。

関連情報