Fazendo o roteamento Linux / Debian IPV6 do meu fornecedor para um cliente que não está funcionando.
O roteamento NAT / IPV4 está funcionando de forma confiável usando iptables
e dnsmasq
, no entanto, mesmo com o encaminhamento ativado no IPv6, não consigo fazê-lo funcionar.
O RADVD está publicando a nova rede, mas não consigo acessar nenhum endereço IPv6 público.
Diagrama simplificado
SW
| +---------+
+--->| client |
PUBLIC PRIVATE | +---------+
|
~/-(PR)-+ +---(ER)---+ | C0 +--(CL)---+
public |P0 E0 | extender | E1 +--->| client |
vendor |<----->| router |<------->| +---------+
| +----------+ |
~/---------+ | +---------+
+--->| client |
| +---------+
Where:
PR ISP Public router
P0 Public network interface
ER extender router Debian based, trying to configure
E0 Public network interface
E1 Private network interface
CL Test Client
C0 Private network interface
Usando radvdump
, o ER mostra a rota pública (endereços editados)
...
route 2600:..:5b10::/60
{
AdvRoutePreference high;
AdvRouteLifetime 1209600;
}; # End of route definition
No ER usando radvd
estou publicando uma nova rede / 64 no E1 (2600: ..: 5b11)
CL recebeu a rede publicada e se configurou com um endereço global na rede 2600: ..: 5b11.
ER pode ping6 e se conectar a: ipv6.google.com, P0, E0, E1 e C0
CL pode fazer ping6 e conectar-se a: E0 e E1, mas ..não .. P0 (nem endereços públicos)
Em ER- > E1 tcpdump
mostra o anúncio de roteador periódico do ER.
Quando eu pingar um endereço público no CL esta é a captura no ER-E1:
fe80::..:d477 is ER-E1
fe80::..:dff6 and 2600:..:5b11:..:f48 are CL-C0
fe80::..:f380 is PR-p0
2607:f8b0:4002:c0c::8a is ipv6.google.com
IP6 fe80::..:d477 > ff02::1: ICMP6, router advertisement, length 56
IP6 2600:..:5b11:..:f48 > 2607:f8b0:4002:c0c::8a: ICMP6, echo request, seq 1, length 64
IP6 fe80::..:dff6 > fe80::..:d477: ICMP6, neighbor solicitation, who has fe80::..:d477, length 32
IP6 fe80::..:d477 > fe80::..:dff6: ICMP6, neighbor advertisement, tgt is fe80::..:d477, length 24
IP6 fe80::..:d477 > fe80::..:dff6: ICMP6, neighbor solicitation, who has fe80::..:dff6, length 32
IP6 fe80::..:dff6 > fe80::..:d477: ICMP6, neighbor advertisement, tgt is fe80::..:dff6, length 24
IP6 fe80::..:d477 > ff02::1: ICMP6, router advertisement, length 56
Ping no CL acabou de ser interrompido (até o tempo limite) sem nenhuma mensagem.
Em ER- > E0 tcpdump
(simplificado):
IP6 2600:..:5b11:..:f48 > 2607:f8b0:4002:c0c::8a: ICMP6, echo request, seq 1, length 64
IP6 fe80::..:c446 > fe80::19d7:1db3:c381:23a: ICMP6, neighbor advertisement, tgt is fe80::..:c446, length 24
IP6 fe80::..:c446 > fe80::..:f380: ICMP6, neighbor solicitation, who has fe80::..:f380, length 32
IP6 fe80::..:f380 > fe80::..:c446: ICMP6, neighbor advertisement, tgt is fe80::..:f380, length 24
IP6 fe80::..:f380 > fe80::..:c446: ICMP6, neighbor solicitation, who has fe80::..:c446, length 32
IP6 fe80::..:c446 > fe80::..:f380: ICMP6, neighbor advertisement, tgt is fe80::..:c446, length 24
Tabela de roteamento ER (eth0 = E0 eth1 = E1)
2600:..:5b10::13 dev eth0 proto kernel metric 256 pref medium
2600:..:5b10::/64 dev eth0 proto kernel metric 256 expires 1209445sec pref medium
2600:..:5b10::/64 dev eth0 proto kernel metric 303 mtu 1500 pref medium
2600:..:5b11::/64 dev eth1 proto kernel metric 256 pref medium
fe80::/64 dev eth0 proto kernel metric 256 pref medium
fe80::/64 dev eth1 proto kernel metric 256 pref medium
default via fe80::..:f380 dev eth0 metric 303 mtu 1500 pref medium
default via fe80::..:f380 dev eth0 proto ra metric 1024 expires 1645sec hoplimit 64 pref medium
Não há firewalls envolvidos neste momento, nem mesmo ip6tables.
No ER, tenho encaminhamento = 1 e proxy_ndp = 1 para todos e padrão.