Назад | Перейти на главную страницу

Адреса обратной связи IPv6 (эквивалент 127.x.x.x)

У меня настроена среда разработки, в которой у меня есть отдельный адрес обратной связи для нескольких веб-сайтов.

Например, у меня есть следующее:

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 вы можете привязать к любому адресу без предварительного их назначения.