iproute2 regras e iptables NAT… qual a diferença?

7

Temos duas conexões ISP diferentes. Nosso "cara de TI" anterior configurou nosso firewall da seguinte forma:

Quando /etc/rc.local foi executado na inicialização, ele executou vários comandos ip rule add e ip route add para rotear determinados hosts internos para usar determinadas conexões ISP.

Em seguida, no final de /etc/rc.local , ele executou nossas regras iptables de firewall geradas por Firewall Builder . Essas regras de iptables têm a configuração de diretivas de política e NAT nelas.

O que eu não entendo é por que ele usou iproute2 para especificar regras e rotas, mas também especificar regras NAT para iptables ? Por que ele não fez tudo em um ou outro em vez de usar os dois? Ele poderia ter se livrado das regras e rotas de iproute2 e colocado todas as mesmas regras nas configurações iptables NAT?

    
por Jake Wilson 23.04.2010 / 00:01

1 resposta

12

Embora haja alguma sobreposição na funcionalidade entre as duas ferramentas, há muitas coisas que você pode fazer apenas com uma das ferramentas. iproute2 não pode fazer nada com as regras do firewall netfilter. iptables não pode fazer coisas como atribuir endereços IP.

Mesmo em lugares onde a funcionalidade parece se sobrepor, ela realmente não se sobrepõe. Por exemplo, você pode fazer a conversão de endereços com iproute2 e iptables . Mas a tradução de endereços que você pode fazer com o iproute não leva em consideração nenhum estado e não faz nenhuma reescrita do pacote. Existem vários protocolos de rede, como FTP, SIP, H.323, etc, nos quais os endereços IP estão incluídos no pacote e não apenas nos cabeçalhos. Se você usar o método iproute para tradução de endereços, esses tipos de protocolos serão quebrados. O Netfilter faz um trabalho muito melhor na tradução de endereços.

Na maioria dos casos em que a funcionalidade se sobrepõe, ela é tratada de maneiras diferentes. É possível com um módulo fazer roteamento com iptables , mas da última vez verifiquei que o módulo não estava na maioria das distribuições para não ter o netfilter / iptables corrigido com o ROTA alvo. Se esse alvo não estiver disponível, você não poderá usar o netfilter para roteamento, a menos que esteja com vontade de compilar seus próprios kernels. Sua decisão sobre qual ferramenta usar será feita simplesmente porque o recurso não está disponível na versão das ferramentas que você está executando. Mesmo que você tenha o alvo ROUTE, pelo que eu entendi, não é tão eficiente usar o netfilter para decisões de roteamento como é fazer roteamento com as tabelas de roteamento padrão com iproute2 manipula.

Grande parte disso também está usando a ferramenta certa para o trabalho certo. iproute2 foi projetado principalmente para gerenciar roteamento e endereços no seu computador. iptables / Netfilter é construído para firewall.

Eu acho que em lugares onde uma pessoa poderia usar qualquer uma das ferramentas, geralmente usaria a ferramenta com a qual está mais familiarizada. Eu sei que eu uso a meta MARK de iptables para sinalizar alguns pacotes para uma rota ou outra, embora eu possa escrever a mesma regra com iproute2 .

    
por 23.04.2010 / 00:42