Пример NAT
Если сеть малого предприятия использует идентификатор сети 192.168.0.0 для интрасети и имеется public-адрес a.b.c.d, полученный от Интернет-провайдера, то NAT отображает все частные адреса в сети 192.168.0.0 в IP-адрес a.b.c.d. Если несколько частных адресов отображаются в один public-адрес с использованием NAT, TCP и UDP-порты выбираются динамически, чтобы отличить один компьютер внутри интрасети от другого.
На рис. 19.9 показано применение NAT для "прозрачного" соединения интрасети с Интернетом.
Примечание
Записи a.b.c.d и e.f.g.h представляют допустимые public-IP-адреса, выданные InterNIC или Интернет-провайдером.
Рис. 19.9. Пример использования NAT
Если частный пользователь на компьютере с адресом 192.168.0.10 соединяется с веб-сервером по адресу e.f.g.h при помощи веб-браузера, то стек IP пользователя создает IP-пакет со следующей информацией:
IP-адрес получателя: e.f.g.h |
IP-адрес отправителя: 192.168.0.10 |
Порт получателя: TCP-порт 80 |
Порт отправителя: TCP-порт 1025 |
Этот IP-пакет затем пересылается NAT для преобразования адресов исходящего пакета к следующим:
IP-адрес получателя: e.f.g.h |
IP-адрес отправителя: a.b.c.d |
Порт получателя: TCP-порт 80 |
Порт отправителя: TCP-порт 5000 |
NAT хранит отображение {192.168.0.10, TCP 1025} в {a.b.c:d, TCP 5000} в своей внутренней таблице.
Преобразованный таким образом IP-пакет пересылается через Интернет. Когда ответ получен NAT, пакет содержит следующую общую информацию об адресах:
IP-адрес получателя: a.b.c.d |
IP-адрес отправителя: e.f.g.h |
Порт получателя: TCP-порт 5000 |
Порт отправителя: TCP-порт 80 |
NAT проверяет свою адресную таблицу, отображает public-адреса в частные и передает пакет на компьютер по адресу 192.168.0.10. Посланный пакет содержит следующую информацию об адресах:
IP-адрес получателя: 192.168.0.10 |
IP-адрес отправителя: e.f.g.h |
Порт получателя: TCP-порт 1025 |
Порт отправителя: TCP-порт 80 |
Для пакетов, исходящих из NAT, IP-адрес отправителя (частный адрес) отображается в адрес, выданный Интернет-провайдером (public-адрес), а номер, порта TCP/UDP отображается в другой номер порта TCP/UDP.
Для пакетов, приходящих NAT, IP-адрес получателя (public-адрес) отображается в оригинальный адрес интрасети (частный адрес), а номер порта TCP/UDP отображается обратно к оригинальному номеру порта TCP/UDP.
Примечание
NAT правильно транслирует пакеты, содержащие IP-адрес только в IP-заголовке. IP-пакеты, содержащие IP-адрес в теле пакета, не могут правильно транслироваться при помощи NAT.