Encaminhar o tráfego para o contêiner do Docker

5

Eu tenho o seguinte cenário de sistema, onde o host A (88.12.0.1) e o host B (193.11.8.1) são conectados somente via SSH. No Host B (+172.17.0.2), há um contêiner do Docker sendo executado com o IP 172.17.0.3.

Agora tenho um aplicativo no host A que precisa se comunicar com um aplicativo no Host B (porta 22222) e um aplicativo no contêiner (porta 22223).

Outro aplicativo no Host A (porta 8081) está sendo executado como um servidor que deve ser contatado pelo aplicativo contêiner do Docker.

Até agora consegui encaminhar o tráfego apenas do Host A para o B, configurando as seguintes regras no Host A:

ssh -NL 22222:193.11.8.1:22222 [email protected] -v
ssh -NL 22223:193.11.8.1:22223 [email protected] -v

Apenas o SSH está disponível como uma porta entre o Host A e o Host B.

A primeira das regras acima funciona como está, já que cobre o primeiro caso do aplicativo no aplicativo de contato do Host A no Host B. A segunda regra é encaminhar o tráfego que é destinado ao contêiner docker do Host A para o Host B (mas precisaria ser encaminhado de lá para o contêiner docker).

O mapeamento no host B deve ser que o tráfego de entrada que tem a porta de destino 22223 deve ser encaminhado para o contêiner do Docker (172.17.03: 22223). O contêiner do Docker ao enviar tráfego para o 8081, o tráfego deve ser encaminhado para o Host A na porta 8081, por meio do Host B. o contêiner está em execução, o canal SSH que conecta o Host A e B ao aplicativo do servidor em execução no Host A e na porta 8081.

    
por wasp256 31.01.2017 / 13:25

1 resposta

2

Eu não entendi exatamente o que você quer, mas apenas traduzo sua edição em sua pergunta para as regras iptables .

Mas primeiro, você não tenta mapear a porta ao executar o contêiner:

 docker run -d -p 22223:22223 yourimage

Isso bem encaminhar todos os pacotes no ip do host na porta 22223 para o container.

Usando iptables em B host :

iptables -t nat -A PREROUTING -p tcp -d 193.11.8.1 --dport 22223 -j DNAT --to 172.17.0.3:22223

O comando acima irá alterar o destino do pacote que chega a 193.11.8.1:22223 to 172.17.0.3:22223

iptables -t nat -A PREROUTING -p tcp -s 172.17.0.3 --dport 8081 -j DNAT --to 88.12.0.1

O comando acima irá alterar o destino do pacote que vem de 172.17.0.3 e a porta de destino é 8081 to 88.12.0.1:8081

    
por 31.01.2017 / 13:47