Cómo comprobar si IPv6 está habilitado en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderá cómo verificar si IPv6 está habilitado y configurado en su sistema Linux. Explorará diferentes métodos para verificar el estado y la configuración de IPv6.

Específicamente, utilizará el comando ip addr para inspeccionar las direcciones IPv6 configuradas, examinará el directorio /proc/sys/net/ipv6 para comprobar el estado de IPv6 del kernel y utilizará el comando sysctl para ver los parámetros detallados de la red IPv6. Estos pasos le brindarán una comprensión integral de la configuración de IPv6 de su sistema.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/RemoteAccessandNetworkingGroup(["Remote Access and Networking"]) linux/BasicFileOperationsGroup -.-> linux/ls("Content Listing") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/RemoteAccessandNetworkingGroup -.-> linux/ifconfig("Network Configuring") linux/RemoteAccessandNetworkingGroup -.-> linux/netstat("Network Monitoring") linux/RemoteAccessandNetworkingGroup -.-> linux/ip("IP Managing") subgraph Lab Skills linux/ls -.-> lab-558791{{"Cómo comprobar si IPv6 está habilitado en Linux"}} linux/cat -.-> lab-558791{{"Cómo comprobar si IPv6 está habilitado en Linux"}} linux/ifconfig -.-> lab-558791{{"Cómo comprobar si IPv6 está habilitado en Linux"}} linux/netstat -.-> lab-558791{{"Cómo comprobar si IPv6 está habilitado en Linux"}} linux/ip -.-> lab-558791{{"Cómo comprobar si IPv6 está habilitado en Linux"}} end

Verificar direcciones IPv6 con ip addr

En este paso, aprenderá cómo verificar las direcciones IPv6 configuradas en su sistema utilizando el comando ip addr. IPv6 es la última versión del Protocolo de Internet, diseñada para reemplazar a IPv4. Ofrece un espacio de direcciones mucho más amplio, entre otras mejoras.

El comando ip es una herramienta poderosa en Linux para gestionar interfaces de red, enrutamiento y túneles. El subcomando addr se utiliza para ver y manipular direcciones de red.

Abra la terminal si aún no lo ha hecho. Puede hacerlo haciendo clic en el icono de Xfce Terminal en el lado izquierdo del escritorio.

Ahora, escriba el siguiente comando y presione Enter:

ip addr

Este comando mostrará información detallada sobre todas las interfaces de red de su sistema, incluyendo tanto direcciones IPv4 como IPv6.

Busque secciones que comiencen con un número seguido de dos puntos y un nombre de interfaz (como 1: lo: o 2: eth0:). Dentro de cada sección, busque líneas que comiencen con inet6. Estas líneas muestran las direcciones IPv6 asignadas a esa interfaz.

Por ejemplo, es posible que vea una salida similar a esta (la salida puede variar según la configuración de su sistema):

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether 02:42:ac:11:00:02 brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.2/16 brd 172.17.255.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::42:acff:fe11:2/64 scope link
       valid_lft forever preferred_lft forever

En este ejemplo:

  • lo es la interfaz de bucle interno (loopback), normalmente utilizada para la comunicación dentro de la misma máquina. Tiene la dirección IPv6 ::1/128.
  • eth0 es una interfaz Ethernet estándar. Tiene la dirección IPv6 fe80::42:acff:fe11:2/64.

Las partes /128 y /64 indican la longitud del prefijo de red, similar a la máscara de subred en IPv4.

Al utilizar ip addr, puede ver rápidamente qué interfaces tienen configuradas direcciones IPv6 y cuáles son esas direcciones.

Haga clic en Continuar para pasar al siguiente paso.

Verificar el estado de IPv6 en /proc/sys/net/ipv6

En este paso, explorará el sistema de archivos /proc para verificar el estado de IPv6 de su sistema. El sistema de archivos /proc es un sistema de archivos virtual que proporciona información sobre procesos y otra información del sistema. Es un excelente lugar para encontrar detalles sobre el kernel de Linux en ejecución.

Específicamente, examinaremos los archivos dentro del directorio /proc/sys/net/ipv6/. Estos archivos contienen parámetros que controlan el comportamiento de la pila de protocolos IPv6.

Para ver el contenido del directorio /proc/sys/net/ipv6/, puede utilizar el comando ls:

ls /proc/sys/net/ipv6/

Verá una lista de archivos y directorios. Cada archivo representa un parámetro específico del kernel de IPv6.

