IPv6ループバックアドレス(127.xxxに相当)


16

複数のWebサイト用に個別のループバックアドレスがある開発環境をセットアップしています。

たとえば、私は次のものを持っています:

127.0.0.1 www.example.com
127.0.0.2 foo.example.com
127.0.0.3 bar.example.com
127.0.0.4 waffles.example.com

IPv6の同等のソリューションが欲しいです。

ループバックアドレスとして:: 1を使用できることは既に知っていますが、:: 2、:: 3などは機能しないようです。

IPv6に他のループバックアドレスはありますか?複数の一意のループバックアドレスを持つ方法はありますか?


1
:: ffff:7f00:1、:: ffff:7f00:2などをお勧めしますが、誰かが腐った果物を私に投げつけることは間違いありません。
ウォンブル

IPv6インターフェイスローカルマルチキャストスコープで何かを試すことができます。それはあなたのホストにループバックします、そしてそれは巨大な範囲です。それがあなたのために働くかどうかは、あなたがやろうとしていることによって異なります。
ロンMaupinの

回答:


13

技術的には、:: 2、:: 3などは:: 0.0.0.0/96、「ipv4互換ipv6アドレス」範囲の一部です。非推奨ですが、おそらくその範囲を使用したくないでしょう。

ラボ環境では、一意のローカルアドレス指定を使用します。移動しhttps://www.ultratools.com/tools/rangeGeneratorし、自分自身の接頭辞を生成します。次に、そのプレフィックスから任意のアドレスを選択し、それらをループバックインターフェイスに割り当てることができます。


なぜ:: 127.0.0.0/96ではありませんか?
トッド

9

ループバックアドレスは:: 1/128です。サブネットの幅に注意してください。これにより、サブネットが1つのホストに制限されます。サブネットマスクをより広いものに変更し、ルーティングテーブルを確認します。または、リンクローカルアドレスを使用します。


1
WindowsまたはLinuxのいずれかまたは両方で、追加のIPv6アドレスをループバックインターフェイスにバインドする方法を追加した場合、この回答の方が良いでしょう。IPv4では127.0.0.1/8を取得し、IPv6では:: 1/128を取得するので、IPv6にさらに追加する方法はありますか?
ウィリアム

2
jcomeau@aspire:~/rentacoder/jcomeau/kybyz$ sudo ip route add local ::/104 dev lo 
jcomeau@aspire:~/rentacoder/jcomeau/kybyz$ ping6 ::2
PING ::2(::2) 56 data bytes
64 bytes from ::2: icmp_seq=1 ttl=64 time=0.083 ms
64 bytes from ::2: icmp_seq=2 ttl=64 time=0.128 ms
^C
--- ::2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms
rtt min/avg/max/mdev = 0.083/0.105/0.128/0.024 ms
jcomeau@aspire:~/rentacoder/jcomeau/kybyz$ ping6 ::3
PING ::3(::3) 56 data bytes
64 bytes from ::3: icmp_seq=1 ttl=64 time=0.148 ms
64 bytes from ::3: icmp_seq=2 ttl=64 time=0.141 ms
64 bytes from ::3: icmp_seq=3 ttl=64 time=0.142 ms

from (大規模な)アドレスブロックをインターフェイスにバインドできますか?

それは私のために働いた唯一のものです。もちろん、Linux固有です。

nota bene:これは将来のある時点で0.0.0.0/8アドレスと競合する可能性があるため、::127.0.0.0/104おそらくより良い選択でしょう。


これにより、ルーティングテーブルが、Ben Jencksが説明したipv4互換性のために予約された範囲に効果的に拡張されます。
コルクマン

それは私にはまったく関係ありません。テスト用です。ローカルマシンにあります。それは私以外の誰にも影響しません。
jcomeau_ictx

1
@jcomeau_ictxかどうかは、それはそれがその後、影響されますので、あなたの答えを使用する誰もが心配かもしれませんが、あなたに関係して
mtraceur

可能性はありますが、間違いなくipv4範囲0/8が割り当てられるまでそうではありません。とにかく、答えを修正します。
jcomeau_ictx

/ 96を使用した場合、それは悪いことでしたが、/ 104を使用しました。とにかく、答えを編集して、ループバック範囲:: 127.0.0.0/104を使用しました。
jcomeau_ictx

2

これにはRFC 4193アドレスを使用することをお勧めします。RFC 4193では、バイト値とfdそれに続く5つのランダム バイトを使用して、ローカルで使用する独自の/ 48を構築できます。最初の48ビットの後に適切と思われるものを置くことができます。したがって、/ 64が必要な場合はfd、Linuxシステムのこの例のように、7つのランダムバイトを続けることができます。

ip -6 route add to local fd66:29e9:f422:8dfe::/64 dev lo

RFC 4193を使用すると、以前の回答に比べて、RFCに違反することがなく、インターフェイス識別子なしでアドレスを使用できるという利点があります。

前の回答で言及された範囲のそれぞれは、異なる目的のために予約された範囲を使用するか、使用するたびにインターフェース識別子を必要とするリンクローカルアドレスのいずれかです。

あなたが求めているように、範囲が追加のループバックアドレスに割り当てられることを示唆する期限切れのドラフトが存在し1::/32ます。ただし、そのドラフトは数年前に期限切れになり、そのような割り当ては行われなかったため1::/32、これに使用することはできません。


RFC 4193準拠のプレフィックスを生成する小さなコマンドラインツールを作成しました:v6tools.kasperd.dk/rfc4193
kasperd

0

有効なオプションは、リンクローカルアドレス指定のみです。ここでほとんどの提案が無視するのは、IPv6プレフィックスがスコープを宣言するという事実です私はおそらくプライベートアドレス指定がグローバルスコープ内にあることを望まないでしょう。

Linuxの場合:

$ sudo ip -6 address add fe80::1/64 dev lo
$ sudo ip -6 address add fe80::2/64 dev lo
$ sudo ip -6 address add fe80::3/64 dev lo

そして、そのようなアドレスを参照するときにインターフェイスを指定します。netcatを使用したテスト:

$ nc -l -p 10001 fe80::1%lo
$ nc fe80::1%lo 10001

正しいスコープの検証:

$ ip -6 a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 
    inet6 fe80::1/64 scope link 
       valid_lft forever preferred_lft forever

それでも、すべてのIPを追加してIPにバインドする必要はあまりないようです。127.0.0.0/8を使用すると、事前に割り当てることなく、任意のアドレスにバインドできます。


いいえ、ULAはサイトのローカルアドレス指定を行う有効な方法です。デフォルトでは、インターネット上でルーティングしません。ただし、ローカルにルーティングできます。サイトのすべてのサブネットには、ISPに関係なく、合理的にグローバルに一意のプライベートプレフィックスを付けることができます。
ジョンマハワルド

また、サイトローカルはホストローカルではありません。それが私のポイントです:-)
コルクマン

0

あるRFCのproporsalと呼ばれるIPv6の大規模なループバック接頭辞を使用することを提案し、1::/32ローカルホストのネットワークとしては。ただし、提案は承認されておらず、2013年に既に期限が切れています。


これは、昨年この質問について書いた回答ですでに言及されています。
カスペルド

@kasperedそうそう、答えは実際には2つの答えを含み、もう1つの答えから始まるので気づかなかった。
F.Raab

期限切れのドラフトが標準になることは決してなかったので、私は本当にそのドラフトが答えだとは考えていませんでした。それは関連する背景情報であり、その特定の目的のために範囲を標準化しようとした試みに関するコンテキストを提供するため、私の答えの下にそれを書き留めました。
カスペルド
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.