Tráfego do túnel do Docker em uma porta específica via VPN

2

Não tenho certeza se isso é específico da janela de encaixe ou uma questão geral de rede.

Estou executando um servidor Debian Jessie com contêineres de docker de servidor. Meu entendimento é que o docker cria uma interface virtual (ou, falando estritamente, uma ponte de ethernet virtual) chamada docker0 e vincula as interfaces virtuais de cada contêiner individual. Em seguida, ele manipula o iptables do host para permitir a comunicação entre as portas expostas de cada contêiner e a rede do host.

Eu tenho uma VPN, a interface é tun0 . Um dos contêineres expõe duas portas: 8888 e 23456 . Quero encapsular todo o tráfego de e para a porta 23456 por meio da VPN.

Como isso pode ser feito?

Outra maneira de ver isso é que o Docker direciona automaticamente o tráfego com base na porta para o contêiner correto. Eu quero inserir outra camada via iptables , onde o tráfego na porta 23456 é direcionado para a VPN e qualquer tráfego da VPN é direcionado para a porta 23456 .

Para informações, o provedor de VPN usa o OpenVPN.

    
por fswings 07.05.2015 / 10:51

1 resposta

0

Isso deve ser totalmente automático, exceto pela necessidade da regra usual de mascaramento:

  iptables -t nat -A POSTROUTING -i docker0 -o tun0 -j MASQUERADE

Apenas por uma questão de rigor, certifique-se de ter a regra de roteamento, no host, atendendo ao docker0: se você puder fazer o ping das janelas de encaixe a partir do host, não precisará ler mais. Caso contrário, adicione

  ip route add Docker'sNetwork/16 via dev docker0
    
por 13.06.2015 / 14:24