Utilizando NAT em containers Openvz: Iptables: No chain/target/match by that name
Dica publicada em Linux / Avançado
Utilizando NAT em containers Openvz: Iptables: No chain/target/match by that name
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:
Adicione a seguinte linha no modules.conf:
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:
É 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.
"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
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.