anycast_src_interval  bindv6only  conf  flowlabel_reflect  flowlabel_state  icmp  ip6frag_high_thresh  ip6frag_low_thresh  ip6frag_secret_interval  ip6frag_time  neigh  route  tcp_metrics_hash_size  tcp_metrics_info  tcp_metrics_purge_interval  tcp_metrics_reg_interval  tcp_metrics_req_interval  tcp_metrics_slack  tcp_metrics_sync_interval  tcp_metrics_timeout  udp_metrics_hash_size  udp_metrics_info  udp_metrics_purge_interval  udp_metrics_reg_interval  udp_metrics_req_interval  udp_metrics_slack  udp_metrics_sync_interval  udp_metrics_timeout

Un archivo importante es disable. Este archivo indica si IPv6 está deshabilitado (1) o habilitado (0) a nivel de sistema.

Para ver el contenido del archivo disable, puede utilizar el comando cat:

cat /proc/sys/net/ipv6/disable

La salida será 0 o 1.

0
  • Si la salida es 0, IPv6 está habilitado.
  • Si la salida es 1, IPv6 está deshabilitado.

Otro archivo útil es conf. Este es un directorio que contiene archivos de configuración para cada interfaz de red y un directorio default para la configuración predeterminada.

Veamos el contenido del directorio conf:

ls /proc/sys/net/ipv6/conf/

Verá directorios para cada interfaz (como all, default, eth0, lo).

all  default  eth0  lo

Luego, puede verificar el estado de IPv6 de una interfaz específica, como eth0, mirando el archivo disable_ipv6 dentro de su directorio:

cat /proc/sys/net/ipv6/conf/eth0/disable_ipv6

Este archivo también contiene 0 (habilitado) o 1 (deshabilitado) para esa interfaz específica.

0

Explorar los archivos en /proc/sys/net/ipv6/ proporciona una vista de bajo nivel de la configuración de IPv6 de su sistema.

Haga clic en Continuar para pasar al siguiente paso.

Inspeccionar la configuración de IPv6 con sysctl net.ipv6

En este paso, utilizará el comando sysctl para inspeccionar los parámetros del kernel de IPv6. El comando sysctl se utiliza para modificar los parámetros del kernel en tiempo de ejecución. Proporciona una forma más amigable para el usuario de ver y cambiar los mismos parámetros que se encuentran en el sistema de archivos /proc/sys/ que exploró en el paso anterior.

Para ver todos los parámetros del kernel relacionados con IPv6, puede utilizar sysctl con el prefijo net.ipv6.

Escriba el siguiente comando en la terminal y presione Enter:

sysctl net.ipv6

Este comando mostrará una larga lista de parámetros y sus valores actuales. Estos parámetros controlan varios aspectos del comportamiento de la red IPv6, como la configuración de direcciones, el enrutamiento y la seguridad.

