Como obter o IPv6 funcionando?

4

Meu provedor de hospedagem me forneceu as seguintes informações:

Subnet: 2a02:f99:0:64::/64
Gateway: 2a02:f99:0:64::1

Então eu fiz (sim eth3 é a interface correta)

ip addr add 2a02:f99:0:64::2/64 dev eth3
ip -6 route add ::/0 via 2a02:f99:0:64::1 dev eth3

mas

$ ip -6 neigh show
2a02:f99:0:64::1 dev eth3 FAILED
$ ping6 google.com
PING google.com(ams16s30-in-x0e.1e100.net) 56 data bytes
From 2a02:f99:0:64::2 icmp_seq=1 Destination unreachable: Address unreachable
...

Eu também tentei

ip -6 route del ::/0 via 2a02:f99:0:64::1 dev eth3
ip -6 route add ::/0 via fe80::1 dev eth3

mas isso não alterou nada, ainda não é possível entrar ou sair.

Onde eu errei? Como obtenho o IPv6 em execução?

Atualização 2017-07-07 :

O provedor de hospedagem insiste que a infraestrutura está bem.

Outra máquina com acesso à mesma sub-rede pode ligar o endereço e estabelecer uma conexão IPv6 por meio do que eu acho que é Rotead Advertisement (RA), pois apenas fe80::20a:8bff:fe98:3400 como gateway funciona e o endereço do provedor especificado pelo provedor não.

A máquina deste post é sobre, no entanto, ainda está sem sorte em encontrar algum vizinho. Ativar RA também parece não ter efeito algum.

A execução do IPv6 pela conexão cruzada de duas máquinas (em suas NICs secundárias) funcionou imediatamente, portanto, o IPv6 deve estar basicamente disponível para ambas (todas as pastas da máquina problemática):

PING fe80::62eb:69ff:fed2:a122%eth2(fe80::62eb:69ff:fed2:a122) 56 data bytes
64 bytes from fe80::62eb:69ff:fed2:a122: icmp_seq=1 ttl=64 time=0.224 ms
64 bytes from fe80::62eb:69ff:fed2:a122: icmp_seq=2 ttl=64 time=0.171 ms
--- fe80::62eb:69ff:fed2:a122%eth2 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 999ms

PING fd00:32::3(fd00:32::3) 56 data bytes
64 bytes from fd00:32::3: icmp_seq=1 ttl=64 time=0.286 ms
64 bytes from fd00:32::3: icmp_seq=2 ttl=64 time=0.168 ms
--- fd00:32::3 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms

A configuração do IP se parece com:

2: eth3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc htb state UP qlen 1000
    link/ether f0:1f:af:df:c8:7b brd ff:ff:ff:ff:ff:ff
    inet 85.XX.XX.186/30 brd 85.XX.XX.187 scope global eth3
    inet6 2a02:f99:0:64::2/64 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::f21f:afff:fedf:c87b/64 scope link 
       valid_lft forever preferred_lft forever

2a02:f99:0:64::/64 dev eth3  proto kernel  metric 256 
fd00:32::/32 dev eth2  proto kernel  metric 256 
fe80::/64 dev eth2  proto kernel  metric 256 
fe80::/64 dev eth3-ifb  proto kernel  metric 256 
fe80::/64 dev eth3  proto kernel  metric 256 
default via 2a02:f99:0:64::1 dev eth3  metric 1024 

Descoberta de vizinho encontra apenas o endereço de link local da interface:

PING ff02::1%eth3(ff02::1) 56 data bytes
64 bytes from fe80::f21f:afff:fedf:c87b: icmp_seq=1 ttl=64 time=0.055 ms
64 bytes from fe80::f21f:afff:fedf:c87b: icmp_seq=2 ttl=64 time=0.076 ms
64 bytes from fe80::f21f:afff:fedf:c87b: icmp_seq=3 ttl=64 time=0.060 ms
--- ff02::1%eth3 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms

Tentar fazer ping no gateway também resulta em:

PING 2a02:f99:0:64::1(2a02:f99:0:64::1) from 2a02:f99:0:64::2 eth3: 56 data bytes
From 2a02:f99:0:64::2 icmp_seq=1 Destination unreachable: Address unreachable
From 2a02:f99:0:64::2 icmp_seq=2 Destination unreachable: Address unreachable
From 2a02:f99:0:64::2 icmp_seq=3 Destination unreachable: Address unreachable
--- 2a02:f99:0:64::1 ping statistics ---
5 packets transmitted, 0 received, +3 errors, 100% packet loss, time 3999ms

