Встроенный NAT
NAT (Network Address Translation) — это механизм, позволяющий маршрутизатору осуществлять трансляцию (подмену) сетевых адресов для транзитного трафика. Наряду с адресами отправителя/получателя могут также подменяться номера TCP или UDP-портов отправителя/получателя. Технология NAT чаще всего используется для предоставления одного публичного IP-адреса множеству локальных пользователей с приватными адресами. А также для обеспечения доступа из LAN в WAN, то есть обеспечения возможности устройствам с приватными адресами отсылать/получать данные из глобальной сети (от устройств с публичными адресами). При использовании NAT топология внутренней сети скрыта и доступ из внешней сети может быть ограничен.
Существует два вида NAT:
- source NAT (SNAT),
- destination NAT (DNAT), и три основных концепции трансляции адресов (в рамках функционала EcoRouter):
- static NAT,
- dynamic NAT,
- NAT with overload (PAT).
Source NAT — это наиболее распространённый тип NAT, суть механизма работы которого состоит в подмене IP-адреса отправителя (источника) на пути пакета из внутренней сети во внешнюю и обратной подмене адреса получателя на пути пакета из внешней сети во внутреннюю. Частый сценарий применения: обеспечение доступа из LAN в WAN.
Destination NAT — тип NAT, суть механизма работы которого состоит в подмене IP-адреса получателя (назначения) на пути пакета из внешней сети во внутреннюю и обратной подмене адреса отправителя на пути пакета из внутренней сети во внешнюю. Частый сценарий применения: обеспечение доступа извне к каким-либо сервисам, предоставляемым серверами, находящимися в LAN-сети.
Static NAT — статическая трансляция один-в-один — подмена одного заранее определённого IP-адреса на другой, также заранее определённый. Правило о такой подмене хранится в таблице трансляций неограниченное количество времени или до тех пор, пока сохраняется соответствующая конфигурация маршрутизатора.
Dynamic NAT — неоднозначная трансляция один-в-один, то есть подмена одного из заранее определённых IP-адресов на первый свободный из обозначенного диапазона (пула). Правило о такой подмене хранится в таблице трансляций до тех пор, пока внутренний и внешний хосты продолжают обмен данными. Если в течение некоторого установленного времени трафик по этой трансляции отсутствует, правило удаляется и адрес освобождается, то есть возвращается в пул.
NAT with overload (PAT) — трансляция много-в-один, то есть подмена нескольких заранее определённых внутренних адресов на один и тот же внешний. Правило о такой подмене кроме самих адресов содержит TCP/UDP порт источника, который используется для идентификации трафика на принадлежность тому или иному внутреннему хосту.
Таблица — Описание команд для настройки NAT на EcoRouter
Команда | Описание |
---|---|
ip nat inside | Команда вводится в конфигурационном режиме (config-if). В результате выполнения этой команды интерфейс помечается как “внутренний интерфейс NAT”, это означает, что весь трафик, вошедший на этот интерфейс помечается как “возможно транслируемый” |
ip nat outside | Команда вводится в конфигурационном режиме (config-if). В результате выполнения этой команды интерфейс помечается как “внешний интерфейс NAT”, это означает, что весь трафик, предназначенный для выхода через этот интерфейс и помеченный как “возможно транслируемый” будет подвергаться трансляции |
ip nat source static A.B.C.D Q.W.E.R [vrf] | Команда вводится в конфигурационном режиме (config). В результате выполнения этой команды будет создана статическая трансляция адрес-в-адрес отправителя в направлении inside-to-outside . Параметр vrf является необязательным и без указания определённого vrf правило будет создано для default vrf |
ip nat destination static A.B.C.D Q.W.E.R [hairpin] [vrf] | Команда вводится в конфигурационном режиме (config). В результате выполнения этой команды будет создана статическая трансляция адрес-в-адрес получателя в направлении inside-to-outside. Параметр hairpin включает возможность доступа к ресурсу в локальной сети по IP адресу, который используется для доступа к ресурсу из интернета. Параметр vrf является необязательным и без указания определённого vrf правило будет создано для default vrf |
ip nat source static network A.B.C.D Q.W.E.R mask [vrf] | Команда вводится в конфигурационном режиме (config). В результате выполнения этой команды будет создано сразу несколько статических трансляций адрес-в-адрес для двух равных диапазонов адресов. Количество трансляций определяется параметром mask (маска подсети). Параметр vrf является необязательным и без указания определённого vrf правило будет создано для default vrf |
ip nat source static A.B.C.D interface <IF_NAME> [vrf] | Команда вводится в конфигурационном режиме (config). В результате выполнения этой команды будет создана статическая трансляция адрес-в-адрес. В качестве inside global адреса для трансляции будет взят адрес, назначенный на указанный в команде интерфейс. Параметр vrf является необязательным и без указания определённого vrf правило будет создано для default vrf |
ip nat pool <POOL_NAME> <RANGE> | Команда вводится в конфигурационном режиме (config). В результате выполнения этой команды будет создан пул адресов, который можно будет использовать для задания правил динамических трансляций. Диапазон адресов можно задавать через дефис и через запятую: 1.1.1.1-1.1.1.10,2.2.2.2,3.3.3.5-3.3.4.5 |
ip nat source dynamic inside pool <POOL_NAME> overload A.B.C.D [vrf] | Команда вводится в конфигурационном режиме (config). В результате выполнения этой команды начнут создаваться динамические трансляции много-в-один для пакетов из LAN, source IP которых будет попадать в диапазон адресов, определяемый пулом. Время жизни трансляции после прохождения последнего пакета = 300 секунд. В качестве inside global адреса для трансляции будет взят адрес, указанный после ключевого слова overload. Параметр vrf является необязательным и без указания определённого vrf правило будет создано для default vrf |
ip nat source dynamic inside pool <POOL_NAME> overload interface <IF_NAME> [vrf] | Команда вводится в конфигурационном режиме (config). В результате выполнения этой команды начнут создаваться динамические трансляции много-в-один для пакетов из LAN, source IP которых будет попадать в диапазон адресов, определяемый пулом. Время жизни трансляции после прохождения последнего пакета = 300 секунд. В качестве inside global адреса для трансляции будет взят адрес, назначенный на указанный в команде интерфейс. Параметр vrf является необязательным и без указания определённого vrf правило будет создано для default vrf |
ip nat translation (icmp-timeout|tcp-timeout|udp-timeout) <30-14400> | Команда вводится в конфигурационном режиме (config). В результате выполнения этой команды можно изменить значения по-умолчанию времени жизни трансляций для разных протоколов. Значения по умолчанию 3600 секунд для TCP и 300 секунд для всех остальных протоколов |
Посмотреть состояние таблицы трансляций на EcoRouter можно при помощи команды show ip nat translations
:
ecorouter#show ip nat translations
Static translations:
Source Translated VRF
3.3.3.3 4.4.4.4 default
PAT translations:
Source Translated Destination IF
Time: 5s, Protocol: ICMP, VRF: default
IN: 10.10.10.10 20.20.20.21 20.20.20.20 N/A
OUT: 20.20.20.20 20.20.20.21 20.20.20.21 N/A
Time: 3s, Protocol: TCP, VRF: default
IN: 10.10.10.10:171 20.20.20.21:35005 20.20.20.20:35091 N/A
OUT: 20.20.20.20:35091 20.20.20.21:35005 20.20.20.21:35005 N/A