CISCO - encaminhamento de cabeçalho do host é possível?

1

É possível realizar um tipo de roteamento baseado em políticas em Cisco ios, que encaminha solicitações 80port no IP externo para hosts internos com base nas informações do cabeçalho do host (endereço http).

Então, se alguém acessa o link (ip externo), ele encaminha a solicitação para internal_ip1 e se for link , ele encaminha a solicitação para internal_ip2

Eu entendo muito bem que isso envolve analizar dados HTTP (nível de aplicativo), e é possível realizar tal cenário usando o proxy do ISA Server ou Varnish.

Mas é possível fazer um truque no cisco?

    
por Ross Ivantsiv 28.02.2014 / 09:29

3 respostas

0

So if somebody accesses http://server1.com (external ip) it forwards request to internal_ip1 and if it is http://server2.com it forwards request to internal_ip2

I pretty well understand that this involves analizing HTTP data (application level), and it's possible to accomplish such scenario using ISA Server or Varnish proxy.

But is it possible to do such a trick on cisco?

Sim, mas você terá que observar os bits DSCP em seu tráfego HTTP interessante. Minha solução abaixo usa o NBAR (Network-based Application Recognition) para observar os bits DSCP em tráfego interessante, com PBR (roteamento baseado em política) para roteamento baseado no comentário mencionado anteriormente.

Requisitos:

  • O roteador deve suportar nbar ; Normalmente, isso é roteadores baseados em CPU, como um Cisco 1800/1900 Series. O Cisco ASR também suporta NBAR
  • O roteador deve oferecer suporte a Política Roteamento Baseada em Dados
  • Você não deve usar DSCP AF12 ou AF13 em qualquer outro lugar da rede.

Config:

class-map match-all CLASSIFY_HTTP_01
 match protocol http host *server1.com*
class-map match-all CLASSIFY_HTTP_02
 match protocol http host *server2.com*
!
policy-map REMARK_HTTP
 class CLASSIFY_HTTP_01
  set dscp af12
 class CLASSIFY_HTTP_02
  set dscp af13
!
ip access-list extended AF12
 permit ip any any dscp af12
!
ip access-list extended AF13
 permit ip any any dscp af13
!
route-map PBR permit 10
 match ip address AF12
  ! This is a next-hop leading to internal_ip1
  set ip next-hop 192.0.2.129
 match ip address AF13
  ! This is a next-hop leading to internal_ip2
  set ip next-hop 192.0.2.130
!
interface FastEthernet0/1
 description [All HTTP ingress to this interface]
 ip address 192.0.2.2 255.255.255.252
 ip policy route-map PBR
 service-policy input REMARK_HTTP

Tudo isso dito, muitas vezes você está muito melhor usando um balanceador de carga HTTP real, como um F5 para esse tipo de coisa. Você pode forçar um roteador a fazer isso, mas é um pouco antinatural.

    
por 01.03.2014 / 10:23
1

A solução apenas parcialmente resolve o problema, porque eu não mencionei que usamos NAT.

Assim, o NBAR inspeciona todos os pacotes de entrada através da política de serviços na interface externa e atribui bits DSCP a eles.

Agora, o problema é obter esses pacotes traduzidos em NAT para ips internos. Esquematicamente eu preciso de algo assim:

nat inside source static tcp <internal_ip_1> 80 interface <outside_interface> 80 <if dscp bits = af13> 
nat inside source static tcp <internal_ip_2> 80 interface <outside_interface> 80 <if dscp bits = af12>
    
por 16.04.2014 / 07:32
1

Futher à resposta original e para superar o problema de NAT, você deve poder atribuir a política de serviço à interface interna usando a seguinte linha:

interface FastEthernet0/1 
 description Inside Interface
 ip address 192.0.2.2 255.255.255.252
 ip nat inside
 ip policy route-map PBR
 service-policy output REMARK_HTTP

Não estou em condições de testar isso no momento, mas, como a Tradução de endereços de rede já foi tratada, imagino que isso funcione bem.

Desculpe desenterrar uma postagem antiga, mas estou interessado em fazer o mesmo que o pôster original e pensei em adicionar isso para o benefício de outras pessoas.

    
por 15.04.2015 / 02:22

Tags