Por que meu roteador teria endereços MAC diferentes para transações IP e IPv6?

5

Hoje eu estava usando o tcpdump e notei que meu computador estava tendo tráfego IPv6 com um endereço MAC específico que eu não consegui encontrar com um IP usando nmap ou arping. Depois de olhar os logs do tcpdump um pouco mais de perto, descobri que era outro endereço MAC que meu roteador estava usando, mas exclusivamente para tráfego IPv6.

22:49:01.936830 90:0d:cb:ff:31:91 (oui Unknown) > 33:33:00:00:00:01 (oui Unknown), ethertype IPv6 (0x86dd), length 158: fe80::920d:cbff:feff:3191 > ip6-allnodes: ICMP6, router advertisement, length 104

Por que um roteador oferece um endereço MAC diferente para o IPv6?

    
por Conor Patrick 04.06.2014 / 04:51

1 resposta

10

É a consequência de uma preocupação de privacidade / segurança. Em IPv6, sob Configuração automática de endereço sem estados ADDRCONF, um nó gera seu próprio endereço público sem necessidade de um servidor DHCP. Os 64 bits inferiores desse endereço são gerados a partir de um identificador IEEE, quando disponível, que é o equivalente do endereço MAC da camada 2. Se fosse essa a história toda, seria possível acompanhar a localização e a comunicação de qualquer dispositivo móvel por meio dos 64 bits inferiores de um endereço IPv6, empregando técnicas convencionais de mineração de dados.

É por isso que perguntei se você está vendo isso em um laptop.

Esta preocupação de privacidade / segurança é abordada por RFC 3041 e RFC4941 , que descreve duas estratégias para gerar um identificador de interface aleatório (na presença ou ausência de armazenamento permanente).

Você pode controlar esse recurso no Linux e no Mac com os seguintes controles: no Linux,

sysctl net.ipv6.conf.all.use_tempaddr=2
sysctl net.ipv6.conf.default.use_tempaddr=2
sysctl net.ipv6.conf.eth0.use_tempaddr=2

e assim por diante, no Mac

sysctl -w net.inet6.ip6.use_tempaddr=1

A vantagem deste esquema é que ele não apenas oculta sua identificação de hardware, mas também altera a identificação (aleatória) com bastante frequência e automaticamente.

Para mais informações sobre Endereçamento de Privacidade na maioria dos sistemas operacionais, pode-se ler   esta excelente página de PSU .

EDITAR:

alguns sistemas, como o Arch Linux, já mudaram para uma nova configuração para o sysctl. Nesse caso, você pode realizar a configuração acima alterando, no arquivo /etc/sysctl.d/40-ipv6.conf, as seguintes entradas para estes valores:

 net.ipv6.conf.all.use_tempaddr = 2
 net.ipv6.conf.default.use_tempaddr = 2
 net.ipv6.conf.eth0.use_tempaddr = 2

EDIT 2:

@slubman corretamente aponta que em Linuxes, a opção correta para usar é 2 , não 1 (que é o que eu tenho no meu Debian), porque 1 permite a geração de endereços de privacidade, mas mantém o Autoconf como preferir.

    
por 04.06.2014 / 07:56