Sub-redes IPv6
Um endereço unicast IPv6 normal é dividido em duas partes: o prefixo de rede e a ID da interface. O prefixo de rede identifica a sub-rede. Não existe a possibilidade de duas interfaces de rede na mesma sub-rede terem a mesma ID de interface; a ID de interface identifica as ameaças de uma interface particular na sub-rede.
Diferentemente de IPv4, IPv6 tem uma máscara de sub-rede padrão que é usada para praticamente todos os endereços normais, /64. Nesse caso, metade do endereço de 128 bits é o prefixo da rede, e a outra metade é a ID de interface. Com 64 bits para endereços de host, uma única sub-rede poderia teoricamente conter 2^64 hosts.
Normalmente, o fornecedor de rede aloca um prefixo mais curto para uma organização, como /48. Esse prefixo deixa o restante da parte da rede para atribuição de sub-redes (até o comprimento máximo de /64) a partir do prefixo alocado. Por exemplo, quando um prefixo de alocação /48 é atribuído, 16 bits estão disponíveis para até 65.536 sub-redes.
Partes do endereço IPv6 e sub-rede:
Endereços e redes IPv6 comuns:
A tabela anterior lista as alocações de endereços de rede que são reservadas para fins específicos. Essas alocações podem consistir em muitas redes. As redes IPv6 são alocadas a partir de espaços de endereço unicast global e unicast link-local têm uma máscara de rede padrão /64.
Um endereço link-local em IPv6 é um endereço não roteável que o sistema usa somente para se comunicar com outros sistemas no mesmo link de rede. Para garantir que o endereço IP seja exclusivo, o sistema usa um método específico para calcular a ID de interface do endereço link-local.
Nota
Originalmente, a ID de interface do endereço link-local IPv6 foi construída a partir do endereço MAC do dispositivo de rede. A exposição do endereço MAC como parte do endereço IPv6 pode causar alguns problemas de segurança e privacidade, pois possibilita identificar e seguir um computador na rede.
Por padrão, no Red Hat Enterprise Linux 9 o NetworkManager gera uma ID de interface aleatória, mas estável, para a interface, de acordo com o algoritmo na RFC 7217. Esse algoritmo é controlado pela configuração de conexão ipv6.addr-gen-mode, cujo padrão é stable-privacy.
As Extensões de Privacidade IPv6 (RFC 4941) são uma solução diferente para a mesma questão e são controladas por configurações diferentes, que estão desabilitadas por padrão.
O comando ip addr show
para recuperar o endereço IPv6 link-local, como no exemplo a seguir. Adicione a opção -br
apenas para uma breve lista de endereços.
[user@host ~]$ ip addr show dev eth0
3: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
link/ether 52:54:00:01:fa:0a brd ff:ff:ff:ff:ff:ff
inet 10.42.0.1/16 brd 10.42.255.255 scope global noprefixroute eth0
valid_lft forever preferred_lft forever
inet6 fe80::7418:cf98:c742:3681/64 scope link noprefixroute
valid_lft forever preferred_lft forever
Adicione a opção -br
apenas para uma breve lista de endereços IPv4 e IPv6.
[user@host ~]$ ip -br addr show dev eth0
eth0 UP 10.42.0.1/16 fe80::7418:cf98:c742:3681/64
Para operar corretamente, o IPv6 depende do endereço link-local. A interface sempre mantém esse endereço, mesmo quando você atribui um endereço IPv6 roteável manualmente ou com um método automatizado.
Com o multicast, um sistema pode enviar tráfego para um endereço IP especial recebido por vários sistemas. O multicast é diferente do broadcast porque os pacotes de broadcast não são roteáveis e alcançam somente hosts de sub-rede locais. Por outro lado, os pacotes multicast são roteados para hosts específicos que anunciaram uma solicitação para os pacotes multicast endereçados especificamente. Os pacotes multicast podem ser roteados para outras sub-redes se todos os roteadores intermediários forem compatíveis com o encaminhamento de solicitações multicast e roteamento.
O multicast exerce uma função maior no IPv6 do que no IPv4, porque não existe um endereço de broadcast no IPv6. O endereço IPv6 ff02::1 é um endereço multicast chave que é usado como o endereço link-local all-nodes e se comporta como um endereço de broadcast. Fazer ping desse endereço envia o tráfego a todos os nós no link. Os endereços multicast link-scope (que inicial com ff02::/8) precisam ser especificados com um identificador de escopo, assim como um endereço link-local.
[user@host ~]$ ping6 ff02::1%ens3
PING ff02::1%ens3(ff02::1) 56 data bytes
64 bytes from fe80::211:22ff:feaa:bbcc: icmp_seq=1 ttl=64 time=0.072 ms
64 bytes from fe80::200:aaff:fe33:2211: icmp_seq=1 ttl=64 time=102 ms (DUP!)
64 bytes from fe80::bcd:efff:fea1:b2c3: icmp_seq=1 ttl=64 time=103 ms (DUP!)
64 bytes from fe80::211:22ff:feaa:bbcc: icmp_seq=2 ttl=64 time=0.079 ms
...output omitted...