Essa dica é para quem precisa utilizar a tabela
NAT dentro de containers
Openvz, ou até mesmo direcionar conexões de algum serviço para o container. Sem essa configuração, é exibida a mensagem:
"iptables: No chain/target/match by that name"
Ao tentar criar uma regra na tabela NAT em um container.
Primeiramente, no servidor host, é necessário habilitar o encaminhamento de pacotes no /etc/sysctl.conf:
net.ipv4.conf.default.forwarding=1
net.ipv4.conf.all.forwarding=1
Adicione a seguinte linha no modules.conf:
options ip_conntrack ip_conntrack_enable_ve0=1
Obs.: Conforme a documentação na Wiki do Openvz, esse parâmetro não funciona no
Debian, sendo necessário carregar os módulos com modprobe.
(devem ser carregados antes da inicialização dos containers)
# modprobe ip_conntrack ip_conntrack_enable_ve0=1
Agora, edite o arquivo de configuração do Openvz (padrão: /etc/vz/vz.conf), adicionando a seguinte linha:
IPTABLES="iptable_filter iptable_mangle ipt_limit ipt_multiport ipt_tos ipt_TOS ipt_REJECT ipt_TCPMSS ipt_tcpmss ipt_ttl ipt_LOG ipt_length ip_conntrack
ip_conntrack_ftp ip_conntrack_irc ipt_conntrack ipt_state ipt_helper iptable_nat ip_nat_ftp ip_nat_irc ipt_REDIRECT"
É necessário também carregar o módulo xt_tcpudp antes da inicialização dos containers:
# modprobe xt_tcpudp
Feito isso, já é possível utilizar a tabela NAT dentro dos containers.