Direcciones de bucle invertido IPv6 (equivalente a 127.xxx)


16

Tengo un entorno de desarrollo configurado donde tengo una dirección de loopback separada para múltiples sitios web.

Por ejemplo, tengo lo siguiente:

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

Me gustaría una solución equivalente para IPv6.

Ya sé que puedes usar :: 1 como una dirección de bucle invertido, pero :: 2, :: 3, etc. no parecen funcionar.

¿Hay alguna otra dirección de bucle invertido en IPv6? ¿Hay alguna manera de tener múltiples direcciones únicas de bucle invertido?


1
Recomiendo :: ffff: 7f00: 1, :: ffff: 7f00: 2, y así sucesivamente, pero sin duda alguien me arrojaría fruta podrida.
womble

Podría intentar algo en el ámbito de multidifusión local de interfaz IPv6. Eso volverá a su host, y es un rango enorme. Si funciona o no para usted dependerá de lo que intente hacer.
Ron Maupin el

Respuestas:


13

Técnicamente :: 2, :: 3 etc. son parte de :: 0.0.0.0/96, el rango "dirección ipv6 compatible con ipv4". Está en desuso, pero probablemente no quieras usar ese rango.

Para un entorno de laboratorio, use un direccionamiento local único. Vaya a https://www.ultratools.com/tools/rangeGenerator y genere un prefijo. Luego, puede elegir las direcciones que desee de ese prefijo y asignarlas a la interfaz de bucle invertido.


¿Por qué no :: 127.0.0.0/96?
Todd

9

Su dirección de bucle invertido es :: 1/128. Tenga en cuenta el ancho de la subred que lo restringe a un solo host. cambie la máscara de subred a algo más amplio y verifique su tabla de enrutamiento. O use direcciones de enlace local.


1
Esta respuesta sería mejor, si agrega, en una o ambas, de Windows o Linux, cómo vincular direcciones IPv6 adicionales a la interfaz de bucle invertido. En IPv4, obtienes 127.0.0.1/8, y en IPv6 obtienes :: 1/128, entonces, ¿hay alguna forma de agregar algo más para IPv6?
William

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

de un (gran) bloque de direcciones a una interfaz Can I se unen?

Es lo único que funcionó para mí. específico de Linux, por supuesto.

nota bene : debido a que esto puede entrar en conflicto con las direcciones 0.0.0.0/8 en algún momento en el futuro, ::127.0.0.0/104probablemente sería una mejor opción.


Esto está ampliando efectivamente la tabla de enrutamiento al rango reservado para la compatibilidad con ipv4 como lo describe Ben Jencks.
korkman

eso no me concierne en absoluto. es para fines de prueba; está en mi máquina local; No afecta a nadie más que a mí mismo.
jcomeau_ictx

1
@jcomeau_ictx Sea o no le preocupa, que podría referirse a cualquier persona que utilice su respuesta, porque entonces afectará a ellos .
mtraceur

podría, pero posiblemente no hasta que se asigne el rango ipv4 0/8. de todos modos, arreglaré mi respuesta.
jcomeau_ictx

hubiera sido malo si hubiera usado / 96, pero usé / 104. de todos modos, edité la respuesta para usar :: 127.0.0.0/104, el rango de bucle invertido.
jcomeau_ictx

2

Recomiendo usar direcciones RFC 4193 para esto. RFC 4193 le permite construir su propio / 48 para uso local tomando el valor de byte fdseguido de 5 bytes aleatorios . Se le permite poner cualquier cosa que considere adecuada después de los primeros 48 bits, por lo que si desea un / 64 puede tomar fdseguido de 7 bytes aleatorios como en este ejemplo para sistemas Linux:

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

El uso de RFC 4193 tiene la ventaja en comparación con las respuestas anteriores de que no está violando ningún RFC al hacerlo y que las direcciones se pueden usar sin un identificador de interfaz.

Cada uno de los rangos mencionados en las respuestas anteriores está utilizando rangos reservados para diferentes propósitos o direcciones locales de enlace que requieren un identificador de interfaz cada vez que se utilizan.

Existe un borrador caducado que sugiere que el rango 1::/32se asigna para direcciones de bucle invertido adicionales como las que está solicitando. Sin embargo, dado que ese borrador expiró hace años y no se realizó tal asignación, no puede usarlo 1::/32para esto.


Ahora he escrito una pequeña herramienta de línea de comandos para generar prefijos compatibles con RFC 4193: v6tools.kasperd.dk/rfc4193
kasperd

0

El uso de direccionamiento local de enlace parece ser la única opción válida. Lo que la mayoría de las sugerencias ignoran aquí es el hecho de que el prefijo IPv6 declara el alcance , y no quisiera que mi direccionamiento presumiblemente privado tenga un alcance global.

Entonces para 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

Y especifique la interfaz al referirse a tales direcciones. Prueba con netcat:

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

Verificación del alcance correcto:

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

Aún así, no parece muy elegante tener que agregar cada IP para poder unirse a ella. Con 127.0.0.0/8, puede enlazar a cualquier dirección sin asignarlas previamente.


No, ULA es una forma válida de direccionamiento local del sitio. No se enrutará de forma predeterminada en Internet. Sin embargo, puede enrutarlo localmente. Cada subred en un sitio puede tener un prefijo privado razonablemente único a nivel mundial , independiente del ISP.
John Mahowald

Y el sitio local NO es el host local. Ese es mi punto :-)
korkman

0

Hay un RFC proporsal llamado A Larger Loopback Prefix para IPv6 , que propone su uso 1::/32como red localhost. Sin embargo, la propuesta no fue aprobada y ya expiró en 2013.


Esto ya se mencionó en la respuesta que escribí el año pasado sobre esta misma pregunta.
Kasperd

@kaspered Oh, sí, tiene razón, lo siento, no se dio cuenta, ya que la respuesta incluye de hecho dos respuestas y comienza con la otra.
F.Raab

Realmente no consideré que el borrador vencido fuera una respuesta porque nunca se convirtió en un estándar. Lo anoté debajo de mi respuesta porque es información de fondo relevante y proporciona un contexto sobre qué intento ha sido estandarizar en un rango para ese propósito particular.
kasperd
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.