Какова точка переключения трафика на порту 4500 на этапе 1 согласования IPSec, начиная с 5-го пакета и далее? Поскольку NAT уже обнаружен в самом пакете 3 и 4, не можем ли мы просто продолжить работу с портом 500 и включить заголовок udp в пакеты ESP?
Поскольку NAT обнаружен, мы можем продолжить работу только с портом 500 и включить заголовок UDP в пакеты ESP. Это позволит промежуточным устройствам NAT без проблем выполнять преобразование адресов порта.
Проблема заключается в мультиплексировании IKE и ESP на одном и том же UDP-порту. Чтобы различать два протокола, необходимо как-то пометить один или другой (в противном случае пришлось бы использовать некоторую потенциально подверженную ошибкам эвристику).
Таким образом, продолжение использования порта 500 UDP означало бы пометить пакеты ESP как пакеты, не относящиеся к IKE, чтобы получатель мог правильно решить, обрабатывать ли пакет как ESP или передать его процессу IKE. В первые два проекта из UDP-инкапсуляция пакетов IPsec ESP (RFC 3948) фактически определил это таким образом. В качестве префикса к фактическому пакету ESP (между заголовком UDP и заголовком ESP) был определен маркер, состоящий из восьми байтов, не относящийся к IKE, в том месте, где хранится IKE SPI инициатора в пакетах IKE.
Проблема заключалась, конечно, в том, что пакетов ESP обычно намного больше, чем пакетов IKE, и накладывать дополнительные восемь байтов (в дополнение к заголовку UDP) на каждый из них было не идеально.
Альтернативой была маркировка пакетов IKE, а именно версия 02 проекта определены и в итоге оказались в RFC. Нулевой маркер не-ESP из четырех байтов в месте, где SPI хранится в пакете ESP, вставляется между заголовком UDP и IKE.
Однако это означало, что порт 500 нельзя было использовать для таких пакетов, потому что все сообщения IKE (даже первые) должны были быть помечены таким образом, что не было бы обратно совместимо с реализациями IKE / IPsec, которые не поддерживали NAT-обход. Вместо этого для инкапсулированных в UDP ESP и IKE с маркером не-ESP используется отдельный порт. А чтобы создать сопоставление с NAT до того, как будут переданы любые пакеты ESP, инкапсулированные в UDP (т.е. чтобы входящий трафик мог обрабатываться даже до отправки исходящего трафика), переключение на порт 4500 происходит, как только IKE обнаруживает, что NAT является настоящее время.