Flannel: Rotas fora das Redes de Flanela e NAT'ing

Criado em 2 nov. 2014  ·  3Comentários  ·  Fonte: coreos/flannel

Oi, Este é um problema de solicitação de recurso.

Eu quero executar um contêiner onde há sobreposição com suporte de vxLAN. Mas para destinos fora da sobreposição, quero NAT do contêiner, por exemplo, para a Internet pública.

Eu vejo três maneiras de fazer isso:

  • Segunda interface de rede : use Flannel para a sobreposição, mas crie um segundo netdev que seja mais semelhante ao NAT padrão do Docker para o contêiner. Em seguida, o tráfego para a sobreposição ainda passa por flanela e uma rota padrão no segundo netdev lida com o tráfego da Internet.
  • NATs de configuração de flanela : Uma opção de configuração para Flannel de algum tipo, adicione rotas padrão para fora da sobreposição e, ao sair da sobreposição, faça com que o flanela configure um NAT.
  • Crie gateways vxLAN : Faça um container ou máquina com uma interface flanela e outro netdev para NAT (ou algo parecido). Configure a rota padrão em outros contêineres para passar por essa instância NAT.

Pensamentos? Isso está no escopo ou fora do escopo da flanela?

Comentários muito úteis

Já existe uma opção que faz algo muito parecido com 2. Se você rodar flaneld com --ip-masq , ele adicionará uma regra de IP Masquerade para o tráfego que está saindo de containers e indo para a Internet. Mais precisamente, é o tráfego originado dentro do espaço de endereço de sobreposição, mas destinado fora dele.

A opção não está documentada (precisa corrigir isso), pois eu estava esperando o Docker mesclar minha adição de --ip-masq ao daemon do Docker. Isso permite executar o daemon do Docker com --ip-masq=false e flaneld com --ip-masq . Caso contrário, o Docker também instala a regra de mascaramento de IP para o tráfego que sai do docker0.

O Docker 1.3 que foi lançado recentemente tem a opção --ip-masq .

Todos 3 comentários

A segunda opção parece razoável. Eu sinto que podemos nos apoiar no systemd-networkd para configurar essa rota de rede depois de abrirmos a ponte de flanela.

@eyakubovich provavelmente tem uma opinião sobre isso.

Já existe uma opção que faz algo muito parecido com 2. Se você rodar flaneld com --ip-masq , ele adicionará uma regra de IP Masquerade para o tráfego que está saindo de containers e indo para a Internet. Mais precisamente, é o tráfego originado dentro do espaço de endereço de sobreposição, mas destinado fora dele.

A opção não está documentada (precisa corrigir isso), pois eu estava esperando o Docker mesclar minha adição de --ip-masq ao daemon do Docker. Isso permite executar o daemon do Docker com --ip-masq=false e flaneld com --ip-masq . Caso contrário, o Docker também instala a regra de mascaramento de IP para o tráfego que sai do docker0.

O Docker 1.3 que foi lançado recentemente tem a opção --ip-masq .

Obrigado que funciona para nós!

Esta página foi útil?
0 / 5 - 0 avaliações