Veja o que o sysctl -A | grep ipv6 cospe (onde também não consigo identificar nada de errado):

net.ipv6.neigh.default.mcast_solicit = 3
net.ipv6.neigh.default.ucast_solicit = 3
net.ipv6.neigh.default.app_solicit = 0
net.ipv6.neigh.default.delay_first_probe_time = 5
net.ipv6.neigh.default.gc_stale_time = 60
net.ipv6.neigh.default.unres_qlen = 3
net.ipv6.neigh.default.proxy_qlen = 64
net.ipv6.neigh.default.anycast_delay = 100
net.ipv6.neigh.default.proxy_delay = 80
net.ipv6.neigh.default.locktime = 0
net.ipv6.neigh.default.retrans_time_ms = 1000
net.ipv6.neigh.default.base_reachable_time_ms = 30000
net.ipv6.neigh.default.gc_interval = 30
net.ipv6.neigh.default.gc_thresh1 = 128
net.ipv6.neigh.default.gc_thresh2 = 512
net.ipv6.neigh.default.gc_thresh3 = 1024
net.ipv6.neigh.lo.mcast_solicit = 3
net.ipv6.neigh.lo.ucast_solicit = 3
net.ipv6.neigh.lo.app_solicit = 0
net.ipv6.neigh.lo.delay_first_probe_time = 5
net.ipv6.neigh.lo.gc_stale_time = 60
net.ipv6.neigh.lo.unres_qlen = 3
net.ipv6.neigh.lo.proxy_qlen = 64
net.ipv6.neigh.lo.anycast_delay = 100
net.ipv6.neigh.lo.proxy_delay = 80
net.ipv6.neigh.lo.locktime = 0
net.ipv6.neigh.lo.retrans_time_ms = 1000
net.ipv6.neigh.lo.base_reachable_time_ms = 30000
net.ipv6.neigh.eth3.mcast_solicit = 3
net.ipv6.neigh.eth3.ucast_solicit = 3
net.ipv6.neigh.eth3.app_solicit = 0
net.ipv6.neigh.eth3.delay_first_probe_time = 5
net.ipv6.neigh.eth3.gc_stale_time = 60
net.ipv6.neigh.eth3.unres_qlen = 3
net.ipv6.neigh.eth3.proxy_qlen = 64
net.ipv6.neigh.eth3.anycast_delay = 100
net.ipv6.neigh.eth3.proxy_delay = 80
net.ipv6.neigh.eth3.locktime = 0
net.ipv6.neigh.eth3.retrans_time_ms = 1000
net.ipv6.neigh.eth3.base_reachable_time_ms = 30000
net.ipv6.neigh.eth2.mcast_solicit = 3
net.ipv6.neigh.eth2.ucast_solicit = 3
net.ipv6.neigh.eth2.app_solicit = 0
net.ipv6.neigh.eth2.delay_first_probe_time = 5
net.ipv6.neigh.eth2.gc_stale_time = 60
net.ipv6.neigh.eth2.unres_qlen = 3
net.ipv6.neigh.eth2.proxy_qlen = 64
net.ipv6.neigh.eth2.anycast_delay = 100
net.ipv6.neigh.eth2.proxy_delay = 80
net.ipv6.neigh.eth2.locktime = 0
net.ipv6.neigh.eth2.retrans_time_ms = 1000
net.ipv6.neigh.eth2.base_reachable_time_ms = 30000
net.ipv6.neigh.eth3-ifb.mcast_solicit = 3
net.ipv6.neigh.eth3-ifb.ucast_solicit = 3
net.ipv6.neigh.eth3-ifb.app_solicit = 0
net.ipv6.neigh.eth3-ifb.delay_first_probe_time = 5
net.ipv6.neigh.eth3-ifb.gc_stale_time = 60
net.ipv6.neigh.eth3-ifb.unres_qlen = 3
net.ipv6.neigh.eth3-ifb.proxy_qlen = 64
net.ipv6.neigh.eth3-ifb.anycast_delay = 100
net.ipv6.neigh.eth3-ifb.proxy_delay = 80
net.ipv6.neigh.eth3-ifb.locktime = 0
net.ipv6.neigh.eth3-ifb.retrans_time_ms = 1000
net.ipv6.neigh.eth3-ifb.base_reachable_time_ms = 30000
net.ipv6.xfrm6_gc_thresh = 2048
net.ipv6.conf.all.forwarding = 0
net.ipv6.conf.all.hop_limit = 64
net.ipv6.conf.all.mtu = 1280
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.router_solicitations = 3
net.ipv6.conf.all.router_solicitation_interval = 4
net.ipv6.conf.all.router_solicitation_delay = 1
net.ipv6.conf.all.force_mld_version = 0
net.ipv6.conf.all.use_tempaddr = 0
net.ipv6.conf.all.temp_valid_lft = 604800
net.ipv6.conf.all.temp_prefered_lft = 86400
net.ipv6.conf.all.regen_max_retry = 3
net.ipv6.conf.all.max_desync_factor = 600
net.ipv6.conf.all.max_addresses = 16
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.router_probe_interval = 60
net.ipv6.conf.all.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.all.proxy_ndp = 0
net.ipv6.conf.all.accept_source_route = 0
net.ipv6.conf.all.optimistic_dad = 0
net.ipv6.conf.all.mc_forwarding = 0
net.ipv6.conf.all.disable_ipv6 = 0
net.ipv6.conf.all.accept_dad = 1
net.ipv6.conf.all.force_tllao = 0
net.ipv6.conf.default.forwarding = 0
net.ipv6.conf.default.hop_limit = 64
net.ipv6.conf.default.mtu = 1280
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.router_solicitations = 3
net.ipv6.conf.default.router_solicitation_interval = 4
net.ipv6.conf.default.router_solicitation_delay = 1
net.ipv6.conf.default.force_mld_version = 0
net.ipv6.conf.default.use_tempaddr = 0
net.ipv6.conf.default.temp_valid_lft = 604800
net.ipv6.conf.default.temp_prefered_lft = 86400
net.ipv6.conf.default.regen_max_retry = 3
net.ipv6.conf.default.max_desync_factor = 600
net.ipv6.conf.default.max_addresses = 16
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.router_probe_interval = 60
net.ipv6.conf.default.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.default.proxy_ndp = 0
net.ipv6.conf.default.accept_source_route = 0
net.ipv6.conf.default.optimistic_dad = 0
net.ipv6.conf.default.mc_forwarding = 0
net.ipv6.conf.default.disable_ipv6 = 0
net.ipv6.conf.default.accept_dad = 1
net.ipv6.conf.default.force_tllao = 0
net.ipv6.conf.lo.forwarding = 0
net.ipv6.conf.lo.hop_limit = 64
net.ipv6.conf.lo.mtu = 16436
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.router_solicitations = 3
net.ipv6.conf.lo.router_solicitation_interval = 4
net.ipv6.conf.lo.router_solicitation_delay = 1
net.ipv6.conf.lo.force_mld_version = 0
net.ipv6.conf.lo.use_tempaddr = -1
net.ipv6.conf.lo.temp_valid_lft = 604800
net.ipv6.conf.lo.temp_prefered_lft = 86400
net.ipv6.conf.lo.regen_max_retry = 3
net.ipv6.conf.lo.max_desync_factor = 600
net.ipv6.conf.lo.max_addresses = 16
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.router_probe_interval = 60
net.ipv6.conf.lo.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.lo.proxy_ndp = 0
net.ipv6.conf.lo.accept_source_route = 0
net.ipv6.conf.lo.optimistic_dad = 0
net.ipv6.conf.lo.mc_forwarding = 0
net.ipv6.conf.lo.disable_ipv6 = 0
net.ipv6.conf.lo.accept_dad = -1
net.ipv6.conf.lo.force_tllao = 0
net.ipv6.conf.eth3.forwarding = 0
net.ipv6.conf.eth3.hop_limit = 64
net.ipv6.conf.eth3.mtu = 1500
net.ipv6.conf.eth3.accept_ra = 1
net.ipv6.conf.eth3.accept_redirects = 1
net.ipv6.conf.eth3.autoconf = 0
net.ipv6.conf.eth3.dad_transmits = 1
net.ipv6.conf.eth3.router_solicitations = 3
net.ipv6.conf.eth3.router_solicitation_interval = 4
net.ipv6.conf.eth3.router_solicitation_delay = 1
net.ipv6.conf.eth3.force_mld_version = 0
net.ipv6.conf.eth3.use_tempaddr = 1
net.ipv6.conf.eth3.temp_valid_lft = 604800
net.ipv6.conf.eth3.temp_prefered_lft = 86400
net.ipv6.conf.eth3.regen_max_retry = 3
net.ipv6.conf.eth3.max_desync_factor = 600
net.ipv6.conf.eth3.max_addresses = 16
net.ipv6.conf.eth3.accept_ra_defrtr = 1
net.ipv6.conf.eth3.accept_ra_pinfo = 1
net.ipv6.conf.eth3.accept_ra_rtr_pref = 1
net.ipv6.conf.eth3.router_probe_interval = 60
net.ipv6.conf.eth3.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.eth3.proxy_ndp = 0
net.ipv6.conf.eth3.accept_source_route = 0
net.ipv6.conf.eth3.optimistic_dad = 0
net.ipv6.conf.eth3.mc_forwarding = 0
net.ipv6.conf.eth3.disable_ipv6 = 0
net.ipv6.conf.eth3.accept_dad = 1
net.ipv6.conf.eth3.force_tllao = 0
net.ipv6.conf.eth2.forwarding = 0
net.ipv6.conf.eth2.hop_limit = 64
net.ipv6.conf.eth2.mtu = 1500
net.ipv6.conf.eth2.accept_ra = 1
net.ipv6.conf.eth2.accept_redirects = 1
net.ipv6.conf.eth2.autoconf = 1
net.ipv6.conf.eth2.dad_transmits = 1
net.ipv6.conf.eth2.router_solicitations = 3
net.ipv6.conf.eth2.router_solicitation_interval = 4
net.ipv6.conf.eth2.router_solicitation_delay = 1
net.ipv6.conf.eth2.force_mld_version = 0
net.ipv6.conf.eth2.use_tempaddr = 0
net.ipv6.conf.eth2.temp_valid_lft = 604800
net.ipv6.conf.eth2.temp_prefered_lft = 86400
net.ipv6.conf.eth2.regen_max_retry = 3
net.ipv6.conf.eth2.max_desync_factor = 600
net.ipv6.conf.eth2.max_addresses = 16
net.ipv6.conf.eth2.accept_ra_defrtr = 1
net.ipv6.conf.eth2.accept_ra_pinfo = 1
net.ipv6.conf.eth2.accept_ra_rtr_pref = 1
net.ipv6.conf.eth2.router_probe_interval = 60
net.ipv6.conf.eth2.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.eth2.proxy_ndp = 0
net.ipv6.conf.eth2.accept_source_route = 0
net.ipv6.conf.eth2.optimistic_dad = 0
net.ipv6.conf.eth2.mc_forwarding = 0
net.ipv6.conf.eth2.disable_ipv6 = 0
net.ipv6.conf.eth2.accept_dad = 1
net.ipv6.conf.eth2.force_tllao = 0
net.ipv6.conf.eth3-ifb.forwarding = 0
net.ipv6.conf.eth3-ifb.hop_limit = 64
net.ipv6.conf.eth3-ifb.mtu = 1500
net.ipv6.conf.eth3-ifb.accept_ra = 1
net.ipv6.conf.eth3-ifb.accept_redirects = 1
net.ipv6.conf.eth3-ifb.autoconf = 1
net.ipv6.conf.eth3-ifb.dad_transmits = 1
net.ipv6.conf.eth3-ifb.router_solicitations = 3
net.ipv6.conf.eth3-ifb.router_solicitation_interval = 4
net.ipv6.conf.eth3-ifb.router_solicitation_delay = 1
net.ipv6.conf.eth3-ifb.force_mld_version = 0
net.ipv6.conf.eth3-ifb.use_tempaddr = 0
net.ipv6.conf.eth3-ifb.temp_valid_lft = 604800
net.ipv6.conf.eth3-ifb.temp_prefered_lft = 86400
net.ipv6.conf.eth3-ifb.regen_max_retry = 3
net.ipv6.conf.eth3-ifb.max_desync_factor = 600
net.ipv6.conf.eth3-ifb.max_addresses = 16
net.ipv6.conf.eth3-ifb.accept_ra_defrtr = 1
net.ipv6.conf.eth3-ifb.accept_ra_pinfo = 1
net.ipv6.conf.eth3-ifb.accept_ra_rtr_pref = 1
net.ipv6.conf.eth3-ifb.router_probe_interval = 60
net.ipv6.conf.eth3-ifb.accept_ra_rt_info_max_plen = 0
net.ipv6.conf.eth3-ifb.proxy_ndp = 0
net.ipv6.conf.eth3-ifb.accept_source_route = 0
net.ipv6.conf.eth3-ifb.optimistic_dad = 0
net.ipv6.conf.eth3-ifb.mc_forwarding = 0
net.ipv6.conf.eth3-ifb.disable_ipv6 = 0
net.ipv6.conf.eth3-ifb.accept_dad = -1
net.ipv6.conf.eth3-ifb.force_tllao = 0
net.ipv6.ip6frag_high_thresh = 262144
net.ipv6.ip6frag_low_thresh = 196608
net.ipv6.ip6frag_time = 60
net.ipv6.route.gc_thresh = 1024
net.ipv6.route.max_size = 4096
net.ipv6.route.gc_min_interval = 0
net.ipv6.route.gc_timeout = 60
net.ipv6.route.gc_interval = 30
net.ipv6.route.gc_elasticity = 9
net.ipv6.route.mtu_expires = 600
net.ipv6.route.min_adv_mss = 1220
net.ipv6.route.gc_min_interval_ms = 500
net.ipv6.icmp.ratelimit = 1000
net.ipv6.bindv6only = 0
net.ipv6.ip6frag_secret_interval = 600
net.ipv6.mld_max_msf = 64

