El enrutador de mi red entrega un prefijo IPv6 asignado por mi ISP. Este prefijo es dinámico pero "bastante pegajoso".
Me gustaría que mis máquinas recojan automáticamente el prefijo anunciado en los RA, pero lo combinen con una parte local especificada por el usuario en lugar de generar una al azar o basada en la dirección MAC. ¿Hay alguna manera fácil de hacer eso?
Respuestas:
Hay dos maneras de hacer esto. Uno es el camino fácil y el otro es el difícil.
La manera fácil es ejecutar un servidor DHCPv6 en su red y asignar direcciones de host a cada dispositivo usted mismo. O deje que el servidor elija la parte del host; Los servidores DHCPv6 que he visto mantendrán la misma parte de host incluso si cambia el prefijo.
La forma difícil es usarlo
ip token
para establecer identificadores de interfaz tokenizados. Esto se describe como:La razón por la que es difícil es que, si bien Linux incluye esta funcionalidad, no sé que la distribución de Linux incluye soporte para hacer que dicha configuración sea persistente y aplicarla en el momento del arranque, como lo hacen para las direcciones configuradas manuales o DHCP. Por lo tanto, probablemente no va a funcionar muy bien para usted, hasta que alguna distribución lo haga.Tenga en cuenta que ahora es posible configurar tokens IPv6 en NetworkManager y systemd-networkd; Las respuestas más recientes tienen instrucciones de configuración específicas.Finalmente, si su ISP ocasionalmente cambia su prefijo, considere usar direcciones locales únicas dentro de su red. De esta manera, todos sus dispositivos siempre tendrán una dirección que nunca cambiará, con la que puedan comunicarse entre sí. Algunos enrutadores domésticos / SOHO compatibles con IPv6 (como OpenWrt) tienen una opción para habilitar ULA en toda la red doméstica; Si hay varios enrutadores en el hogar, esto debería habilitarse en el enrutador que se conecta al ISP.
fuente
Michael hizo un resumen muy bueno y el consejo reciente de plugwash fue lo mejor que pude encontrar después de buscar durante varias horas una solución CentOS 7 / RHEL (también systemd y administrador de red). Después de acostumbrarme a nmcli (principalmente seguía usando ifcfg e ip), pude aplicarlo con éxito.
Pero profundizar de acuerdo con https://developer.gnome.org/NetworkManager/stable/settings-ipv6.html NetworkManager admite directamente identificadores de interfaz tokenizados IPv6 como una propiedad (desde la versión 1.4 de agosto de 2016 http://news.softpedia.com/ news / networkmanager-1-4-add-support-for-setting-ipv6-tokenized-interface-identificators-507601.shtml ).
Por lo tanto, no necesita establecer la configuración de IPv6 del administrador de red para ignorarla, pero debe establecerla en
que escribirá
IPV6_TOKEN=::2
en / etc / sysconfig / network-scripts / ifcfg-eth0 para sobrevivir a un reinicio. Para aplicar esto inmediatamente, reinicie la interfazfuente
Gracias a Michael por confirmar que Linux era compatible con la función y apuntó al comando de bajo nivel. Esta respuesta cubre cómo hacer que funcione en la práctica en un escritorio de Debian stretch (con systemd y network-manager).
Primero edite la conexión en el administrador de red y establezca la configuración de IPv6 para ignorar.
Ahora cree un archivo /etc/NetworkManager/dispatcher.d/pre-up.d/iptoken. El archivo debe ser propiedad de root, permisos 755 y con los siguientes contenidos.
Reemplace eth0 con el dispositivo que desee y :: 2 con el sufijo que desee.
fuente
En Linux puedes usar
systemd-network
.Simplemente cree un
.network
archivo en/etc/systemd/network/somename.network
:en lugar de
e*
hacer coincidir todas las interfaces que comienzan cone
, puede ingresar el nombre completo de la interfaz. Esto habilita DHCP {v4, v6} y se usa::1
como sufijo. Puede elegir cualquier dirección IPv6, pero los primeros 64 bits deben establecerse en cero.Después de esto habilite e inicie el
systemd-networkd.service
.fuente