Tecnologia em Redes de
    Computadores


        Tópicos Avançados

       Parte 11: Multiplas Rotas


             Professor: André Peres
           andre.peres@poa.ifrs.edu.br

   Instituto Federal do Rio Grande do Sul - IFRS
                     Porto Alegre
Situação Exemplo
–   Empresa que deve garantir a disponibilidade de
     seus serviços via Internet
     ●   Ponto único de falhas: link de Internet

     ●   Solução: redundância de links
Situação Exemplo
–   Como configurar estes links ???


                                      Link secundário
Link principal                           (stand-by)
   (ativo)
Situação Exemplo
–   Como configurar estes links ???

                                       Link 2
     Link 1                           Serviço X
    Serviço A                         Serviço Y
    Serviço B                         Serviço Z
    Serviço C
Situação Exemplo
–   É possível a configuração de rotas múltiplas
     ●   Marcação de pacotes

     ●   Conforme a marcação, utiliza uma rota diferente

     ●   Divisão do tráfego (QoS)
          –   Por prioridade
          –   Por tipo (rajadas, constante, …)
Multiplas Rotas
●   Criando multiplas tabelas de roteamento
    –   Ubuntu server
    vi /etc/iproute2/rt_tables
           # reserved values
           #
           255 local
           254 main
           253 default
           0    unspec
                                 Adicionar no final do arquivo
           #
                                     o id e nome da nova
           # local                  tabela de roteamento
           #
           #1   inr.ruhep
           2    link2
Multiplas Rotas
●   Configurando as tabelas de roteamento
ip r show table link2

ip r a default via 192.168.1.1 dev eth2 table link2

ip r a 10.1.1.0/24 dev eth1  proto kernel  scope link  src 
  10.1.1.254 table link2
ip r a 192.168.1.0/24 dev eth2  proto kernel  scope link  
  src 192.168.1.94 table link2

ip r show table link2
Multiplas Rotas
                                       Visualizar as entradas
●   Configurando as tabelas de roteamento
                                      da tabela de roteamento
                                                link2
ip r show table link2

ip r a default via 192.168.1.1 dev eth2 table link2

ip r a 10.1.1.0/24 dev eth1  proto kernel  scope link  src 
  10.1.1.254 table link2
ip r a 192.168.1.0/24 dev eth2  proto kernel  scope link  
  src 192.168.1.94 table link2

ip r show table link2
Multiplas Rotas
●   Configurando as tabelas de roteamentoo roteador
                                   Adicionando
                                       default na tabela link2
                                          (para 0.0.0.0/0)
ip r show table link2

ip r a default via 192.168.1.1 dev eth2 table link2

ip r a 10.1.1.0/24 dev eth1  proto kernel  scope link  src 
  10.1.1.254 table link2
ip r a 192.168.1.0/24 dev eth2  proto kernel  scope link  
  src 192.168.1.94 table link2

ip r show table link2
Multiplas Rotas
●   Configurando as tabelas de roteamento
                                      Adicione as rotas necessárias
ip r show table link2                     para todos os enlaces
                                         envolvidos no processo
                                       de roteamento dessa tabela
ip r a default via 192.168.1.1 dev eth2 table link2

ip r a 10.1.1.0/24 dev eth1  proto kernel  scope link  src 
  10.1.1.254 table link2
ip r a 192.168.1.0/24 dev eth2  proto kernel  scope link  
  src 192.168.1.94 table link2

ip r show table link2
Multiplas Rotas
●   Configurando as tabelas de roteamento
ip r show table link2

ip r a default via 192.168.1.1 dev eth2 table link2

ip r a 10.1.1.0/24 dev eth1  proto kernel  scope link  src 
  10.1.1.254 table link2
                                  Verifique se está tudo ok
ip r a 192.168.1.0/24 dev eth2  proto kernel  scope link  
  src 192.168.1.94 table link2

ip r show table link2
Multiplas Rotas
●   Configurando marcação no firewall
    –   Adicione no script do firewall:


#regras mangle
ADD="iptables ­t mangle ­A PREROUTING"
$ADD ­i eth1 ­p tcp ­­dport 80 ­j MARK ­­set­mark 2
Multiplas Rotas
●   Configurando marcação no firewall
    –   Adicione no script do firewall:   PREROUTING pois deve ser
                                          marcado antes do roteamento
                                                      ….


