Acabei de notar que a MASQUERADE
iptables
regra adicionada por lxc
tem ! -d
parte:
iptables -t nat -A POSTROUTING -s 10.0.3.0/24 ! -d 10.0.3.0/24 -j MASQUERADE
Meu palpite é que isso -s 10.0.3.0/24 -d 10.0.3.0/24
só pode ser observado ao enviar dados de um contêiner para o outro ( ping
, ssh
, você nomeia). E omitir a ! -d
parte só pode afetar o desempenho. Em extensão desconhecida. Estou certo?
Esta regra permite que dois contêineres diferentes na mesma sub-rede conversem entre si sem serem NAT'd
Assim, um container com 10.0.3.100 falando com 10.0.3.101 aparecerá como 10.0.3.100 para o outro container e não como o endereço do host.
Isso pode ser benéfico para vários propósitos (por exemplo, registro de atividades, controles de acesso) porque o contêiner de destino pode identificar o contêiner de origem. Ele também permite que esses contêineres não precisem de rotas padrão (é tudo sub-rede local), o que pode ser benéfico do ponto de vista da segurança.
E, claro, remove a sobrecarga de NAT desnecessária!