IPtables não podem fazer isso no momento, então você precisa de um processo de espaço de usuário para fazer proxy das conexões. socat é uma ferramenta adequada para isso:
socat TCP6-LISTEN:1234,fork TCP4:1.2.3.4:1234
Atualmente tenho uma configuração onde, devido a configuração que demoraria uma eternidade para consertar, tenho um servidor que só pode ser acessado pelo ipv4. Eu também, no entanto, tenho um servidor que pode ser acessado pelo ipv6. Eu queria saber se eu poderia usar o iptables para encaminhar o tráfego ipv6 em uma determinada porta de um dos servidores para outro servidor usando o tráfego ipv4.
IPtables não podem fazer isso no momento, então você precisa de um processo de espaço de usuário para fazer proxy das conexões. socat é uma ferramenta adequada para isso:
socat TCP6-LISTEN:1234,fork TCP4:1.2.3.4:1234
Conforme observado nos comentários sobre sua pergunta , NAT64 está longe de estar pronto, até 3 anos depois.
Você pode, no entanto, tentar 6tunnel
, como sugerido por perplexidade.
Felizmente, ele está presente nos repositórios Debian e Ubuntu, então você pode instalá-lo facilmente usando sudo apt-get install 6tunnel
. Se você estiver usando outro sistema, terá de compilá-lo a partir da fonte .
Criar a partir do código-fonte não é difícil, e é apenas uma questão de executar alguns comandos (como root):
git clone https://github.com/wojtekka/6tunnel && cd 6tunnel && ./autogen.sh && make && make install
Aqui está sua sintaxe simplificada:
6tunnel [-4|-6] [-l local-host] original-port destination-host destination-port
[-4|-6]
é opcional e permite especificar se você ligará (escuta) em IPv4 ou IPv6 (respectivamente). -l
também é opcional. Ele permite escolher em qual endereço (IPv4 ou IPv6) você deseja vincular. Por exemplo, se você quiser permitir que um servidor somente IPv4, escutando na porta 1337, seja acessado por IPv6, use:
6tunnel -6 1337 localhost 1337
O comando acima escutará na porta 1337 no IPv6 e encaminhará o tráfego para a porta 1337 na mesma máquina via IPv4. Ele será executado em segundo plano, para que você não precise se preocupar com isso.
Na verdade, você deve configurar uma tarefa cron para garantir que ela ainda esteja em execução. 6tunnel
fornece um exemplo para sua conveniência! Executá-lo na inicialização também não deve ser uma má idéia.
Para mais documentação, execute 6tunnel -h
ou man 6tunnel
.
As versões recentes de xinetd
também podem escutar no IPv6 e depois encaminhar a conexão para um endereço IPv4.
Uma configuração de amostra que escuta as conexões IPv6 na porta 3389 e as encaminha para a porta 3389 de um endereço IPv4 interno:
service rdp_port_forward
{
flags = IPv6
disable = no
type = UNLISTED
socket_type = stream
protocol = tcp
user = nobody
wait = no
redirect = 10.187.20.42 3389
port = 3389
}
Isso pode ser útil em ambientes mais restritos, já que xinetd
provavelmente será instalado com seu sistema básico ou disponível em repositórios de fornecedores aprovados.
Mais para o benefício de pessoas que encontram esta página do que o OP necessariamente (eu vim aqui procurando uma solução para conectividade IPv6 para um aplicativo IPv4 (Twisted)), uma possibilidade é o aplicativo 6tunnel, escuta IPv6 e encaminha solicitações para outra interface e porta.
Eu queria comentar sobre Leo Lams e votar, mas não tenho reputação suficiente. Primeiro de tudo: Muito obrigado Leo Lam!
Para quem vem por este fio: Meu ISP mudou minha conexão de IPv4 para IPv6 com Dual Stack Lite, o que significa que eu não tenho mais meu próprio endereço IPv4. Este foi um problema, como eu quero acessar minha câmera IP de anyhwere que não suporta IPv6. Para resolver isso, tentei o seguinte:
sudo 6tunnel -6 99 192.168.178.35 80
sudo 6tunnel -4 99 IPV6PREFIXROUTER:IPV6INTERFACEIDUUBUNTUMACHINE 99
O prefixo ipv6 foi indicado em meu roteador e o ID da interface foi mapeado no processo de encaminhamento do IPv6.
Agora posso acessar a câmera de qualquer lugar usando o domínio vServer example.com:99 .. Perfeito! Eu planejo comprar uma framboesa que cumpra esse trabalho ou uma banana pi m3 para outras tarefas também.
Tags port-forwarding iptables