пятница, 4 апреля 2008 г.

Troubleshooting

На работе появилась проблема. Пользователи не могли открыть определенный сайт. Никаких тайм аутов, ничего вообще, просто ожидание ответа и все. Из других мест ресурс нормально открывался, из корпоративной сети - никак. Чуть позже выяснилось, что не открываются все сайты адресного пространства хостера (91.149.xxx.0/24). На сетевом уровне все в порядке, маршруты есть, пинг есть. Картина была примерно такая:
1) root@sungate root# telnet mail.example.by 80
Trying 91.149.xxx.49...
Connected to mail.example.by (91.149.xxx.49).
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Wed, 02 Apr 2008 07:16:44 GMT
Server: Apache/2.0.53 (Debian GNU/Linux) PHP/4.4.0-2 mod_ssl/2.0.53
OpenSSL/0.9.7e
Accept-Ranges: bytes
Content-Length: 3247
Connection: close
Content-Type: text/html

Connection closed by foreign host.



2) root@sungate root# telnet mail.example.by 80
Trying 91.149.xxx.49...
Connected to mail.example.by (91.149.xxx.49).
Escape character is '^]'.
GET / HTTP/1.0

//висит, ничего не возвращает !



3) root@sungate root# telnet mail.example.by 80
Trying 91.149.xxx.49...
Connected to mail.example.by (91.149.xxx.49).
Escape character is '^]'.
GET / HTTP/1.1
host: mail.example.by

//висит, ничего не возвращает !

Общение с администраторами хостинга ничего дельного к сожалению не дало.
Конфиг PIX'a ничего не запрещал. Даже permit ip any any ничего не дало.

Однако в логах было отловлено такое вот сообщение
Apr 03 2008 10:00:34: %PIX-4-419001: Dropping TCP packet from internet:91.149.xxx.49/80 to inside:194.158.xxx.7/2565, reason: MSS exceeded, MSS 1380, data 1395
Дальше дело техники. Решение бысто нашлось на cisco.com и с небольшими изменениями было притворено в жизнь.
pixfirewall(config)#access-list http_mss_allow
extended permit tcp any 91.149.xxx.0 255.255.255.0

pixfirewall(config)#
pixfirewall#configure terminal
pixfirewall(config)#
pixfirewall(config)#class-map http_mss_allow_map
pixfirewall(config-cmap)#match access-list
http_mss_allow

pixfirewall(config-cmap)#exit
pixfirewall(config)#tcp-map mss-map
pixfirewall(config-tcp-map)#exceed-mss allow
pixfirewall(config-tcp-map)#exit
pixfirewall(config)#policy-map internet-policy
pixfirewall(config-pmap)#class http_mss_allow_map
pixfirewall(config-pmap-c)#set connection advanced-
options mss-map

pixfirewall(config-pmap-c)#exit
pixfirewall(config-pmap)#exit
pixfirewall(config)#service-policy http_mss_allow_map
interface internet
pixfirewall#