#regras mangle
ADD="iptables ­t mangle ­A PREROUTING"
$ADD ­i eth1 ­p tcp ­­dport 80 ­j MARK ­­set­mark 2




para verificar as regras:
iptables ­t mangle ­L ­n ­v
Multiplas Rotas
●   Configurando marcação no firewall
    –   Adicione no script do firewall:


#regras mangle
ADD="iptables ­t mangle ­A PREROUTING"
$ADD ­i eth1 ­p tcp ­­dport 80 ­j MARK ­­set­mark 2



                                          Neste exemplo marca com “2”
                                             todos os pacotes TCP
para verificar as regras:                     com porta destino 80
iptables ­t mangle ­L ­n ­v
Multiplas Rotas
 ●   Configurando regras de roteamento
     –   Verifique se a rota padrão (local) está correta
     –   Caso esteja duplicada
ip r d default via 192.168.1.1

     –   Adicione uma regra dizendo para que os pacotes
          marcados com “2” utilizem a tabela link2
ip rule add from all fwmark 0x2 lookup link2 prio 5

     –   Verificando as regras:
 ip rule show
Multiplas Rotas
 ●   Configurando regras de roteamento
     –   Verifique se a rota padrão (local) está correta
     –   Caso esteja duplicada               Pode-se trabalhar com as
                                                  prioridades das regras
ip r d default via 192.168.1.1

     –   Adicione uma regra dizendo para que os pacotes
          marcados com “2” utilizem a tabela link2
ip rule add from all fwmark 0x2 lookup link2 prio 5

     –   Verificando as regras:
 ip rule show
Multiplas Rotas
●   O que ocorre:
    –   Pacotes provenientes da eth1 TCP com porta
         destino 80 utilizarão o roteador 192.168.1.1 na
         tabela link2

    –   Todos os demais pacotes utilizarão o roteador
         padrão da tabela local

    –   É possível criar outras tabelas de roteamento
Multiplas Rotas
●   O que ocorre:
    –   Caso um dos links caia, ainda é necessária
         intervenção manual...

    –   Desenvolvimento de script/programa para
         reconfiguração das rotas (regras de roteamento)
         ●   Precisa ser desenvolvido...

    –   QoS – adapte o TCNG (aula de QoS)