net.ipv6.conf.all.accept_dad = 1
net.ipv6.conf.all.accept_ra = 1
net.ipv6.conf.all.accept_redirects = 1
net.ipv6.conf.all.autoconf = 1
net.ipv6.conf.all.dad_transmits = 1
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.all.force_tmo = 0
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.all.hop_limit = 64
net.ipv6.conf.all.keep_addr_on_down = 0
net.ipv6.conf.all.max_desync_factor = 600
net.ipv6.conf.all.mc_forwarding = 0
net.ipv6.conf.all.mtu = 1280
net.ipv6.conf.all.proxy_ndp = 0
net.ipv6.conf.all.regen_max_retry_delay = 1
net.ipv6.conf.all.regen_retry_delay = 1
net.ipv6.conf.all.router_solicit_delay = 1
net.ipv6.conf.all.router_solicit_interval = 600
net.ipv6.conf.all.router_solicit_max_interval = 1200
net.ipv6.conf.all.router_solicits = -1
net.ipv6.conf.all.rtr_probe_interval = 600
net.ipv6.conf.all.suppress_frag_ndisc = 1
net.ipv6.conf.all.temp_prefer_mpatemp = 1
net.ipv6.conf.all.temp_valid_lifetime = 86400
net.ipv6.conf.all.temp_preferred_lifetime = 14400
net.ipv6.conf.all.use_deprecated = 0
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.all.optimistic_dad = 0
net.ipv6.conf.all.accept_ra_defrtr = 1
net.ipv6.conf.all.accept_ra_pinfo = 1
net.ipv6.conf.all.accept_ra_rtr_pref = 1
net.ipv6.conf.all.accept_ra_mtu = 1
net.ipv6.conf.all.ignore_routes_with_linkdown = 0
net.ipv6.conf.all.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.all.drop_multicast_in_l2_multicast = 0
net.ipv6.conf.all.keep_addr_on_down = 0
net.ipv6.conf.default.accept_dad = 1
net.ipv6.conf.default.accept_ra = 1
net.ipv6.conf.default.accept_redirects = 1
net.ipv6.conf.default.autoconf = 1
net.ipv6.conf.default.dad_transmits = 1
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.default.force_tmo = 0
net.ipv6.conf.default.forwarding = 0
net.ipv6.conf.default.hop_limit = 64
net.ipv6.conf.default.keep_addr_on_down = 0
net.ipv6.conf.default.max_desync_factor = 600
net.ipv6.conf.default.mc_forwarding = 0
net.ipv6.conf.default.mtu = 1280
net.ipv6.conf.default.proxy_ndp = 0
net.ipv6.conf.default.regen_max_retry_delay = 1
net.ipv6.conf.default.regen_retry_delay = 1
net.ipv6.conf.default.router_solicit_delay = 1
net.ipv6.conf.default.router_solicit_interval = 600
net.ipv6.conf.default.router_solicit_max_interval = 1200
net.ipv6.conf.default.router_solicits = -1
net.ipv6.conf.default.rtr_probe_interval = 600
net.ipv6.conf.default.suppress_frag_ndisc = 1
net.ipv6.conf.default.temp_prefer_mpatemp = 1
net.ipv6.conf.default.temp_valid_lifetime = 86400
net.ipv6.conf.default.temp_preferred_lifetime = 14400
net.ipv6.conf.default.use_deprecated = 0
net.ipv6.conf.default.use_tempaddr = 0
net.ipv6.conf.default.optimistic_dad = 0
net.ipv6.conf.default.accept_ra_defrtr = 1
net.ipv6.conf.default.accept_ra_pinfo = 1
net.ipv6.conf.default.accept_ra_rtr_pref = 1
net.ipv6.conf.default.accept_ra_mtu = 1
net.ipv6.conf.default.ignore_routes_with_linkdown = 0
net.ipv6.conf.default.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.default.drop_multicast_in_l2_multicast = 0
net.ipv6.conf.default.keep_addr_on_down = 0
net.ipv6.conf.eth0.accept_dad = 1
net.ipv6.conf.eth0.accept_ra = 1
net.ipv6.conf.eth0.accept_redirects = 1
net.ipv6.conf.eth0.autoconf = 1
net.ipv6.conf.eth0.dad_transmits = 1
net.ipv6.conf.eth0.disable_ipv6 = 0
net.ipv6.conf.eth0.force_tmo = 0
net.ipv6.conf.eth0.forwarding = 0
net.ipv6.conf.eth0.hop_limit = 64
net.ipv6.conf.eth0.keep_addr_on_down = 0
net.ipv6.conf.eth0.max_desync_factor = 600
net.ipv6.conf.eth0.mc_forwarding = 0
net.ipv6.conf.eth0.mtu = 1280
net.ipv6.conf.eth0.proxy_ndp = 0
net.ipv6.conf.eth0.regen_max_retry_delay = 1
net.ipv6.conf.eth0.regen_retry_delay = 1
net.ipv6.conf.eth0.router_solicit_delay = 1
net.ipv6.conf.eth0.router_solicit_interval = 600
net.ipv6.conf.eth0.router_solicit_max_interval = 1200
net.ipv6.conf.eth0.router_solicits = -1
net.ipv6.conf.eth0.rtr_probe_interval = 600
net.ipv6.conf.eth0.suppress_frag_ndisc = 1
net.ipv6.conf.eth0.temp_prefer_mpatemp = 1
net.ipv6.conf.eth0.temp_valid_lifetime = 86400
net.ipv6.conf.eth0.temp_preferred_lifetime = 14400
net.ipv6.conf.eth0.use_deprecated = 0
net.ipv6.conf.eth0.use_tempaddr = 0
net.ipv6.conf.eth0.optimistic_dad = 0
net.ipv6.conf.eth0.accept_ra_defrtr = 1
net.ipv6.conf.eth0.accept_ra_pinfo = 1
net.ipv6.conf.eth0.accept_ra_rtr_pref = 1
net.ipv6.conf.eth0.accept_ra_mtu = 1
net.ipv6.conf.eth0.ignore_routes_with_linkdown = 0
net.ipv6.conf.eth0.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.eth0.drop_multicast_in_l2_multicast = 0
net.ipv6.conf.eth0.keep_addr_on_down = 0
net.ipv6.conf.lo.accept_dad = 1
net.ipv6.conf.lo.accept_ra = 1
net.ipv6.conf.lo.accept_redirects = 1
net.ipv6.conf.lo.autoconf = 1
net.ipv6.conf.lo.dad_transmits = 1
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.lo.force_tmo = 0
net.ipv6.conf.lo.forwarding = 0
net.ipv6.conf.lo.hop_limit = 64
net.ipv6.conf.lo.keep_addr_on_down = 0
net.ipv6.conf.lo.max_desync_factor = 600
net.ipv6.conf.lo.mc_forwarding = 0
net.ipv6.conf.lo.mtu = 65536
net.ipv6.conf.lo.proxy_ndp = 0
net.ipv6.conf.lo.regen_max_retry_delay = 1
net.ipv6.conf.lo.regen_retry_delay = 1
net.ipv6.conf.lo.router_solicit_delay = 1
net.ipv6.conf.lo.router_solicit_interval = 600
net.ipv6.conf.lo.router_solicit_max_interval = 1200
net.ipv6.conf.lo.router_solicits = -1
net.ipv6.conf.lo.rtr_probe_interval = 600
net.ipv6.conf.lo.suppress_frag_ndisc = 1
net.ipv6.conf.lo.temp_prefer_mpatemp = 1
net.ipv6.conf.lo.temp_valid_lifetime = 86400
net.ipv6.conf.lo.temp_preferred_lifetime = 14400
net.ipv6.conf.lo.use_deprecated = 0
net.ipv6.conf.lo.use_tempaddr = 0
net.ipv6.conf.lo.optimistic_dad = 0
net.ipv6.conf.lo.accept_ra_defrtr = 1
net.ipv6.conf.lo.accept_ra_pinfo = 1
net.ipv6.conf.lo.accept_ra_rtr_pref = 1
net.ipv6.conf.lo.accept_ra_mtu = 1
net.ipv6.conf.lo.ignore_routes_with_linkdown = 0
net.ipv6.conf.lo.drop_unicast_in_l2_multicast = 0
net.ipv6.conf.lo.drop_multicast_in_l2_multicast = 0
net.ipv6.conf.lo.keep_addr_on_down = 0
net.ipv6.flowlabel_reflect = 0
net.ipv6.flowlabel_state = 0
net.ipv6.ip6frag_high_thresh = 4194304
net.ipv6.ip6frag_low_thresh = 3145728
net.ipv6.ip6frag_secret_interval = 0
net.ipv6.ip6frag_time = 60
net.ipv6.tcp_metrics_hash_size = 512
net.ipv6.tcp_metrics_info = 1
net.ipv6.tcp_metrics_purge_interval = 600
net.ipv6.tcp_metrics_reg_interval = 1800
net.ipv6.tcp_metrics_req_interval = 300
net.ipv6.tcp_metrics_slack = 10
net.ipv6.tcp_metrics_sync_interval = 300
net.ipv6.tcp_metrics_timeout = 1800
net.ipv6.udp_metrics_hash_size = 512
net.ipv6.udp_metrics_info = 1
net.ipv6.udp_metrics_purge_interval = 600
net.ipv6.udp_metrics_reg_interval = 1800
net.ipv6.udp_metrics_req_interval = 300
net.ipv6.udp_metrics_slack = 10
net.ipv6.udp_metrics_sync_interval = 300
net.ipv6.udp_metrics_timeout = 1800

