RFC: 3022
Оригинал: Traditional IP Network Address Translator (Traditional NAT)
Предыдущие версии: RFC 1631
Категория: Информационный
Дата публикации:
Авторы: ,
Перевод: Николай Малых

4. Преобразование пакетов

Пакеты, относящиеся к сессиям NAT, подвергаются трансляции для обоих направлений. Детальное описание преобразований, выполняемых для отдельных пакетов рассматривается ниже.

4.1. Манипуляции с заголовками IP, TCP, UDP и ICMP

В модели Basic NAT требуется изменять заголовок IP в каждом пакете. Модификация включает адрес IP (адрес отправителя для исходящих пакетов и адрес получателя для входящих) и контрольную сумму IP.

Для сессий TCP ([TCP]) и UDP ([UDP]) также требуется изменять контрольную сумму в заголовках TCP/UDP. Это связано с тем, что контрольная сумма TCP/UDP учитывает также псевдозаголовок, содержащий IP-адреса отправителя и получателя. Исключением являются случаи когда контрольная сумма заголовка UDP имеет значение 0 — в этом случае поле контрольной суммы не меняется. Для пакетов ICMP Query ([ICMP]) не требуется вносить изменений в заголовок ICMP, поскольку контрольная сумма в заголовке ICMP не учитывает адресов IP.

В модели NAPT изменение заголовка IP похоже на случай Basic NAT. Для сессий TCP/UDP изменяется также номер порта TU (порт отправителя для исходящих пакетов и порт получателя для входящих) в заголовке TCP/UDP. Заголовок ICMP в пакетах ICMP также требуется изменять для корректировки значения идентификатора запроса и контрольной суммы заголовка ICMP. Идентификатор запроса хоста внутренней сети в исходящих пакетах должен заменяться на присвоенный при трансляции идентификатор, а для входящих откликов должно выполняться обратное преобразование. Контрольная сумма заголовка ICMP должна корректироваться с учетом трансляции Query ID.

2007 - 2017 © Русские переводы RFC, IETF, ISOC.