Multiplos links, multiplas rotas

  • 1.
    Tecnologia em Redesde Computadores Tópicos Avançados Parte 11: Multiplas Rotas Professor: André Peres andre.peres@poa.ifrs.edu.br Instituto Federal do Rio Grande do Sul - IFRS Porto Alegre
  • 2.
    Situação Exemplo – Empresa que deve garantir a disponibilidade de seus serviços via Internet ● Ponto único de falhas: link de Internet ● Solução: redundância de links
  • 3.
    Situação Exemplo – Como configurar estes links ??? Link secundário Link principal (stand-by) (ativo)
  • 4.
    Situação Exemplo – Como configurar estes links ??? Link 2 Link 1 Serviço X Serviço A Serviço Y Serviço B Serviço Z Serviço C
  • 5.
    Situação Exemplo – É possível a configuração de rotas múltiplas ● Marcação de pacotes ● Conforme a marcação, utiliza uma rota diferente ● Divisão do tráfego (QoS) – Por prioridade – Por tipo (rajadas, constante, …)
  • 6.
    Multiplas Rotas ● Criando multiplas tabelas de roteamento – Ubuntu server vi /etc/iproute2/rt_tables # reserved values # 255 local 254 main 253 default 0 unspec Adicionar no final do arquivo # o id e nome da nova # local tabela de roteamento # #1 inr.ruhep 2 link2
  • 7.
    Multiplas Rotas ● Configurando as tabelas de roteamento ip r show table link2 ip r a default via 192.168.1.1 dev eth2 table link2 ip r a 10.1.1.0/24 dev eth1  proto kernel  scope link  src  10.1.1.254 table link2 ip r a 192.168.1.0/24 dev eth2  proto kernel  scope link   src 192.168.1.94 table link2 ip r show table link2
  • 8.
    Multiplas Rotas Visualizar as entradas ● Configurando as tabelas de roteamento da tabela de roteamento link2 ip r show table link2 ip r a default via 192.168.1.1 dev eth2 table link2 ip r a 10.1.1.0/24 dev eth1  proto kernel  scope link  src  10.1.1.254 table link2 ip r a 192.168.1.0/24 dev eth2  proto kernel  scope link   src 192.168.1.94 table link2 ip r show table link2
  • 9.
    Multiplas Rotas ● Configurando as tabelas de roteamentoo roteador Adicionando default na tabela link2 (para 0.0.0.0/0) ip r show table link2 ip r a default via 192.168.1.1 dev eth2 table link2 ip r a 10.1.1.0/24 dev eth1  proto kernel  scope link  src  10.1.1.254 table link2 ip r a 192.168.1.0/24 dev eth2  proto kernel  scope link   src 192.168.1.94 table link2 ip r show table link2
  • 10.
    Multiplas Rotas ● Configurando as tabelas de roteamento Adicione as rotas necessárias ip r show table link2 para todos os enlaces envolvidos no processo de roteamento dessa tabela ip r a default via 192.168.1.1 dev eth2 table link2 ip r a 10.1.1.0/24 dev eth1  proto kernel  scope link  src  10.1.1.254 table link2 ip r a 192.168.1.0/24 dev eth2  proto kernel  scope link   src 192.168.1.94 table link2 ip r show table link2
  • 11.
    Multiplas Rotas ● Configurando as tabelas de roteamento ip r show table link2 ip r a default via 192.168.1.1 dev eth2 table link2 ip r a 10.1.1.0/24 dev eth1  proto kernel  scope link  src  10.1.1.254 table link2 Verifique se está tudo ok ip r a 192.168.1.0/24 dev eth2  proto kernel  scope link   src 192.168.1.94 table link2 ip r show table link2
  • 12.
    Multiplas Rotas ● Configurando marcação no firewall – Adicione no script do firewall: #regras mangle ADD="iptables ­t mangle ­A PREROUTING" $ADD ­i eth1 ­p tcp ­­dport 80 ­j MARK ­­set­mark 2
  • 13.
    Multiplas Rotas ● Configurando marcação no firewall – Adicione no script do firewall: PREROUTING pois deve ser marcado antes do roteamento …. #regras mangle ADD="iptables ­t mangle ­A PREROUTING" $ADD ­i eth1 ­p tcp ­­dport 80 ­j MARK ­­set­mark 2 para verificar as regras: iptables ­t mangle ­L ­n ­v
  • 14.
    Multiplas Rotas ● Configurando marcação no firewall – Adicione no script do firewall: #regras mangle ADD="iptables ­t mangle ­A PREROUTING" $ADD ­i eth1 ­p tcp ­­dport 80 ­j MARK ­­set­mark 2 Neste exemplo marca com “2” todos os pacotes TCP para verificar as regras: com porta destino 80 iptables ­t mangle ­L ­n ­v
  • 15.
    Multiplas Rotas ● Configurando regras de roteamento – Verifique se a rota padrão (local) está correta – Caso esteja duplicada ip r d default via 192.168.1.1 – Adicione uma regra dizendo para que os pacotes marcados com “2” utilizem a tabela link2 ip rule add from all fwmark 0x2 lookup link2 prio 5 – Verificando as regras:  ip rule show
  • 16.
    Multiplas Rotas ● Configurando regras de roteamento – Verifique se a rota padrão (local) está correta – Caso esteja duplicada Pode-se trabalhar com as prioridades das regras ip r d default via 192.168.1.1 – Adicione uma regra dizendo para que os pacotes marcados com “2” utilizem a tabela link2 ip rule add from all fwmark 0x2 lookup link2 prio 5 – Verificando as regras:  ip rule show
  • 17.
    Multiplas Rotas ● O que ocorre: – Pacotes provenientes da eth1 TCP com porta destino 80 utilizarão o roteador 192.168.1.1 na tabela link2 – Todos os demais pacotes utilizarão o roteador padrão da tabela local – É possível criar outras tabelas de roteamento
  • 18.
    Multiplas Rotas ● O que ocorre: – Caso um dos links caia, ainda é necessária intervenção manual... – Desenvolvimento de script/programa para reconfiguração das rotas (regras de roteamento) ● Precisa ser desenvolvido... – QoS – adapte o TCNG (aula de QoS)