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.