1 router 2 isps

2 de febrero de 2009

El sueño de todo departamento de informática. Tener para el solito una salida hacia Internet para navegar /descargar cosas guarras y otra salida solo para los servicios prioritarios para la empresa (correo, voip, conexiones VPN, etc).

Este post describe como tener un router Cisco (por ejemplo un 1800) con dos ISP’s. Por un ISP envío todo el tráfico de navegación de la red interna y por otro ISP el tráfico "importante" de los servidores...

Para entrar en materia: el primer ISP (le llamaremos malo) nos entra por una ADSL de 8Mb con IP pública x.x.x.x. El segundo ISP (le llamaremos bueno) nos entra por una FastEthernet (que nos vienen de otro router Cisco de fibra) de 2Mb de envío y recepción garantizados y con una IP pública y.y.y.y.


Lo primero que hacemos es configurar cada una de las dos interfaces. Para la ADSL configuramos la interfaz de ATM y para la otra una interfaz de FastEthernet. También configuramos el NAT para cada una de las interfaces:

interface ATM0.1 point-to-point
 description --- WAN del ISP malo
 ip address x.x.x.x 255.255.255.192
 ip nat outside
 ip virtual-reassembly
 pvc 8/32
  encapsulation aal5snap
!
interface FastEthernet0
 description --- WAN del ISP bueno
 ip address y.y.y.y 255.255.255.248
 ip nat outside
 ip virtual-reassembly
 duplex auto
 speed auto
!
...
ip nat inside source list 101 interface FastEthernet0 overload
ip nat inside source list 102 interface ATM0.1 overload
...

Ahora le decimos al router que por defecto envíe todo por la interfaz y.y.y.y (el ISP bueno):

ip route 0.0.0.0 0.0.0.0 y.y.y.y

El siguiente paso es crear una lista de acceso de forma que todos los paquetes que cumplan esa lista de acceso irán por el ISP malo. La lista de acceso será la siguiente:

access-list 103 remark --- route-map para el ISP malo
access-list 103 deny   ip host 192.168.1.45 any
access-list 103 deny   ip host 192.168.1.67 any
access-list 103 permit ip 192.168.1.0 0.0.0.255 any

En esta lista de acceso le digo que permita por el ISP malo toda la red 192.168.1.0 a excepción de dos servidores 192.168.1.45 y 192.168.1.67 que les obligo a ir por el ISP bueno.
Una vez creada la lista de acceso utilizamos el comando route-map que es el que hace posible toda esta diferenciación de rutas por dos ISP diferentes.

route-map datos permit 10
 match ip address 103
 set interface ATM0.1
!

Con este comando route-map lo que le estoy diciendo al router es que si el paquete cumple la access-list 103, envie ese paquete por la interfaz ATM (el ISP malo).

Para finalizar aplicamos el route-map a la interfaz la cual decidirá si los paquetes deben seguir un camino u otro:

interface FastEthernet1
 description --- LAN interna
 ip address 192.168.1.1 255.255.255.0
 ip nat inside
 ip virtual-reassembly
 ip tcp adjust-mss 1452
 ip policy route-map datos
!

Este ejemplo es muy básico, pero lógicamente la lista de acceso 103 se puede complicar todo lo que uno quiera para dejar pasar o no los servidores o redes que uno quiera.

Mas información:
+ Cisco route-map
+ How to: route map