Estoy ejecutando Debian 8 en un vServer. Después de instalar Docker y habilitar IPv6, noté algo extraño. No sé si Docker tiene algo que ver con esto, es solo que noté este problema después de instalarlo.
Mi ruta predeterminada está configurada para caducar después de ca. 1800secs. De hecho, me desvanezco después de este tiempo de espera. Esto es cuando (obviamente) pierdo la conectividad IPv6.
root@wopr:~# ip -6 route
xxxx:yyyy:zzz:xxxx::/64 dev eth0 proto kernel metric 256
fe80::/64 dev eth0 proto kernel metric 256
fe80::/64 dev br-5c1ce68ea951 proto kernel metric 256
fe80::/64 dev br-61f6bbfdbe87 proto kernel metric 256
[a lot more routed for my docker containers]
default via fe80::1 dev eth0 proto ra metric 1024 expires 1259sec hoplimit 64
¿Por qué la ruta está configurada para caducar después de 1800 s? ¿Dónde puedo configurar esto?
[editar 2016-05-14 16:08]
Agregar una ruta predeterminada manualmente parece funcionar bien. Se queda quieto. Pero necesito tener una ruta que no caduque después del arranque.
[editar 2016-05-14 16:13]
La máquina se ejecuta en un host KVM alojado por netcup.de. Está utilizando el controlador virtio, según lo recomendado por mi proveedor.
root@wopr:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback
iface lo inet6 loopback
auto eth0
iface eth0 inet dhcp
iface eth0 inet6 static
address xxxx:yyyy:zzz:xxxx::1
netmask 64
gateway fe80::1
virt-lo que dice:
root@wopr:~# virt-what
kvm
[edit 2016-05-14 15:34]
Parece que me perdí que net.ipv6.conf.default.autoconf
estaba configurado en 1. Ahora agregué un archivo en /etc/sysctl.d para suprimir esto en el arranque:
root@wopr:~# cat /etc/sysctl.d/ipv6.conf
net.ipv6.conf.default.accept_ra=0
net.ipv6.conf.default.autoconf=0
net.ipv6.conf.all.accept_ra=0
net.ipv6.conf.all.autoconf=0
net.ipv6.conf.eth0.accept_ra=0
net.ipv6.conf.eth0.autoconf=0
Respuestas:
Parece que me perdí que net.ipv6.conf.default.autoconf se estableció en 1. Agregar un archivo en /etc/sysctl.d para suprimir esto en el arranque resolvió el problema para mí:
Ahora obtengo una ruta predeterminada que no caducará en el momento del arranque. Problema resuelto. Gracias por señalarme en la dirección correcta, Sander.
fuente
1800 segundos suena como un tiempo de espera predeterminado para un anuncio de enrutador.
Mi primera suposición sería que hay un enrutador Cisco en la red que está configurado
ipv6 nd ra suppress
en la interfaz. En ese modo, el enrutador enviará un RA cuando un host solicite uno con un RS, pero no lo actualiza regularmente. Un host envía un RS al abrir la interfaz, lo que explicaría por qué obtiene una ruta predeterminada después del arranque.Esa configuración es una extraña configuración inútil de Cisco. Un enrutador debe enviar RA cuando se le pregunta + regularmente (el valor predeterminado en Cisco) o no enviarlo (
ipv6 nd ra suppress all
). La configuración a mitad de caminoipv6 nd ra suppress
causa un comportamiento extraño como este y no debe usarse.fuente
accept_ra=0
configurarlo.En realidad, la respuesta marcada es incorrecta. El problema es que la ventana acoplable habilita el reenvío en las interfaces y eso hace que el kernel de Linux ignore los RA en esa interfaz en particular, consulte: https://www.mattb.net.nz/blog/2011/05/12/linux-ignores -ipv6-router-advertments-when-forwarding-is-enabled /
Entonces, la solución correcta en este caso es establecer
accept_ra
a2
:en lugar de deshabilitar completamente el descubrimiento de ruta.
fuente