Ваши темы для Вебинаров

В Москве:

РФ (звонок бесплатный):

+7 (495) 103-99-88 +7 (800) 600-20-56

Знакомство с NAT

17618


В этой статье поговорим про NAT в Mikrotik.

NAT (Network Address Translation) – это процедура изменения либо адреса источника (Source address), либо адреса назначения (Destination Address) в заголовке пакета.

Зачем мы используем NAT и с чем связано вообще использование NAT?

Дело в том, что ipv4 имеет ограниченное количество ip-адресов, и это было понятно изначально при разработке протокола ipv4. Уже к 1994 году стало понятно, что необходимо как-то выпутываться из сложившейся ситуации (не было альтернативного протокола, который мог бы расширить количество ip-адресов). Присутствовал только старый IPv4, а количество устройств в сети Интернет росло, росло, росло и, собственно, продолжает расти до сих пор. Поэтому, для начала придумали RFC1918, который описывает использование не маршрутизируемых сетей в локальных сегментах – таких как: 192.168.0.0/16, 10.0.0.0/8, 172.16.0.0/12 (так называемые «серые» адреса).

Использование этих диапазонов разрешено кем угодно внутри своих локальных сетей. В глобальной сети Интернет эти адреса не маршрутизируются.

Если вы используете эти адреса и нужно попасть в глобальную сеть Интернет, Вам нужно провести автоматическое изменение либо адреса источника пакета, либо адреса назначения пакета – для этого и существует NAT.

  • В нашем случае на Mikrotik не совсем чистый NAT. Это Port Address Translation, то есть PAT, где используются не только IP адреса (3 уровень OSI), но также еще и с 4 уровнем OSI — есть 5 полей для изменения адреса:
    • Source Address
    • Destination Address
    • Source Port
    • Destination Port
    • Протокол

Для чего используется NAT?

Самое частое использование — это доступ из локальной сети с серыми адресами куда-то в интернет.
Открыть доступ из внешней сети к ресурсам (напр., веб-сервер) находящимся во внутренней сети (так называемый «проброс портов»).

При «пробросе портов» для хоста с приватным IP-адресом, когда пакет проходит правила на маршрутизаторе, у пакета изменяется Source адрес пакета и до публичного адреса отправляется пакет с внешним адресом, который может прекрасно маршрутизироваться в глобальной сети Интернет. Такая ситуация называется Source Nat. В Mikrotik можно посмотреть, что есть дефолтное правило, которое реализует данную функцию.

Firewall/NAT

Это правило находится в IP – Firewall — NAT (раздел NAT отвечает за преобразование адресов и портов, заголовках пакетов, сегментах, дейтаграммах и так далее).

NAT Rule

В данном случае правило Source NAT — процедура изменения в заголовке пакета адреса (например, адреса локальной сети), где есть условие, что пакет, идущий в сторону Out interface List – WAN (в сторону интернета) и Action — masquerade.

Masquerade — это автоматическое выяснение внешнего ip-адреса, с которым будет идти через «внешний» Out interface и подставление его в заголовки пакета.

Если внешний ip-адрес статический, то более выгодно использовать процедуру Source NAT.

Address

NAT Rule

Можно посмотреть, что на внешнем интерфейсе ip-адрес 198.51.100.16 и использовать его в качестве правила Source Nat — это будет эффективнее по производительности, т.к. роутеру не понадобится выяснять внешний адрес на внешнем интерфейсе.

Или вторая процедура, которая описывается как DST-NAT и для ее работы используются цепочка DSTNAT — это процедура, например, для проброса портов с внешнего интерфейса во внутреннюю (локальную) сеть.

Или, например, внутри локальной сети есть какой-то веб-сервер, который слушает TCP 80 порт и нужно, чтобы он был доступен из интернета. Только вот, если сказать адрес сервера 192.168.88.2, никто не сможет получить доступ к веб-серверу.

NAT Rule/General

NAT Rule/Action

Нужно сделать правило, которое будет решать вопрос доступа из внешней сети во внутреннюю сеть.
Для этого нужно создать правило — цепочка DSTNAT, протокол TCP, Destination Port – 80, In interface List – WAN (внешний). (можно использовать In interface, если наличие интернета только на одном интерфейсе), Action – dst-nat на IP-адрес 192.168.88.2


/ip firewall nat
add action=dst-nat chain=dstnat dst-port=80 in-interface-list=WAN protocol=tcp to-addresses=192.168.88.2 to-ports=80

Если служба запущена на 80 порту, то в Action — dst-nat, to Ports не нужно указывать 80 порт, т.к. это, по сути, будет повторение одного и того же действия. Роутер будет в заголовках сегмента 4 уровня менять TCP 80 на TCP 80, что немножко повлияет на производительность. Поэтому, в ситуации прямого проброса, нужно убрать поле to ports.

NAT Rule/Action

В другой ситуации, когда внешний 80 порт нужно пробросить на внутренний 8080, тогда поле to ports нужно заполнить.

NAT Rule/General

Также можно пробросить несколько портов, например, 80, 443, 8080 и тд.
В данном случае не нужно указывать to ports, проброс будет осуществляться с порта на порт. То есть – с 80 на 80, с 443 на 443, с 8080 на 8080.


/ip firewall nat
add action=dst-nat chain=dstnat dst-port=80,443,8080 in-interface=WAN protocol=tcp to-addresses=192.168.88.2

Если нужно пробросить все эти порты на один порт, то нужно указать в to ports нужный порт.

При пробросе портов и при стандартной настройке файрволла не нужно добавлять дополнительные правила в цепочку Filter. Правило forward, запрещающее доступ из внешнего интерфейса, решает вопрос с пробросом портов «кроме DST-NAT»

Firewall/Rule/General

NAT Rule/General

Если необходимо разрешать это все дело в файрволле, например, для производительности или, если не используется в правиле «кроме DST Nat» в Drop Forward и на Interface list WAN (внешний), то необходимо писать правила, которые будут разрешать проброшенные порты с внешнего интерфейса и указать порты, которые открыты на веб-сервере (все те порты, на которые нужно пробросить с внешнего интерфейса).
Например, если пробрасывается внешний порт TCP 8080 на порт внутренний TCP 80, то в Forward нужно указать порт TCP 80.


/ip firewall nat
add action=dst-nat chain=forward dst-port=80 in-interface=WAN protocol=tcp to-addresses=192.168.88.2 to-ports=8080
Это все связано с тем, что правила dst-nat отрабатывают до firewall filter и сначала изменяются в заголовках 4 уровня и адреса, и порты, а потом пакет попадает в firewall. Это всё связано работой Packet Flow diagram Mikrotik RouterOS.

На этом знакомство с NAT в Mikrotik завершено.


  • MTCRE

    13 - 16 мая 10.00 - 18.00
  • MTCSE

    20 - 23 мая 10.00 - 18.00
  • MTCNA

    17 - 20 июня 10.00 - 18.00
  • MTCNA

    24 - 27 июня 10.00 - 18.00
  • MTCNA

    09 - 12 июля 10.00 - 18.00
  • MTCNA

    15 - 18 июля 10.00 - 18.00
  • MTCRE

    05 - 08 августа 10.00 - 18.00
  • MTCWE

    16 - 19 сентября 10.00 - 18.00

Курсы Mikrotik-Training.

Знания, которые дают результат.