Configurar:
- Máquina host: macOS, endereço IPv6 - 2002::3/64 (vmnet1)
- Máquina convidada: Ubuntu rodando dentro do vmware, endereço IPv6 - 2002::2/64 (eth0) e 2001::1/64 (tun0)
Configuração:
- Encaminhamento IPv4 e IPv6 ativado no Ubuntu
- Rota adicionada no macOS:
sudo route add -inet6 2001::/64 -interface vmnet1
Problema: não consigo fazer isso ping6 2001::1
no macOS. No entanto, eu sou capaz ping6 2002::2
. Eu tentei com as configurações "Compartilhar com meu Mac", "Autodetectar" e também "Privado para Mac" do VMware.
Responder1
Não é suficiente rotear 2001::/64 via vmnet1; você também deve especificarqual portalem vmnet1 os pacotes devem ser enviados para –2002::2 neste caso.
Sem uma especificação de gateway, a origem tentará resolver diretamente o destino usando ARP (para IPv4) ou NDP (ICMPv6 Neighbor Discovery). No entanto, o IPv6 geralmente considera os endereços como pertencentes às interfaces ou links individuais, não ao host inteiro – portanto, os hosts IPv6 geralmente ignoram as solicitações de descoberta de vizinho se chegarem através de uma interface que não tenha esse endereço atribuído.(Isso é semelhante ao Linux arp_ignore=1 para IPv4.)
Portanto, o sistema Ubuntu não responderá às consultas NDP para 2001::1 que chegam via eth0, porque não existe tal endereço na eth0 – ele é atribuído apenas em tun0. No entanto, ele responderá às consultas do NDP para 2002::2, portanto sua rota deverá ser semelhante a:
route add -inet6 2001::/64 2002::2
(Dito isto, uma vez que os pacotes tenham sido roteados com sucesso via L2 para o endereço MAC correto, o sistema Ubuntuvaiaceite e reconheça 2001::1 no cabeçalho IP (L3), porque esse endereço está marcado como local em sua tabela de roteamento.)