Como posso ligar o IPv4 mas encaminhar o IPv6, ao mesmo tempo?

1

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 conectada a eth1 se beneficiaria com o endereço IPv4.

Parece que eu quero que o roteador conecte o tráfego IPv4 e direcione o tráfego IPv6. Não?

Ouvi falar do proxy-ARP, mas, até onde 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, tenho apenas um endereço v4.

E a ponte normal também não é uma opção, penso, porque é a Camada 2 e não seria capaz de distinguir entre o tráfego IPv4 e o tráfego IPv6. Se eu conectar o IPv4, eu também conecto o IPv6, que destrói a configuração atual do IPv6.

Eu sou forçado para o tráfego NAT em uma rede privada e atribuo ao nó outro endereço dessa rede? Existe uma opção mais direta?

    
por Yd Ahhrk 23.03.2018 / 00:31

1 resposta

2

(Todos esses comandos devem ser executados no roteador Linux).

Etapa 1: crie a bridge normalmente, como se fosse para rotear todo o tráfego entre as duas interfaces.

ip link add name br0 type bridge
ip link set br0 up
ip link set eth0 master br0
ip link set eth1 master br0

Passo 2: Através das regras de ebtables, diga ao kernel que o tráfego IPv4 deve ser ligado em ponte e que o tráfego IPv6 deve ser roteado.

ebtables -t broute -A BROUTING -p ipv4 -j ACCEPT
ebtables -t broute -A BROUTING -p ipv6 -j DROP

(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á alguns bug de bridging em algum lugar que impeça br0 de funcionar.

    
por 23.03.2018 / 23:17