У меня настроена среда разработки, в которой у меня есть отдельный адрес обратной связи для нескольких веб-сайтов.
Например, у меня есть следующее:
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 какие-либо другие адреса обратной связи? Есть ли способ иметь несколько уникальных адресов обратной петли?
Технически :: 2, :: 3 и т. Д. Являются частью :: 0.0.0.0/96, диапазона "ipv4-совместимых адресов ipv6". Он устарел, но вы, вероятно, не захотите использовать этот диапазон.
Для лабораторной среды используйте уникальную локальную адресацию. Перейти к https://www.ultratools.com/tools/rangeGenerator и создайте себе префикс. Затем вы можете выбрать любые адреса из этого префикса и назначить их интерфейсу обратной связи.
Ваш адрес обратной связи: 1/128. Обратите внимание на ширину подсети, которая ограничивает ее одним хостом. измените маску подсети на более широкую и проверьте таблицу маршрутизации. Или используйте локальные адреса ссылок.
Я рекомендую использовать RFC 4193 адреса для этого. RFC 4193 позволяет вам создать свой собственный / 48 для локального использования, взяв значение байта fd
за которыми следуют 5 случайный байты. Вы можете поместить все, что считаете нужным, после первых 48 бит, поэтому, если вы хотите / 64, вы можете взять fd
за которыми следуют 7 случайных байтов, как в этом примере для систем Linux:
ip -6 route add to local fd66:29e9:f422:8dfe::/64 dev lo
Использование RFC 4193 имеет преимущество по сравнению с более ранними ответами в том, что при этом вы не нарушаете никаких RFC, и адреса можно использовать без идентификатора интерфейса.
Каждый из диапазонов, упомянутых в предыдущих ответах, либо использует диапазоны, зарезервированные для разных целей, либо локальные адреса ссылки, которые требуют идентификатора интерфейса при каждом использовании.
Существует просроченный черновой вариант предполагая, что диапазон 1::/32
выделяется для дополнительных адресов обратной петли, как вы просите. Однако, поскольку этот черновик истек много лет назад, и таких распределение когда-либо был сделан, вы не можете использовать 1::/32
для этого.
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
из Могу ли я привязать (большой) блок адресов к интерфейсу?
это единственное, что у меня сработало. Конечно, для Linux.
nota bene: поскольку это может конфликтовать с адресами 0.0.0.0/8 когда-нибудь в будущем, ::127.0.0.0/104
вероятно был бы лучшим выбором.
Eсть RFC пропорциональный называется Более крупный префикс обратной связи для IPv6, который предлагает использовать 1::/32
как локальная сеть. Однако предложение не было одобрено и истекло уже в 2013 году.
Использование локальной адресации кажется единственным допустимым вариантом. Большинство предложений здесь игнорируют тот факт, что Префикс 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-адрес для привязки к нему. С 127.0.0.0/8 вы можете привязать к любому адресу без предварительного их назначения.