Problema con la salida a internet … bluecoat + checkpoint + cisco adsl

Un problema raro que lleva unos días comiéndome la cabeza. Un router cisco 2800 con un adsl de telefónica (normal y corriente, ip dinamica), detrás una pareja de nokias con checkpoint en activo-activo y en una de las DMZ’s un bluecoat 600.

El caso es que el puñetero bluecoat no navegaba a ningún sitio. Bueno, realmente solo podía navegar por google, y esto era lo mas raro …

En el firewall no se veía nada raro, solo paquetes desde mi pc de pruebas hacia el proxy por el puerto 8080 y luego paquetes con origen el proxy y destino internet …

En el bluecoat no aparecia ninguna mensaje, solo un error despues de un rato diciendo que la url era inaccesible.

Las trazas no decian tampoco nada …

start transaction ——————-
CPL Evaluation Trace: transaction ID=291967
condition=!__is_notify_internal
MATCH: server.certificate.validate(yes) server.certificate.validate.ignore(untrusted-issuer, expiration) server.certificate.validate.check_revocation(no)

MATCH: client.address=x.x.x.x authenticate(no) trace.request(yes) trace.rules(yes) trace.destination(All_tunel)
condition=!__is_notify_internal

[Rule] url=http://notify.bluecoat.com/
[Rule] [Rule] [Rule] MATCH: action.__delete_notify_cookies(yes)

connection: service.name=Explicit HTTP client.address=x.x.x.x proxy.port=8080
time: 2012-09-14 09:05:04 UTC
GET http://www.inseguridad.org/
DNS lookup was unrestricted
Cookie: __utma=134097878.1529417648.1334045902.1336030869.1338134815.29
Cookie: __utmz=134097878.1338134817.29.4.utmcsr=google|utmccn=(organic)|utmcmd=organic|utmctr=galicia%20skate
Cookie: BCSI-CS-cdb9534f4bf1de38=2
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:15.0) Gecko/20100101 Firefox/15.0.1
user: unauthenticated
url.category: Blogs/Personal [email protected] Coat
application.name: none
application.operation: none
DSCP client outbound: 65
DSCP server outbound: 65

stop transaction ——————–

Con el sniifer se veía algo raro …

Todos los paquetes que llegaban al firewall desde el proxy iban con el flag de Don’t Fragment, el paquete salia a internet y volvía … pero no se llegaba a finalizar la comunicación.

Sin embargo, desde un PC en la misma DMZ si que se podia navegar, y todos los paquetes iban sin el Don’t Fragment …

Revisando la configuración del router … resulta que se le cambiaba la MTU en el interface dialer0 y faltaba por ajustar el tcp MSS (Maximum Segment Size) …. (ver http://www.cisco.com/en/US/tech/tk827/tk369/technologies_white_paper09186a00800d6979.shtml.

Digo que, al venir los paquetes del proxy, como vienen con toda la porquería que les mete, superarían el tamaño máximo y cascaría …
Añadiendo la linea a la configuración del Dialer0 empezó a funcionar … lo que no acabo de comprender es porque funcionaba google …

La configuración del router se quedo así …

ip vrf hacia-inet

interface Port-channel1.900
encapsulation dot1Q 900
ip vrf forwarding hacia-inet
ip address x.x.x.x 255.255.255.224 (La ip con la que se comunica con el fw)
ip nat inside
ip virtual-reassembly

interface ATM0/1/0
description ADSL TELEFONICA –
no ip address
ip nat outside
ip virtual-reassembly
no ip mroute-cache
atm restart timer 300
no atm ilmi-keepalive
pvc 8/32
pppoe-client dial-pool-number 1
!
interface Dialer0
description Inet
ip address negotiated
no ip redirects
no ip unreachables
no ip proxy-arp
ip mtu 1492
ip nat outside
ip virtual-reassembly
encapsulation ppp
ip tcp adjust-mss 1452 -> Esto es lo que faltaba
dialer pool 1
dialer remote-name redback
dialer idle-timeout 0
dialer persistent
dialer-group 1
no cdp enable
ppp authentication pap chap callin
ppp chap hostname [email protected]
ppp chap password xxxx
hold-queue 224 in

ip route vrf hacia-inet 0.0.0.0 0.0.0.0 Dialer0
ip route vrf hacia-inet 10.0.0.0 255.0.0.0 x.x.x.x (Default hacia internet, privadas hacia el firewall)

ip nat translation timeout 3600
ip nat translation tcp-timeout 3600
ip nat translation pptp-timeout 3600
ip nat translation finrst-timeout 50
ip nat translation dns-timeout 30
ip nat inside source list 101 interface Dialer0 vrf hacia-inet overload

access-list 101 remark NAT_INET
access-list 101 permit ip any any
access-list 101 remark NAT_INET

Lo jodido del caso es que no había ningún error en el router, las tablas de NAT se veían bien

show ip nat translations

El debug ip nat tampoco decía nada raro (o al menos no lo encontré)…

Hay que ver el lado positivo … he estado jugando con las trazas en el proxy (https://kb.bluecoat.com/index?page=content&id=KB2935&actp=search&viewlocale=en_US&sea) aunque al final no haya tenido nada que ver.