Хотя формального «соединения» с UDP не существует, по-прежнему существует соглашение, согласно которому клиенты отправляют запросы и ожидают получения ответов с исходным IP-адресом и обменом порта на IP-адрес и порт Destinatoin.
Брандмауэры с сохранением состояния и NAT, таким образом, предполагают, что пакеты с заданной комбинацией исходного IP / порта источника / IP-адреса назначения / порта назначения и соответствующей комбинации с заменой источника и назначения образуют часть «соединения». Это позволяет применять правила, такие как «только исходящие соединения», к UDP и позволяет применять обратные преобразования к ответным пакетам.
К сожалению, брандмауэр или NAT не могут узнать, когда клиент завершил разговор с сервером. Поэтому он должен подождать тайм-аут, прежде чем удалить запись из своих таблиц отслеживания состояния. Это время ожидания, которое вы устанавливаете.
В принципе, было бы возможно создать блок NAT, который использовал бы подход без учета состояния для переадресации портов, сохраняя при этом подход с сохранением состояния для исходящих соединений, но проще использовать только NAT с отслеживанием состояния для всего, и похоже, что это то, что делает ваш поставщик.
К сожалению, как вы обнаружили, это отстой для UDP-серверов без сохранения состояния, обслуживающих большое количество небольших запросов. Вы попадаете в ситуацию, когда брандмауэр потребляет гораздо больше ресурсов, чем сам сервер.