Случился интересный инцидент.
После перевода всех сетей филиалов на маршрутизацию через HP MSR на внешних каналах и 3Com 5500 (HP 5500) внутри офисов, у пользователей в Питере пропала возможность работы с базой данных в Москве. К базе обращается самописный модуль, который при логине делает запрос к базе вида - select * from table и должен получить около 160 строк значений, после чего продолжает работу. На деле получалось так, что запрос возвращал около 40 строк и зависал.
Админ в Питере настаивал, что проблема в MSR, потому что как только он понижал mtu на клиенте до значения ниже, чем в тоннеле ADVPN запрос отрабатывался корректно и проблемы исчезали.
Я, как человек ответственный за сеть предприятия, был уверен, что проблема в другом. Анализ трафика Wireshark'ом ничего конкретного не показал, подозрение вызывало лишь большое количество TCP Retransmission и дубли ACK. Позже я узнал, что сервер с базой данных был недавно обновлен до windows server 2012, а после этого его откатили на windows server 2008 в попытках решить проблему радикально.
Внимательно изучив свойства сетевого адаптера на сервере, я увидел включенную опцию Large Send Offload, которая группирует на сервере большие TCP пакеты (до 64кб) и отправляет их все скопом в сетевуху, опция сделана в лучших побуждениях и по умолчанию включена на всех адаптерах, которые ее поддерживают. Но она не позволяет корректно отрабатываться механизму Path MTU Discovery, в следствии чего сервер шлет пакеты, которые не могут физически пройти через интерфейсы сетевого оборудования и роутер их дропает.
Отключив эту опцию на сервере с БД, проблемы у клиентов пропали. И скорость обмена с базой также несколько возросла.

Комментариев нет:
Отправить комментарий