
Tengo un problema típico de "a puede hacer ping a b pero b no puede hacer ping a a". Yo uso IPv6 para el ping. Lo que es especial en mi caso es que "b" puede hacer ping a "a" inmediatamente después de que "b" haga ping a "a". Después de algunas pruebas, me di cuenta de que todo funciona bien si especifico la interfaz de red que se debe usar con "-I eth0" (sí, dos interfaces en la máquina Linux están en la misma subred). Todavía me gustaría entender qué cambia una vez que la máquina "b" vuelve a hacer ping y agradecería algún conocimiento experto. Hacer ping con IPv4 funciona bien en ambas direcciones. Si detengo el ping desde "b", "a" aún puede hacer ping a "b", hasta que lo detenga con Ctrl-C. Al intentarlo nuevamente, falla incluso si lo intento inmediatamente, por lo que creo que no es un problema de actualización de caché. Alguna información:
Máquina "a"
SO: Windows (se agregó "ICMPv6" en excepciones para firewall)
Dirección IPv6: fe80::21c:1cff:fe00:3de3
Máquina "b":
Sistema operativo: Linux Busybox
Dirección IPv6: fe80::21c:1cff:fe00:3de4
Probé los binarios "ping" y "ping6"
Respuesta1
Con
direcciones IPv6 de enlace local
siempre es necesario especificar la interfaz. La razón es que se utiliza el mismo bloque de direcciones (prefijo) en todas las redes: la dirección fe80::21c:1cff:fe00:3de3
sólo es única en un enlace (interfaz) específico. En un enlace diferente, es posible que se utilice la misma dirección para un dispositivo completamente diferente.
Debido a esto, las direcciones locales de enlace no suelen ser muy útiles para el uso manual, ya que es necesario especificar la interfaz cada vez. En la otra computadora, el nombre de la interfaz puede ser diferente, por lo que no puedes simplemente enviarle a alguien un enlace con una dirección, ya que no sabes cuál es el nombre de la interfaz para ese enlace de su lado.
Para evitar especificar la interfaz, necesitaría direcciones IPv6 "reales" con un alcance global que pueda enrutar.
Podrías, por ejemplo, utilizar https://cd34.com/rfc4193/, donde ingresa una dirección MAC y hará los cálculos y devolverá un bloque de direcciones IPv6 para usar.
En su caso, después de que una computadora hizo ping a la otra, su dirección IPv6 y su interfazeran conocidos por la computadora de destino, por lo que podía devolver el ping.