Назад | Перейти на главную страницу

Что должно произойти при получении сообщения ICMP «Требуется фрагментация»?

В общем и в частности на машине Solaris 10 ...

Видите ли, у нас проблема в нашей сети. Я обрабатываю несколько экземпляров обратного прокси-сервера на сервере Solaris 10, который находится за балансировщиком нагрузки, и некоторые пользователи обращаются к нему через брандмауэр NAT и ... в любом случае, в какой-то момент 2 дня назад все рухнуло и не работало .

После нескольких часов сбора пакетов и анализа мы видим, что когда один из внутренних клиентов пытается получить доступ к сайту, в какой-то момент (в частности, когда мы отправляем сообщение Server Hello SSL, например), LB отправляет обратно сообщение ICMP Fragmentation Needed, в котором говорится, что MTU составляет 508 байтов, и поскольку пакеты устанавливаются с битом Dont Fragment, как это установлено по умолчанию в Solaris ...

Хорошо, все в порядке. Но затем ... все, что происходит, это то, что, поскольку ACK не был получен (потому что пакеты никогда не были получены клиентом), машина Solaris снова отправляет пакеты ... того же размера, того же бита DF.

Так что, конечно, в итоге общение становится невозможным.

Разве ОС Solaris после получения этого сообщения ICPM не должна сбрасывать бит DF для этих пакетов или настраивать MSS соединения так, чтобы он был <MTU, о котором нам сообщает сообщение? Это что-то, что можно где-то настроить как включено / отключено? Или это то, что должно было случиться?

Я не уверен, как именно обнаружение Path MTU происходит в Solaris 10, но если он не учитывает это сообщение, то как он регулирует MSS?

Заранее благодарим за любой указатель, помощь или просто идею о том, где искать :)