Pular para o conteúdo

Roteamento com marcação de pacotes

Dica publicada em Linux / Introdução
Marcio Jose marciojose
Hits: 12.587 Categoria: Linux Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Roteamento com marcação de pacotes

Objetivo:

Através de marcação de pacotes determinar as solicitações de internet da rede interna para provedores diferentes.

Considerando a seguinte estrutura:
  • Dois provedores com modens configurados com os IPs internos 172.0.0.104/24 e 192.168.1.1/24;
  • Rede interna 10.1.0.0/24.

Tratamento da estrutura para com o objetivo:
  • O modem do provedor que tem o modem 172.0.0.104/24 se chamará vm e o do 192.168.1.1/24 se chamará comp;
  • Para a rede interna sair para a internet pelo provedor vm (172.0.0.104/24) deveremos marcar os pacotes como 2 e para a internet pelo provedor comp (192.168.1.1/24) deveremos marcar os pacotes como 1.

Mão na massa

1 - Criar uma tabela de roteamento para cada provedor:

Editar o arquivo /etc/iproute2/rt_tables e inserir as tabelas:

200 comp
201 vm

Para verificar se as tabelas estão criadas, digite:

# ip route list table comp

Não deve retornar nenhum valor ou erro. Repita o passo para a tabela vm.

2 - Agora precisamos criar o default gateway para cada tabela que criamos no item 1:

# ip route add default via 172.0.0.104 table vm
# ip route add default via 192.168.1.1 table comp


Para verificar a configuração, digite:

# ip route list table vm
# ip route list table comp


Deve retornar somente uma linha com a rota padrão de cada tabela.

3 - Determinar qual marcação será encaminhada para cada tabela de roteamento criada no item 1:

Como mencionado acima, a internet para o provedor do modem 172.0.0.104/24 (vm) tem a marcação dos pacotes como 2 e para o provedor do modem 192.168.1.1/24 (comp) terá a marcação dos pacotes como 1. Sendo assim, vamos criar as regras para o roteamento.

# ip rule add fwmark 1 table comp
# ip rule add fwmark 2 table vm


Para verificar a configuração, digite:

# ip rule list

4 - Determinar o que será marcado para cada link de internet com base na regras criadas no item 3:

Vamos agora determinar através do iptables, na tabela nat, na chain PREROUTING (antes do roteamento) qual a condição para que o pacote seja marcado como 1 (comp - 192.168.1.1/24) ou 2 (vm - 172.0.0.104/24). No meu caso, determinei assim:

a) Que a navegação (80 e 443) seja pela tabela comp para sair pelo gateway 192.168.1.1/24 (configurado no item 2) que tem que ser marcado como 1 (configurado no item 3).

b) Que para email (25,110) para a tabela vm para sair pelo gateway 172.0.0.104/24 (configurado no item 2) que tem que ser marcado como 2 (configurado no item 3).

# iptables -t nat -t mangle -A PREROUTING -p tcp -m multiport --dport 80,443 -j MARK --set-mark 1
# iptables -t nat -t mangle -A PREROUTING -p tcp -m multiport --dport 25,110 -j MARK --set-mark 2


Caso o pacote não seja marcado, ele irá para a tabela main do ip route, ou seja, para o gateway default que está configurado. Tendo a marcação no iptables e não diretamente no ip route lhe dá maior facilidade e flexibilidade para determinar a regra em que o pacote é marcado (ip origem, ip destino, porta origem, porta destino, interface, protocolo etc).

Post previamente publicado em meu blog: http://marciojose.blogspot.com/2011/03/roteamento-de-dois-links-com- marcacao.html

O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

CentOS + Qmail-Toaster = SpamHaus/SpamCop com Score

Netflix no Metamorphose Linux

Instalando Ubuntu-14.04-LTS

Migrar Samba 4 entre servidores CentOS 7

Bacula 7.x no CentOS 7.x - Instalação e configuração

Funcionamento do comando ls

#1 Comentário enviado por dfsantos em 08/04/2011 - 10:28h
Ótima dica amigo, realmente muito útil. Parabéns
#2 Comentário enviado por DouglasMenger em 03/12/2013 - 16:49h
Marcio,

Segui os passos do seu artigo mas não tive sucesso, fiz um monitoramento pelo log do firewall e observei que a saída dos pacotes estão indo para a interface do meu gateway secundário porem não e possível navegar ou acessar qualquer outra porta. Ate o momento não consegui entender o porque.

Meu firewall e simples não tem nenhum restrição de entrada ou saída.

Contribuir com comentário

Entre na sua conta para comentar.