Atualização 2017-07-07 # 2 :

O provedor diz que as duas máquinas estão conectadas ao mesmo switch. Significa que isso tem que ser um problema de configuração.

Atualização 2017-07-08 :

Eu atualizei o kernel de 3.4 para 3.16 e o driver Intel igb NIC para o pacote mais recente em seu site. No entanto, sem sucesso, o comportamento observado não mudou em nada.

    
por Cobra_Fast 05.07.2017 / 19:59

2 respostas

1

Depois de uma semana indo e voltando com o provedor de hospedagem (e incontáveis horas desperdiçadas tentando todas as coisas), afinal de contas, era um problema de provedor / infra-estrutura.

Depois de conectá-los a um roteador diferente, tudo funciona bem.

Acho que a lição a ser aprendida aqui é que os provedores nem sempre estão certos quando dizem que é um problema de configuração da máquina.

    
por 11.07.2017 / 18:40
4

Os comandos que você digitou inicialmente parecem totalmente corretos, dadas as informações citadas pelo provedor. Isso nos deixa com algumas suposições possíveis sobre o que pode ser o problema.

  • O provedor forneceu informações incorretas.
  • A interface correta a ser usada não é eth3 , mas algo diferente.
  • Há um firewall gravemente configurado incorretamente no caminho da sua máquina para o gateway.
  • A comunicação não deve estar usando o IPv6 pela Ethernet, mas sim algum outro protocolo, que pode ser o IPv6 sobre PPP over Ethernet.

