Como verificar se o IPv6 está habilitado no Linux

LinuxBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá como verificar se o IPv6 está habilitado e configurado em seu sistema Linux. Você explorará diferentes métodos para verificar o status e as configurações do IPv6.

Especificamente, você usará o comando ip addr para inspecionar os endereços IPv6 configurados, examinar o diretório /proc/sys/net/ipv6 para verificar o status do IPv6 do kernel e utilizar o comando sysctl para visualizar os parâmetros de rede IPv6 detalhados. Essas etapas fornecerão uma compreensão abrangente da configuração IPv6 do seu sistema.

Verificar endereços IPv6 com ip addr

Nesta etapa, você aprenderá como verificar os endereços IPv6 configurados em seu sistema usando o comando ip addr. IPv6 é a versão mais recente do Protocolo de Internet (Internet Protocol), projetada para substituir o IPv4. Ele fornece um espaço de endereçamento muito maior, entre outras melhorias.

O comando ip é uma ferramenta poderosa no Linux para gerenciar interfaces de rede, roteamento e túneis. O subcomando addr é usado para visualizar e manipular endereços de rede.

Abra o terminal, caso ainda não o tenha feito. Você pode fazer isso clicando no ícone Xfce Terminal no lado esquerdo da área de trabalho.

Agora, digite o seguinte comando e pressione Enter:

ip addr

Este comando exibirá informações detalhadas sobre todas as interfaces de rede em seu sistema, incluindo endereços IPv4 e IPv6.

Procure por seções que começam com um número seguido por dois pontos e um nome de interface (como 1: lo: ou 2: eth0:). Dentro de cada seção, procure por linhas que começam com inet6. Essas linhas mostram os endereços IPv6 atribuídos a essa interface.

Por exemplo, você pode ver uma saída semelhante a esta (a saída pode variar dependendo da configuração do seu 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

Neste exemplo:

  • lo é a interface de loopback, normalmente usada para comunicação dentro da mesma máquina. Ele tem o endereço IPv6 ::1/128.
  • eth0 é uma interface Ethernet padrão. Ele tem o endereço IPv6 fe80::42:acff:fe11:2/64.

As partes /128 e /64 indicam o comprimento do prefixo de rede, semelhante à máscara de sub-rede no IPv4.

Ao usar ip addr, você pode ver rapidamente quais interfaces têm endereços IPv6 configurados e quais são esses endereços.

Clique em Continuar para prosseguir para a próxima etapa.

Verificar o status do IPv6 em /proc/sys/net/ipv6

Nesta etapa, você explorará o sistema de arquivos /proc para verificar o status do IPv6 do seu sistema. O sistema de arquivos /proc é um sistema de arquivos virtual que fornece informações sobre processos e outras informações do sistema. É um ótimo lugar para encontrar detalhes sobre o seu kernel Linux em execução.

Especificamente, analisaremos os arquivos dentro do diretório /proc/sys/net/ipv6/. Esses arquivos contêm parâmetros que controlam o comportamento da pilha de protocolos IPv6.

Para visualizar o conteúdo do diretório /proc/sys/net/ipv6/, você pode usar o comando ls:

ls /proc/sys/net/ipv6/

Você verá uma lista de arquivos e diretórios. Cada arquivo representa um parâmetro específico do kernel 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

Um arquivo importante é disable. Este arquivo indica se o IPv6 está desabilitado (1) ou habilitado (0) em todo o sistema.

Para visualizar o conteúdo do arquivo disable, você pode usar o comando cat:

cat /proc/sys/net/ipv6/disable

A saída será 0 ou 1.

0
  • Se a saída for 0, o IPv6 está habilitado.
  • Se a saída for 1, o IPv6 está desabilitado.

Outro arquivo útil é conf. Este é um diretório que contém arquivos de configuração para cada interface de rede e um diretório default para configurações padrão.

Vamos analisar o conteúdo do diretório conf:

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

Você verá diretórios para cada interface (como all, default, eth0, lo).

all  default  eth0  lo

Você pode então verificar o status do IPv6 para uma interface específica, como eth0, observando o arquivo disable_ipv6 dentro de seu diretório:

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

Este arquivo também contém 0 (habilitado) ou 1 (desabilitado) para essa interface específica.

0

Explorar os arquivos em /proc/sys/net/ipv6/ fornece uma visão de baixo nível da configuração IPv6 do seu sistema.

Clique em Continuar para passar para a próxima etapa.

Inspecionar as configurações IPv6 com sysctl net.ipv6

Nesta etapa, você usará o comando sysctl para inspecionar os parâmetros do kernel IPv6. O comando sysctl é usado para modificar os parâmetros do kernel em tempo de execução. Ele fornece uma maneira mais amigável de visualizar e alterar os mesmos parâmetros encontrados no sistema de arquivos /proc/sys/ que você explorou na etapa anterior.

Para visualizar todos os parâmetros do kernel relacionados ao IPv6, você pode usar sysctl com o prefixo net.ipv6.

Digite o seguinte comando no terminal e pressione Enter:

sysctl net.ipv6

Este comando exibirá uma longa lista de parâmetros e seus valores atuais. Esses parâmetros controlam vários aspectos do comportamento da rede IPv6, como configuração de endereço, roteamento e segurança.

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

Você também pode inspecionar um parâmetro específico. Por exemplo, para verificar o status de desativação do IPv6 em todo o sistema usando sysctl, você pode usar:

sysctl net.ipv6.conf.all.disable_ipv6

A saída mostrará o nome do parâmetro e seu valor:

net.ipv6.conf.all.disable_ipv6 = 0

Isso confirma que o IPv6 está habilitado em todo o sistema, correspondendo ao que você viu no sistema de arquivos /proc.

O comando sysctl é uma maneira conveniente de visualizar e modificar os parâmetros do kernel sem interagir diretamente com os arquivos em /proc/sys/.

Clique em Continuar para concluir este laboratório.

Resumo

Neste laboratório, você aprendeu como verificar se o IPv6 está habilitado em um sistema Linux, examinando as configurações de rede. Você começou usando o comando ip addr para exibir os detalhes da interface de rede e identificar os endereços IPv6 atribuídos. Este comando fornece uma visão abrangente dos endereços IPv4 e IPv6 configurados nas interfaces de rede do sistema.

Em seguida, você explorou o diretório /proc/sys/net/ipv6 para verificar o status do IPv6 do kernel, inspecionando arquivos específicos dentro deste sistema de arquivos virtual. Por fim, você utilizou o comando sysctl net.ipv6 para inspecionar vários parâmetros do kernel relacionados ao IPv6, oferecendo uma visão mais profunda das configurações e da configuração do IPv6 do sistema.