Logo

EcoRouter

EcoNAT

EcoQOE

EcoBypass

English

  • Release Notes
  • Встроенный NAT EcoRouter Documentation / Встроенный 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). В результате выполнения этой команды будет создана статическая трансляция адрес-в-адрес. Параметр 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

    Посмотреть состояние таблицы трансляций на 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

    NAT port forwarding

    Функционал NAT port forwarding подразумевает статический проброс NAT-портов (открытие портов за NAT) для организации удаленного статического доступа до оборудования в локальной сети через NAT. Этот функционал позволяет создавать статические (существующие всегда и работающие в разных направлениях передачи трафика) правила трансляций для конкретных IP-адресов источника и получателя, а также указывать для каких TCP/UDP портов эта трансляция предусмотрена. Для создания подобных правил применяется следующая команда конфигурационного режима:

    ip nat source static <tcp/udp> <IP src> <port src> <IP dst> <port dst>

    Параметры данной команды описаны в таблице ниже. Все параметры являются обязательными!

    ПараметрОписание
    tcp или udpКлючевые слова для указания транспортного протокола
    IP srcIP-адрес источника
    port srcL4 порт источника. Может быть задан диапазон портов, для чего необходимо указать начальное и конечное значения через пробел. Размер диапазона портов источника и получателя должен совпадать (см. пример ниже)
    IP dstIP-адрес получателя
    port dstL4 порт получателя. Может быть задан диапазон портов, для чего необходимо указать начальное и конечное значения через пробел. Размер диапазона портов источника и получателя должен совпадать (см. пример ниже)

    Приведем пример использования NAT port forwarding и dynamic PAT.

    Конфигурация PAT:

    ecorouter(config)#ip nat pool TEST 10.0.0.0-10.0.0.254
    ecorouter(config)#ip nat source dynamic inside pool TEST overload interface wan

    ecorouter(config)#interface wan
    ecorouter(config-if)# ip address 77.0.0.1/30
     ecorouter(config-if)# ip nat outside

    ecorouter(config)#interface lan
     ecorouter(config-if)# ip address 10.0.0.1/24
     ecorouter(config-if)# ip nat inside

     

    Задачу организации удаленного доступа до LAN сервера с адресом 10.0.0.2 можно решить при помощи создания статического правила трансляции и определения конкретных TCP/UDP портов. Правило, которое позволит подключаться к LAN-серверу со стороны WAN, при попытке TCP подключения на адрес 77.0.0.1 и L4 порт 2222, будет выглядеть следующим образом:

    ecorouter(config)#ip nat source static tcp 10.0.0.2 22 77.0.0.1 2222         

    Пример правила с указанием диапазона портов:

    ip nat source static tcp 10.0.0.1 100 300 7.0.0.1 400 600

    Пример конфигурации static source NAT

    Конфигурация EcoRouter:

    Настройка интерфейсов и портов:

    ecorouter(config)#port te0
    ecorouter(config-port)#service-instance si0
    ecorouter(config-service-instance)#encapsulation untagged
     
    ecorouter(confige)#port te1
    ecorouter(config-port)#service-instance si1
    ecorouter(config-service-instance)#encapsulation untagged

    ecorouter(config)#interface in
    ecorouter(config-if)#ip address 10.10.10.1/24
    ecorouter(config-if)#ip nat inside
    ecorouter(config-if)#connect port te0 service-instance si0
     
    ecorouter(config)#interface out
    ecorouter(config-if)#ip address 20.20.20.1/24
    ecorouter(config-if)#ip nat outside
    ecorouter(config-if)#connect port te1 service-instance si1             

    Задание статической трансляции:

    ecorouter(config)#ip nat source static 10.10.10.10 20.20.20.21

    Пример конфигурации static source PAT


    Конфигурация EcoRouter:

    Настройка интерфейсов и портов:

    ecorouter(config)#port te0
    ecorouter(config-port)#service-instance si0
    ecorouter(config-service-instance)#encapsulation untagged
     
    ecorouter(confige)#port te1
    ecorouter(config-port)#service-instance si1
    ecorouter(config-service-instance)#encapsulation untagged

    ecorouter(config)#interface in
    ecorouter(config-if)#ip address 10.10.10.1/24
    ecorouter(config-if)#ip nat inside
    ecorouter(config-if)#connect port te0 service-instance si0
     
    ecorouter(config)#interface out
    ecorouter(config-if)#ip address 20.20.20.1/24
    ecorouter(config-if)#ip nat outside
    ecorouter(config-if)#connect port te1 service-instance si1             

    Создание пула адресов для входящего трафика:

    ecorouter(config)#ip nat pool POOL 10.10.10.0-10.10.10.20

    Задание правила трансляций:

    ecorouter(config)#ip nat source dynamic inside pool POOL overload 20.20.20.21