También puede inspeccionar un parámetro específico. Por ejemplo, para verificar el estado de deshabilitación de IPv6 a nivel de sistema utilizando sysctl, puede utilizar:

sysctl net.ipv6.conf.all.disable_ipv6

La salida mostrará el nombre del parámetro y su valor:

net.ipv6.conf.all.disable_ipv6 = 0

Esto confirma que IPv6 está habilitado a nivel de sistema, lo que coincide con lo que vio en el sistema de archivos /proc.

El comando sysctl es una forma conveniente de ver y modificar los parámetros del kernel sin interactuar directamente con los archivos en /proc/sys/.

Haga clic en Continuar para completar este laboratorio.

Resumen

En este laboratorio, aprendiste cómo verificar si IPv6 está habilitado en un sistema Linux examinando la configuración de red. Comenzaste utilizando el comando ip addr para mostrar los detalles de las interfaces de red e identificar las direcciones IPv6 asignadas. Este comando proporciona una visión integral de las direcciones IPv4 e IPv6 configuradas en las interfaces de red del sistema.

Luego, exploraste el directorio /proc/sys/net/ipv6 para verificar el estado de IPv6 del kernel inspeccionando archivos específicos dentro de este sistema de archivos virtual. Finalmente, utilizaste el comando sysctl net.ipv6 para inspeccionar varios parámetros del kernel relacionados con IPv6, lo que ofrece una comprensión más profunda de la configuración y los ajustes de IPv6 del sistema.