Policy Based Routing Cisco y Mikrotik, tunnel IPIP y NAT (1)

Esta entrada, con diferencia, es una de las configuraciones que más me ha hecho sudar la gota gorda…. intervienen varios factores:

1º) Tengo un proveedor de servicio que me proporciona 8 ip’s públicas
2º) Tengo que llegar con mi conexión al proveedor
3º) Hago un tunel IPIP entre la Mikrotik y mi router cisco
4º) Hay que usar nat

El motivo es que, necesito usar esas 8 ip’s y sólo determinados equipos, saldrán por el tunnel IP / ip’s públicas; el resto de máquinas de mi casa, saldrá por la conexión normal que tengo.

Primero de todo, haré la config y el esquema con cisco como cliente y mikrotik como servidor:
ipip1

Empezamos por la configuración de la mikrotik:

/interface ipip
add disabled=no dscp=0 local-address=3.3.3.3 mtu=1480 name=ipip_craem remote-address=2.2.2.2
/ip address
add address=192.168.194.1/30 disabled=no interface=ipip_craem network=192.168.194.0

add disabled=no distance=1 dst-address=1.1.1.1/32 gateway=192.168.194.2 scope=30 target-scope=10
add disabled=no distance=1 dst-address=1.1.1.2/32 gateway=192.168.194.2 scope=30 target-scope=10
add disabled=no distance=1 dst-address=1.1.1.3/32 gateway=192.168.194.2 scope=30 target-scope=10
add disabled=no distance=1 dst-address=1.1.1.4/32 gateway=192.168.194.2 scope=30 target-scope=10
add disabled=no distance=1 dst-address=1.1.1.5/32 gateway=192.168.194.2 scope=30 target-scope=10
add disabled=no distance=1 dst-address=1.1.1.6/32 gateway=192.168.194.2 scope=30 target-scope=10

Primero creamos el tunnel, le damos la ip y, para no perder la de red y broadcast, negociamos con el proveedor que nos la enrute una a una, tras pagarle unas cervezas al técnico 😉

Y ahora el lado Cisco; empezamos por el tunnel:

interface Tunnel7
description TUNNEL proveedor /29
ip address 192.168.194.2 255.255.255.252 --> ip privada del tunnel
ip mtu 1480 --> ajustamos el mtu
ip nat outside --> mis máquinas están detrás del firewall, con NAT
ip virtual-reassembly
ip policy route-map prov_lan --> policy route aplicado
qos pre-classify --> aplico QoS antes de meter en el tunnel
tunnel source 2.2.2.2 --> ip pública mia
tunnel destination 3.3.3.3 --> ip destino
tunnel mode ipip --> modo del tunnel

Creamos la política:

ip local policy route-map prov_map

Metemos en un access-list las ip’s que tendrán salida por el tunnel:

access-list 112 remark -> ACL NAT prov IPS PUBLICAS
access-list 112 permit ip host 172.26.2.9 any
access-list 112 permit ip host 172.26.2.11 any
access-list 112 permit ip host 172.26.2.5 any
access-list 112 permit ip host 172.26.2.6 any
access-list 112 permit ip host 172.26.2.12 any

Hacemos el route-map para identificar los paquetes:

route-map prov_lan permit 10
match ip address 112
set interface Tunnel7

Y ahora, nacemos el nat de las privadas a las públicas de nuestro proveedor:

ip nat inside source static 172.26.2.9 1.1.1.1
ip nat inside source static 172.26.2.11 1.1.1.2
ip nat inside source static 172.26.2.5 1.1.1.3
ip nat inside source static 172.26.2.6 1.1.1.4
ip nat inside source static 172.26.2.12 1.1.1.5

Si no ponemos el nat en el tunnel; no habrá traducción y no podremos usar las ip’s.

Ahora hemos de aplicar el policy-map a los interfaces:

interface FastEthernet0/0
bandwidth 6096
ip address dhcp
ip flow ingress
ip nat outside
ip virtual-reassembly
ip policy route-map rlan_map

interface GigabitEthernet0/1/0
ip address 172.26.2.20 255.255.255.0
ip flow ingress
ip nat inside
ip virtual-reassembly
ip policy route-map rlan_map
negotiation auto