it-swarm-ja.com

IPv6を使用したport80以外のWebサーバーへのアクセス

通常のIPv4ネットワークでは、Firefoxなどの任意のブラウザーにアクセスして、ポート80でホストされていないIPv4アドレスでサーバーを参照できます。

http://192.168.42.6:8080/

これは、192.168.42.6のポート8080でサーバーにアクセスします。ただし、これをIPv6 IPで試してみると、うまくいきません。これは、fe80::520:ff0f:ece0:1のポート8080にアクセスしようとします。

http://[fe80::520:ff0f:ece0:1]:8080/

Firefoxは、このURLを次のように自動的に「修正」します。

http://[www.fe80::520:ff0f:ece0:1.com]:8080/

それは私がそれにアクセスするのを全く助けません。だから私は本当に間違ったことをしているOR IPv6に本当に何か問題がある。インターネット上でリモートでさえ助けになったものを見つけることができなかった。(そしてはい、IPv6で実行されているサーバーがあります)問題です。)

8
logain

まず第一に、私はIPv6の専門家ではありません。

DNS名を追加できない場合(またはIPv6が使用されていることを確認したい場合)1)では、fe80リンクローカルアドレスではなく、実際のアドレスを使用してみませんか? OS Xを搭載したMac、およびWindowsの場合XP Home edition、this(with実際のIPv6アドレス2)すべてのブラウザで問題なく動作します:

http://[2001:db8::216:cbff:xx:xx]:8080/

(一部のブラウザでは、IPv6アドレスのhttp://部分に自動的にプレフィックスが付けられないことに注意してください。 hostsファイル for onlyにダミー名を追加すると、IPv6アドレスが均等になりますより簡単に。)

fe80アドレスの場合、問題を引き起こしているのはおそらくポート番号だけではありません。デフォルトのポート80を使用する場合、おそらくどちらも接続できません。ただしゾーンインデックスも指定します。 (したがって、有線イーサネットやワイヤレスなど、接続を確立する必要のある発信インターフェイス。使用するコンピューターごとに異なる場合があります。)

Windows XP Home Edition、有線イーサネットとワイヤレス(後者は非アクティブ)の両方で、Firefox 3.5および3.6では以下が正常に機能します。ここで、4は私のネットワークですインターフェイスインデックス3

http://[fe80::216:cbff:xx:xx%4]/
http://[fe80::216:cbff:xx:xx%4]:8080/

Internet Explorer 8では、パーセント文字は パーセントエンコード%25にある必要があります。

http://[fe80::216:cbff:xx:xx%254]:8080/

(私にとって、これは%4または%254なしでは機能しません。他のインストールで機能する場合は、WindowsまたはIE優先外部 =接続、およびそのインストールには単一のネットワークインターフェイスしかありませんか?)

Macでは、Firefoxで以下が正常に機能します。

http://[fe80::216:cbff:xx:xx%en0]:8080/

RL表記との競合 を考えると、パーセント表記を使用してゾーンインデックスを指定するのは面倒です。4。上記をWindowsXPのChrome 8および9でも、SafariまたはMacのChrome)でも機能させることができませんでした。

Macでは、%構文の代わりに、スコープインデックス(2番目のワードまたは3番目と4番目のバイト)を使用してネットワークインターフェイスインデックスを指定できます。 fe80:0004のように、私のすべてのブラウザで正常に動作します。

http://[fe80:4::216:cbff:xx:xx]/
http://[fe80:4::216:cbff:xx:xx]:8080/

ただし、これは私のWindows XPでは機能しないため、これが公式にサポートされているとは思えません、および 一部のドキュメント 代わりに常に代替手段を使用する必要があると主張しています。お気に入り:

ping6 -I en0 fe80::216:cbff:xx:xx  (en0 = wired ethernet on my Mac)
ping6 fe80::216:cbff:xx:xx%en1     (en1 = wireless)

...のではなく:

ping6 fe80:4::216:cbff:xx:xx
ping6 fe80:6::216:cbff:xx:xx

最後の注意: RFC 4291 で指定されているように、::または::ffff:の後にIPv4アドレスを使用することに騙される可能性があります。しかし、これは実際にはIPv6を使用していませんが、私のMacでは応答があります。

http://[::ffff:192.168.178.25]:8080/

これは16進表記を使用することもでき、一部のブラウザは自動的に書き換えます。

http://[::ffff:c0a8:b219]:8080/

しかし、何があっても、これは私のMacでIPv4接続を使用します。私のMacでは、[::192.168.178.25]が機能しません。 WindowsXPで動作するフォームを取得できませんでした。


1 一部のブラウザは、IPv6よりもIPv4を好みます。 test-ipv6.com を参照してください。これもプラットフォームに依存します。
2 IPv6では、Webサーバーは コンピューターのMACアドレスを参照 、これらの例では216:cbff:xx:xxである可能性があります。このスーパークッキーをネットに公開したくありません。参照 IPv6を使用しているときにMACアドレスが公開されないようにする方法
3 Macの場合:scopeidの出力でifconfigの値を探します。 Windowsの場合netsh interface ipv6 show interfaceの出力でIdxの値を参照してください。 再起動後にこの番号が変わるのを見ました!
4 これはかつてRFCにつながり、ドラフトから抜け出すことはなかったようです。このドラフト 提案 代わりにプラス文字を使用しますが、これは私のMacまたはWindows XP)でも機能しません。

5
Arjan