Meu ISP me concede um endereço IPv4 e um prefixo IPv6, que foi subdividido em algumas redes.
+--------------+
| | eth1
| |---------- <IPv6 network>
| |
eth0 | Linux Router | eth2
ISP ----------| |---------- <IPv6 network>
| |
| | eth3
| |---------- <IPv6 network>
+--------------+
Acontece que um dos nós da rede IPv6 conectado eth1
se beneficiaria de ter o endereço IPv4.
Parece que eu quero que o roteador faça a ponte do tráfego IPv4 e roteie o tráfego IPv6. Não?
Ouvi falar do proxy-ARP, mas pelo que sei, precisaria de outro endereço IPv4 para o roteador, caso contrário ele não tentaria interagir com o tráfego v4 do ISP, certo? Mais uma vez, só tenho um endereço v4.
E a ponte normal também não é uma opção, eu acho, porque é a Camada 2 e não seria capaz de diferenciar o tráfego IPv4 do tráfego IPv6. Se eu fizer uma ponte com IPv4, também farei uma ponte com IPv6, o que destrói a configuração atual do IPv6.
Sou forçado a NAT do tráfego em uma rede privada e atribuo ao nó outro endereço dessa rede? Existe uma opção mais direta?
(Todos esses comandos devem ser executados no roteador Linux.)
Passo 1: Crie a bridge normalmente, como se fosse para rotear todo o tráfego entre as duas interfaces.
Etapa 2: Por meio das regras do ebtables, informe ao kernel que o tráfego IPv4 deve ser interligado e que o tráfego IPv6 deve ser roteado.
(Na cadeia BROUTING, "ACCEPT" significa ponte e "DROP" significa ignorar a ponte.)
Nenhuma das interfaces do roteador Linux precisa de endereços IPv4.
Esta solução não deve ser testada em VMs do Virtualbox, porque há algum bug de ponte em algum lugar que impede o
br0
funcionamento.