Uma pesquisa whois revelará que o endereço IP que você está usando faz parte do 2a00::/12 alocado para o RIPE, mas ainda não foi alocado para nenhum ISP. Então, meu palpite é que o provedor digitou incorretamente o endereço IP nas informações que você recebeu.

Algumas notas adicionais que podem ou não ser de interesse. Seu comando de rota pode ser abreviado para:

ip -6 route add ::/0 via 2a02:f99:0:64::1

É redundante especificar dev eth3 aqui porque você já tem uma rota indicando que 2a02:f99:0:64::1

Eu já vi pelo menos um provedor usar fe80::1 como endereço do gateway. Dado que o provedor lhe disse para usar 2a02:f99:0:64::1 como endereço de gateway, ele não deveria funcionar, mas ainda era uma tentativa sensata de descobrir o que estava errado.

Algumas outras coisas que você pode fazer para tentar descobrir o que está acontecendo é olhar para uma captura de pacote, por exemplo digitando:

tcpdump -ni eth3 ip6 -s0

E você pode tentar procurar todos os nós IPv6 no segmento com:

ping6 ff02::1%eth3

Mas meu melhor conselho é pedir ao provedor informações corretas, mencionando que 2a02:f99::/32 não está alocado.

    
por 05.07.2017 / 22:02