Что такое трансляция сетевых адресов (NAT)? Представьте, что у вас дома есть несколько устройств, которые подключены к интернету через один и тот же Wi-Fi роутер. NAT — это правило интернета, которое позволяет всем этим устройствам иметь один общий адрес для внешнего мира, но уникальные адреса внутри вашего дома. Это как если бы у вашего дома был один почтовый адрес, но много разных комнат. Шлюз NAT — это ваш Wi-Fi роутер, который помогает пересылать пакеты данных (почту) между вашими устройствами и интернетом.
Когда вы заходите на сайт, NAT запоминает это действие и использует его для всех последующих данных, которые принадлежат этому соединению.
Виды NAT
Исходящий NAT (srcnat) работает с данными, которые отправляются из вашей сети в интернет. Ваш роутер заменяет ваш внутренний адрес на общедоступный, когда данные проходят через него. А для данных, идущих обратно, происходит обратное действие.
Входящий NAT (dstnat) нужен для того, чтобы данные из интернета могли достичь определённого устройства в вашей сети. Это полезно, например, если вы хотите, чтобы ваш домашний сервер был доступен извне.
С появлением новой версии RouterOS, в настройках NAT появились дополнительные опции для управления данными, которые идут непосредственно на роутер или отправляются с него:
- input — для данных, приходящих на роутер.
- output — для данных, отправляемых с роутера.
/ip firewall nat add chain=dstnat action=dst-nat dst-address=172.16.16.1 dst-port=22 to-addresses=10.0.0.3 protocol=tcp
Это правило NAT говорит, что если кто-то хочет подключиться к вашему серверу по адресу 172.16.16.1 через порт 22, роутер автоматически перенаправит этот запрос на устройство с внутренним IP-адресом 10.0.0.3.
Чтобы увеличить безопасность, можно настроить NAT так, чтобы подключения были возможны только с определённого внешнего адреса.
Зачем нужен NAT?
NAT, или трансляция сетевых адресов, это способ, как ваш домашний Wi-Fi роутер позволяет всем устройствам в доме общаться с внешним интернетом, используя один общий IP-адрес. Это немного похоже на то, как в квартире один почтовый ящик используется для всех кто в ней живет.
Допустим, вы хотите дать доступ к вашему офисному серверу из любой точки мира. Вам нужно настроить специальные правила на вашем офисном роутере, чтобы интернет-трафик мог найти этот сервер.
/ip firewall nat add chain=dstnat action=dst-nat dst-address=172.16.16.1 dst-port=22 to-addresses=10.0.0.3 protocol=tcp
Это правило говорит: "Когда кто-то хочет подключиться к порту 22 на адресе 172.16.16.1, направьте это соединение к серверу с внутренним IP 10.0.0.3".
Как работает исходящий NAT?
Исходящий NAT или «маскарадинг» позволяет вашим устройствам, например, офисному компьютеру или серверу, выходить в интернет, скрывая их реальные адреса за одним общедоступным IP-адресом. Это как если бы вы отправляли письма с общего адреса, а не с личного.
/ip firewall nat add chain=srcnat src-address=10.0.0.0/24 action=src-nat to-addresses=172.16.16.1 out-interface=WAN
/ip firewall nat add chain=srcnat src-address=10.0.0.0/24 action=masquerade out-interface=WAN
Когда ваш интернет-канал изменяется или отключается, роутер автоматически "очищает" все настройки, связанные с исходящим трафиком, что позволяет быстро восстановить соединение.
Однако, если у вас есть проблемы со стабильностью связи, это может привести к непредвиденным ситуациям:
- Когда интернет временно отключается, все текущие соединения "забываются" роутером;
- Пакеты данных от «потерянных» соединений рассматриваются как новые, если основной канал еще не работает, и могут быть перенаправлены через запасной маршрут;
- Когда основное соединение восстанавливается, данные начинают идти через него, но уже без использования маскарадинга, что может раскрыть ваши внутренние IP-адреса.
Чтобы избежать проблем, можно настроить специальный маршрут, который будет действовать как "черная дыра" для данных, если основной канал связи перестанет работать. Это поможет предотвратить непреднамеренное раскрытие внутренних адресов.
Когда вы используете NAT, устройства за роутером не могут напрямую соединяться с внешним миром, что иногда мешает работе некоторых интернет-сервисов. Например, игры или сервисы, требующие прямого соединения через TCP или UDP, могут работать нестабильно.
В MikroTik RouterOS есть специальные "помощники NAT", которые позволяют обойти эти ограничения для определенных типов трафика. Это значит, что даже при использовании NAT, вы можете настроить доступ так, чтобы большинство интернет-приложений работало без проблем.
Что такое CGNAT?
CGNAT — это способ, с помощью которого интернет-провайдеры экономят IP-адреса, необходимые для подключения к интернету. Вместо того чтобы давать каждому устройству уникальный IP-адрес, CGNAT позволяет множеству устройств делиться одним адресом. Это похоже на большой офис, где у всех один и тот же почтовый адрес, но с разными внутренними номерами кабинетов.
Этот метод использует специальное пространство адресов (100.64.0.0/10) внутри сети провайдера и преобразует их в один или несколько общедоступных IP-адресов на выходе в интернет.
Как настроить CGNAT?
/ip firewall nat
add chain=src-nat action=srcnat src-address=100.64.0.0/10 to-address=2.2.2.2 out-interface=
- 2.2.2.2 - это общедоступный IP-адрес, используемый для доступа в интернет.
- public_if - это интерфейс роутера, который подключен к интернету.
Преимущества CGNAT очевидны: меньше нужно общедоступных IP-адресов, что экономит ресурсы. Однако есть и недостатки:
- Роутеры провайдеров должны работать интенсивнее, чтобы отслеживать все адресные преобразования, что требует дополнительных вычислительных мощностей.
- Могут возникать проблемы с играми в интернете, когда игроки находятся за одним общедоступным IP.
- Сложнее отслеживать активность пользователей по юридическим требованиям, так как многие используют один и тот же IP.
- Усложняется настройка входящих подключений, например, для веб-серверов или IP-телефонии, так как обычная переадресация портов не работает.
- Возможно достижение лимита подключений к некоторым онлайн-сервисам, так как все подключения идут с одного IP.
- Технологии, требующие уникальных IP-адресов, такие как 6to4, не будут работать должным образом.
Для обеспечения безопасности и корректной работы сети, провайдеры должны тщательно фильтровать трафик, исходящий из пространства CGNAT, чтобы избежать утечки адресов в глобальный интернет. В RouterOS это делается с помощью настройки фильтров брандмауэра.
/ip firewall filter
add chain=input src-address=100.64.0.0/10 action=drop in-interface=<;public_if>
add chain=output dst-address=100.64.0.0/10 action=drop out-interface=<;public_if>
add chain=forward src-address=100.64.0.0/10 action=drop in-interface=<;public_if>
add chain=forward src-address=100.64.0.0/10 action=drop out-interface=<;public_if>
add chain=forward dst-address=100.64.0.0/10 action=drop out-interface=<;public_if>
Интернет-провайдерам иногда сложно следить за всеми адресами в большой сети, особенно когда используется технология, которая позволяет многим пользователям делиться одним IP-адресом. Но есть хорошая новость: существует специальное правило (называемое RFC 7422), которое помогает упростить этот процесс. Вместо того чтобы вести подробный учет каждого подключения, это правило позволяет автоматически соотносить личные адреса пользователей с определенными диапазонами портов общедоступного IP-адреса.
Это делает управление сетью проще и помогает быстро находить и решать проблемы, если кто-то использует интернет для недобросовестных целей.
В RouterOS описанный алгоритм можно выполнить с помощью нескольких функций скрипта. Давайте рассмотрим пример:
Внутренний IP | Внешний IP/Диапазон портов |
---|---|
100.64.1.1 | 2.2.2.2:2000-2099 |
100.64.1.2 | 2.2.2.2:2100-2199 |
100.64.1.3 | 2.2.2.2:2200-2299 |
100.64.1.4 | 2.2.2.2:2300-2399 |
100.64.1.5 | 2.2.2.2:2400-2499 |
100.64.1.6 | 2.2.2.2:2500-2599 |
Вместо ручного написания правил NAT, мы могли бы написать функцию, которая добавляет такие правила автоматически.
:global sqrt do={
:for i from=0 to=$1 do={
:if ($i * $i) $1 do={ :return ($i - 1) }
}
}
:global addNatRules do={
/ip firewall nat add chain=srcnat action=jump jump-target=xxx \
src-address="$($srcStart . $count)"
:local x [ :$sqrt $count]
:local y $x
:if ($x * $x $count) do={ :set y ($x + 1) }
:for i from=0 to=$y do={
/ip firewall nat add chain=xxx action=jump jump-target=xxx-$($i) \
src-address="$($srcStart + ($x * $i))-$($srcStart + ($x * ($i + 1) - 1))"
}
:for i from=0 to=($count - 1) do={
:local prange "$($portsStart + ($i * $portsPerAddr))-$($portsStart + (($i + 1) * $portsPerAddr) - 1)"
/ip firewall nat add chain=xxx-($i / $x)" action=src-nat protocol=tcp src-address=($srcStart + $i) \
to-address=$toAddr to-ports=$prange
/ip firewall nat add chain="xxx-($i / $x)" action=src-nat protocol=udp src-address=($srcStart + $i) \
to-address=$toAddr to-ports=$prange
}
}
Когда вы добавляете определенный скрипт в вашу сетевую систему, он позволяет использовать новую функцию под названием "addNatRules". Допустим, у нас есть задача настроить правила для шести разных устройств в нашей сети, чтобы все они могли соединяться с интернетом через один и тот же внешний IP-адрес, который для нас является 2.2.2.2. Каждому устройству мы хотим дать возможность использовать свой уникальный диапазон из 100 портов, начиная с номера 2000. Используя эту новую функцию, мы можем легко настроить эти правила.
$addNatRules count=6 srcStart=100.64.1.1 toAddr=2.2.2.2 portStart=2000 portsPerAddr=100
Теперь вы должны быть в состоянии получить набор правил:
[admin@rack1_b18_454] /ip firewall nat print
Flags: X - disabled, I - invalid, D - dynamic
0 chain=srcnat action=jump jump-target=xxx src-address=100.64.1.1.0/26 log=no log-prefix=""
1 chain=xxx action=jump jump-target=xxx-0 src-address=100.64.1.1.0/26 log=no log-prefix=""
2 chain=xxx action=jump jump-target=xxx-1 src-address=100.64.1.1.0/26 log=no log-prefix=""
3 chain=xxx action=jump jump-target=xxx-2 src-address=100.64.1.1.0/26 log=no log-prefix=""
4 chain=xxx-0 action=src-nat to-addresses=2.2.2.2 to-ports=2000-2099 protocol=tcp src-address=100.64.1.1.0/26 log=no log-prefix=""
5 chain=xxx-0 action=src-nat to-addresses=2.2.2.2 to-ports=2000-2099 protocol=udp src-address=100.64.1.1.0/26 log=no log-prefix=""
6 chain=xxx-0 action=src-nat to-addresses=2.2.2.2 to-ports=2100-2199 protocol=tcp src-address=100.64.1.1.0/26 log=no log-prefix=""
7 chain=xxx-0 action=src-nat to-addresses=2.2.2.2 to-ports=2100-2199 protocol=udp src-address=100.64.1.1.0/26 log=no log-prefix=""
8 chain=xxx-1 action=src-nat to-addresses=2.2.2.2 to-ports=2200-2299 protocol=tcp src-address=100.64.1.1.0/26 log=no log-prefix=""
9 chain=xxx-1 action=src-nat to-addresses=2.2.2.2 to-ports=2200-2299 protocol=udp src-address=100.64.1.1.0/26 log=no log-prefix=""
10 chain=xxx-1 action=src-nat to-addresses=2.2.2.2 to-ports=2300-2399 protocol=tcp src-address=100.64.1.1.0/26 log=no log-prefix=""
11 chain=xxx-1 action=src-nat to-addresses=2.2.2.2 to-ports=2300-2399 protocol=udp src-address=100.64.1.1.0/26 log=no log-prefix=""
12 chain=xxx-2 action=src-nat to-addresses=2.2.2.2 to-ports=2400-2499 protocol=tcp src-address=100.64.1.1.0/26 log=no log-prefix=""
13 chain=xxx-2 action=src-nat to-addresses=2.2.2.2 to-ports=2400-2499 protocol=udp src-address=100.64.1.1.0/26 log=no log-prefix=""
14 chain=xxx-2 action=src-nat to-addresses=2.2.2.2 to-ports=2500-2599 protocol=tcp src-address=100.64.1.1.0/26 log=no log-prefix=""
15 chain=xxx-2 action=src-nat to-addresses=2.2.2.2 to-ports=2500-2599 protocol=udp src-address=100.64.1.1.0/26 log=no log-prefix=""
Что такое NAT с волосковым контуром?
NAT с волосковым контуром (или NAT Loopback) это когда вы можете обращаться к устройствам в вашей собственной домашней сети через внешний IP-адрес, который обычно используется для доступа из интернета. Это как если бы вы звонили на свой домашний номер телефона с мобильного телефона, находясь дома, и ожидали, что кто-то внутри дома ответит.
Пример правила для настройки NAT Loopback в вашем роутере выглядит так:
/ip firewall nat add chain=dstnat action=dst-nat dst-address=172.16.16.1 dst-port=443 to-addresses=10.0.0.3 to-ports=443 protocol=tcp
Как это работает:
- Когда вы с домашнего компьютера пытаетесь получить доступ к веб-серверу в вашей сети, вы используете внешний IP-адрес роутера.
- Роутер "понимает", что вы хотите подключиться к устройству внутри сети и направляет запрос к нужному устройству.
- Ответ от сервера возвращается обратно на ваш компьютер, как если бы вы обращались к нему напрямую по внутреннему IP-адресу.
Но если кто-то попытается подключиться к этому же внешнему IP-адресу, находясь внутри вашей сети, могут возникнуть проблемы без дополнительных настроек:
- Ваш запрос будет перенаправлен непосредственно на сервер, минуя роутер, и сервер ответит напрямую, что может вызвать путаницу в сети.
Как настроить NAT для работы независимо от конечной точки
Этот тип NAT позволяет вашим устройствам подключаться к интернету, используя одни и те же порты и IP-адреса, что упрощает управление сетью. Он особенно полезен для UDP-трафика, например, для онлайн-игр или видеозвонков.
Пример правила для настройки:
/ip firewall nat add action=endpoint-independent-nat chain=srcnat out-interface=WAN protocol=udp
Это правило гарантирует, что входящий и исходящий трафик использует одни и те же порты и IP-адреса, облегчая обмен данными через ваш роутер.
Дополнительные настройки:
- randomize-port - эта опция позволяет рандомизировать порты, увеличивая безопасность вашей сети.
IPv4
Свойства
Характеристика | Описание |
action (имя действия; по умолчанию:accept) |
Действие, которое необходимо предпринять, если пакет соответствует правилу: accept - примите пакет. Пакет не передается следующему правилу NAT. add-dst-to-address-list - добавить адрес назначения в список адресов, указанный address-list параметром add-src-to-address-list - добавить исходный адрес в список адресов, указанный address-list параметром dst-nat - заменяет адрес назначения и / или порт IP-пакета на значения, заданны в to-addresses и to-ports параметром jump - переход к пользовательской цепочке, заданной значением jump-target параметра log - добавьте сообщение в системный журнал, содержащее следующие данные:in-interface, out-interface, src-mac, protocol, src-ip:port-dst-ip: порт и длина пакета. После того, как пакет сопоставлен, он передается следующему правилу в списке, аналогичному passthrough masquerade - заменяет исходный порт IP-пакета на указанный to-ports параметром и заменяет исходный адрес IP-пакета на IP, определенный средством маршрутизации. netmap - создает статическое отображение 1:1 одного набора IP-адресов на другой. Часто используется для распределения публичных IP адресов хостам в частных сетях passthrough - если пакет соответствует правилу, передаст обработку к следующему правилу увеличив счётчик (полезно для статистики). redirect - заменяет порт назначения IP-пакета на указанный to-ports параметром, а адрес назначения-на один из локальных адресов маршрутизатора return - передает управление обратно в цепочку, откуда произошел прыжок same - дает конкретному клиенту один и тот же IP-адрес источника/назначения из поставляемого диапазона для каждого соединения. Это наиболее часто используется для служб, которые ожидают один и тот же адрес клиента для нескольких подключений от одного и того же клиента src-nat - заменяет исходный адрес IP-пакета на значения, заданные to-addressesto-ports параметром and |
address-list (строка; по умолчанию: ) |
Имя используемого списка адресов. Применимо, если действие является add-dst-to-address-list или add-src-to-address-list |
address-list-timeout (none-dynamic | none-static / time; по умолчанию: none-dynamic) |
Интервал времени, по истечении которого адрес будет удален из списка адресов, указанного address-list параметром. Используется в сочетании с add-dst-to-address-list add-src-to-address-list действиями. Значение none-dynamic (00:00:00) оставит адрес в списке адресов до перезагрузки. Значение none-static оставит адрес в списке адресов навсегда и даже будет включен в экспорт конфигурации / резервную копию |
chain (имя; по умолчанию: ) | Указывает, к какому правилу цепочки будет добавлено правило. Если входные данные не совпадают с именем уже определенной цепочки, будет создана новая цепочка. |
comment (строка; по умолчанию: ) | Описательный комментарий к правилу. |
connection-bytes (integer-целое число; по умолчанию: ) |
Сопоставляет пакеты только в том случае, если заданное количество байтов было передано через конкретное соединение. 0 - означает бесконечность, например connection-bytes=2000000-0 означает, что правило совпадает, если через соответствующее соединение было передано более 2 МБ |
connection-limit (целое число, netmaks; по умолчанию: ) |
Сопоставляет соединения по адресу или блоку адресов после достижения заданного значения. |
connection-mark (no-mark / string; по умолчанию: ) |
Соответствует пакетам, помеченным через средство mangle, с определенной меткой соединения. Если параметр no-mark не установлен, правило будет соответствовать любому немаркированному соединению. |
connection-rate (Целое число 0..4294967295; по умолчанию: ) |
Скорость соединения - это сопоставитель брандмауэра, который позволяет захватывать трафик на основе текущей скорости соединения. |
connection-type (ftp | h323 / irc | pptp / quake3 / sip | tftp; по умолчанию: ) |
Сопоставляет пакеты от связанных соединений на основе информации от их помощников по отслеживанию соединений. Соответствующий помощник подключения должен быть включен в разделе / ip firewall service-port |
content (строка; по умолчанию: ) | Сопоставьте пакеты, содержащие указанный текст |
dscp (целое число: 0..63; по умолчанию: ) |
Соответствует полю заголовка IP-адреса DSCP. |
dst-address (Диапазон IP / netmask / IP; по умолчанию: ) |
Сопоставляет пакеты, назначение которых равно указанному IP-адресу или попадает в указанный диапазон IP-адресов. |
dst-address-list (имя; по умолчанию: ) |
Сопоставляет адрес назначения пакета с определяемым пользователем списком адресов |
dst-address-type (одноадресная / локальная / широковещательная / многоадреснаяпередача ; по умолчанию: ) |
Соответствует типу адреса назнач:
|
dst-limit (integer [/time], integer, dst-address | dst-port | src-address [/time]; по умолчанию: ) |
Сопоставляет пакеты до тех пор, пока не будет превышен заданный предел pps. В отличие от limitmatcher, каждый IP-адрес назначения / порт назначения имеет свой собственный предел. Параметры записываются в следующем формате: count [/time], burst, mode [/exp.
|
dst-port (целое число [- integer]: 0..65535; по умолчанию: ) |
Список номеров портов назначения (через запятую) или диапазонов номеров портов |
fragment (да / нет; по умолчанию: ) |
Соответствует фрагментированным пакетам. Первый (стартовый) фрагмент не считается. Если отслеживание соединений включено, то фрагментов не будет, так как система автоматически собирает каждый пакет |
hotspot (auth | from-client / http / local-dst | to-client; по умолчанию: ) |
Сопоставляет пакеты, полученные от клиентов HotSpot, с различными Сопоставителями Hot.
|
icmp-options (integer:целое число; по умолчанию: ) |
Соответствует типу ICMP:кодовые файлы |
in-bridge-port (name; по умолчанию: ) |
Фактический интерфейс c которого пакет вошел в маршрутизатор, если входящий интерфейс является мостом |
in-interface (name; по умолчанию: ) |
Интерфейс с которого пакет вошел в маршрутизатор |
ingress-priority (целое число: 0..63; по умолчанию: ) |
Соответствует входному приоритету пакета. Приоритет может быть получен из VLAN, WMM или MPLS EXP bit. |
ipsec-policy (вход | выход, ipsec / нет; по умолчанию: ) |
Соответствует политике, используемой IpSec. Значение записывается в следующем формате: direction, policy. Направление используется для выбора соответствия политике, используемой для декапсуляции, или политике, которая будет использоваться для инкапсул.
Например, если маршрутизатор получает инкапсулированный Ipsec пакет GRE, то правило ipsec-policy=in, ipsec будет соответствовать пакету GRE, но правило ipsec-policy=in, none будет соответствовать пакету ESP. |
ipv4-options (any / loose-source-routing | no-record-route | no-router-alert | no-source-routing | no-timestamp | none / record-route / router-alert | strict-source-routing | timestamp; по умолчанию: ) |
Соответствует параметрам заголовка .
|
jump-target (имя; по умолчанию: ) |
Имя целевой цепочки, к которой нужно перейти. Применимо только в том случае, если action=jump |
layer7-protocol (имя; по умолчанию: ) |
Имя фильтра Layer7 определяется в меню протокола layer7. |
limit (integer, time, integer; по умолчанию: ) |
Сопоставляет пакеты до тех пор, пока не будет превышен заданный предел pps. Параметры записываются в следующем формате: count [/time], b.
|
log-prefix (строка; по умолчанию: ) |
Добавляет указанный текст в начало каждого сообщения журнала. Применимо, если action=log |
nth (целое число, integer; по умолчанию: ) |
Соответствует каждому N-му пакету. |
out-bridge-port (имя; по умолчанию: ) |
Фактический интерфейс пакет покидает маршрутизатор, если исходящий интерфейс является мостом |
out-interface (; По умолчанию: ) |
Интерфейс пакет покидает маршрутизатор |
packet-mark (no-mark / string; по умолчанию: ) |
Соответствует пакетам, помеченным через средство mangle, с определенной меткой пакета. Если не установлен знак, правило будет соответствовать любому немаркированному пакету. |
packet-size (целое число [- integer]: 0..65535; по умолчанию: ) |
Соответствует пакетам указанного размера или диапазона размеров в байтах. |
per-connection-classifier (ValuesToHash: Denominator/Remainder; По Умолчанию: ) |
PCC matcher позволяет разделить трафик на равные потоки с возможностью сохранения пакетов с определенным набором опций в одном конкретном потоке. |
port (целое число [- integer]: 0..65535; по умолчанию: ) |
Соответствует, если какой-либо порт (исходный или конечный) соответствует указанному списку портов или диапазонам портов. Применимо только в том случае, если используется протокол TCP или UDP |
protocol (имя или идентификатор протокола; по умолчанию: tcp) |
Соответствует определенному IP-протоколу, определяемому именем или номером протокола |
psd (integer, time, integer, integer; по умолчанию: ) |
Попытки обнаружить сканирование TCP и UDP. Параметры представлены в следующем формате WeightThreshold, DelayThreshold, LowPortWeight, HighPortWt
|
random (целое число: 1..99; по умолчанию: ) |
Сопоставляет пакеты случайным образом с заданной вероятностью. |
routing-mark (строка; по умолчанию: ) |
Сопоставляет пакеты, помеченные средством mangle, с определенной меткой маршрутизации |
same-not-by-dst (yes | no; по умолчанию: ) |
Указывает, следует ли учитывать или не учитывать IP-адрес назначения при выборе нового исходного IP-адреса. Применимо, если action=same |
src-address (Ip / Netmaks, диапазон Ip; по умолчанию: ) |
Сопоставляет пакеты, источник которых равен указанному IP-адресу или попадает в указанный диапазон IP-адресов. |
src-address-list (имя; по умолчанию: ) |
Сопоставляет исходный адрес пакета с определяемым пользователем списком адресов |
src-address-type (одноадресная / локальная / широковещательная / многоадреснаяпередача ; по умолчанию: ) |
Соответствует типу адреса источ:
|
src-port (целое число [- integer]: 0..65535; по умолчанию: ) |
Список исходных портов и диапазоны исходных портов. Применимо только в том случае, если протокол TCP или UDP. |
src-mac-address (MAC-адрес; по умолчанию: ) |
Соответствует исходному MAC-адресу пакета |
tcp-mss (целое число [- integer]: 0..65535; по умолчанию: ) |
Соответствует значению TCP MSS IP пакета |
time (время-время, СБ / пт / чт | СР | Вт | Пн / Вс; по умолчанию: ) |
Позволяет создать фильтр, основанный на времени и дате прибытия пакетов или, для локально генерируемых пакетов, времени и дате отправления |
to-addresses (IP-адрес[-IP-адрес]; по умолчанию: 0.0.0.0) |
Замените исходный адрес указанным. Применимо, если действие dst-nat, netmap, same, src-nat |
to-ports (целое число [- integer]: 0..65535; по умолчанию: ) |
Замените исходный порт на указанный. Применимо, если действие-dst-nat, redirect, masquerade, netmap, same, src-nat |
ttl (целое число: 0..255; по умолчанию: ) | Соответствует значению TTL пакетов |
Статистика
Свойство | Описание |
---|---|
packets (целое число) | Общее количество пакетов, соответствующих правилу |
bytes (целое число) | Общее количество байтов, соответствующих правилу |
Для отображения дополнительных свойств только для чтения
[admin@MikroTik] > ip firewall nat print stats all
Flags: X - disabled, I - invalid, D - dynamic
# CHAIN ACTION BYTES PACKETS
0 srcnat masquerade 265 659 987
IPv6
Поддержка NAT66 доступна начиная с RouterOS v7.1.
ipv6/firewall/nat/
Характеристики
Свойство | Описание |
---|---|
action (название действия; По умолчанию: accept) |
|
address-list (строка; По умолчанию: ) | Имя списка адресов, который будет использоваться. Применимо, если действие add-dst-to-address-list или add-src-to-address-list |
address-list-timeout (none-dynamic | none-static | время; По умолчанию: none-dynamic) |
Время, после которого адрес будет удален из списка адресов, определенного параметром address-list. Используется в сочетании с действиями add-dst-to-address-list или add-src-to-address-list Значение none-dynamic (00:00:00) оставит адрес в списке адресов до перезагрузки Значение none-static оставит адрес в списке адресов навсегда и будет включено в экспорт/бэкап конфигурации |
chain (имя; По умолчанию: ) | Указывает цепочку, в которую будет добавлено правило. Если ввод не соответствует имени уже определенной цепочки, будет создана новая цепочка. |
comment (строка; По умолчанию: ) | Описывает комментарий для правила |
connection-bytes (целое-целое; По умолчанию: ) | Соответствует пакетам только если определенное количество байт было передано через конкретное соединение. |
connection-limit (целое,маска; По умолчанию: ) | Соответствует соединениям по адресу или блоку адресов после достижения заданного значения. |
connection-mark (no-mark | строка; По умолчанию: ) | Соответствует отмеченным соединениям с помощью утилиты управления с определенной отметкой соединения. Если no-mark установлен, соответствует любому неотмеченному соединению. |
connection-rate (целое 0.4294967295; По умолчанию: ) | Rate - это механизм брандмауэра, который позволяет фильтровать трафик на основе текущей скорости соединения. |
connection-state (установлено | недействительно | новое | связанное | неотслеживаемое; По умолчанию: ) |
анализирует данные аналитики отслеживания соединений для конкретного пакета:
|
connection-type (ftp | h323 | irc | pptp | quake3 | sip | tftp; По умолчанию: ) | Соответствует пакетам от связанных соединений на основе информации от их отслеживания соединений помощников. Для соответствующего соединения помощник должен быть включен под /ip firewall service-port |
content (строка; По умолчанию: ) | Соответствует пакетам, которые содержат определенный текст |
dscp (целое 0..63; По умолчанию: ) | Соответствует заголовку IP пакета DSCP. |
dst-address (IP/netmask | IP range; По умолчанию: ) | Соответствует пакетам, адрес назначения которых равен указанному IP или попадает в указанный диапазон IP. |
dst-address-list (имя; По умолчанию: ) | Соответствует адресу назначения пакета против пользовательского списка адресов. |
dst-address-type (unicast | local | broadcast | multicast; По умолчанию: ) |
|
dst-limit (integer/time;integer,dst-address [dst-port | src-address/time]; По умолчанию: ) |
Соответствует пакетам до тех пор, пока не будет превышен заданный предел PPS. В отличие от сопоставителя limit, каждый адрес/порт назначения IP имеет свой собственный limit. Параметры записаны в следующем формате: count[/time],burst,mode[/expire]. |
dst-port (integer-integer); 0.65535; По умолчанию: ) | Список номеров портов назначения или диапазонов портов в формате Range[/Port], например, dst-port=123-345,456-678 |
icmp-options (integer/integer; По умолчанию: ) | Соответствует кодам полей типа ICMP. |
in-bridge-port (имя; По умолчанию: ) | Фактический интерфейс, через который пакет вошел в маршрутизатор, если входящий интерфейс является мостом. |
in-bridge-port-list (имя; По умолчанию: ) | Набор интерфейсов, определенных в списке интерфейсов моста. Работает так же, как и in-bridge-port. |
in-interface (имя; По умолчанию: ) | Интерфейс, через который пакет вошел в маршрутизатор. |
in-interface-list (имя; По умолчанию: ) | Набор интерфейсов, определенных в списке интерфейсов. Работает так же, как и in-interface. |
ingress-priority (целое 0..63; По умолчанию: ) | Соответствует приоритету пакета при входе. Приоритет может быть получен из VLAN, WMM или MPLS EXP бит. |
ipsec-policy (in | out, ipsec | none; По умолчанию: ) |
Соответствует политике, используемой IPSec. Значение записано в следующем формате: направление, политика. Используется для выбора, соответствует ли политика, используемая для декапсуляции или капсуляции.
Кроме того, если маршрутизатор получает пакет, инкапсулированный IPSec Gre, то правило ipsec-policy=in,ipsec будет соответствовать Gre пакету, но правило ipsec-policy=in,none не будет соответствовать ESP пакету. |
jump-target (имя; По умолчанию: ) | Указывает цель перехода jump. Применяется только если action=jump |
layer7-protocol (имя; По умолчанию: ) | Фильтр Layer7 с именем, определенным в меню протоколов layer7. |
limit (целое/время,целое; По умолчанию: ) |
Соответствует пакетам, только если превышен указанный предел PPS. Параметры записаны в следующем формате: количество[/время],бурст.
|
log (yes | no; По умолчанию: no) | Добавляет сообщение в системный журнал, содержащее следующие данные: in-interface, out-interface, src-mac, protocol, src-ip:port->dst-ip:port и длину пакета. |
log-prefix (строка; По умолчанию: ) | Добавляет указанный текст в начале каждого системного сообщения журнала. Применимо, если action=log или log=yes настроено. |
out-bridge-port (имя; По умолчанию: ) | Фактический интерфейс, через который пакет покидает маршрутизатор, если исходящий интерфейс является мостом. |
out-bridge-port-list (имя; По умолчанию: ) | Набор интерфейсов, определенных в списке мостов. Работает так же, как out-bridge-port. |
out-interface (По умолчанию: ) | Интерфейс, через который пакет покидает маршрутизатор. |
out-interface-list (имя; По умолчанию: ) | Набор интерфейсов, определенных в списке интерфейсов. Работает так же, как out-interface. |
packet-mark (no-mark | строка; По умолчанию: ) | Соответствует пакетам, отмеченным определенной меткой пакета. Если no-mark установлен, правило будет соответствовать любому немаркированному пакету. |
packet-size (целое/целое); 0..65535; По умолчанию: ) | Соответствует пакетам определенного размера или диапазона размеров в байтах. |
per-connection-classifier (ValuesToHash:Denominator/Remainder; По умолчанию: ) | Классификатор PCC позволяет разделить трафик на равные потоки с возможностью поддерживать пакеты с определенным набором опций в одном конкретном потоке. |
port (целое/целое); 0..65535; По умолчанию: ) | Соответствует если любой (источник или назначение) порт соответствует указанному списку портов или диапазонов портов. Применимо только если protocol является TCP или UDP. |
protocol (имя или protocol ID; По умолчанию: tcp) | Соответствует определенному IP-протоколу, указанному по имени протокола или номеру. |
priority (целое; 0..63; По умолчанию: ) | Соответствует приоритету пакета после того, как был установлен новый приоритет. Приоритет может быть получен из VLAN, WMM, DSCP, MPLS EXP бита, или из приоритета, который был установлен при использовании действия set-priority. |
random (целое; 1..99; По умолчанию: ) | Соответствует пакетам случайно с заданной вероятностью. |
routing-mark (строка; По умолчанию: ) | Соответствует пакетам, отмеченным определенной маркировкой маршрутизации. |
src-address (IP/Netmask, IP range; По умолчанию: ) | Соответствует пакетам, источник которых равен указанному IP или попадает в указанный IP диапазон. |
src-address-list (имя; По умолчанию: ) | Соответствует источнику адреса пакета против определенного списка адресов. |
src-address-type (unicast | local | broadcast | multicast; По умолчанию: ) |
Соответствует источнику адреса пакета:
|
src-port (целое-целое); 0..65535; По умолчанию: ) | Список источниковых портов и диапазонов источниковых портов. Применяется только если протокол TCP или UDP. |
tcp-flags (ack | cwr | ece | fin | psh | rst | syn | urg; По умолчанию: ) |
Список определенных флагов TCP:
|
src-mac-address (MAC адрес; По умолчанию: ) | Соответствует источнику MAC адреса пакета. |
tcp-mss (целое-целое); 0..65535; По умолчанию: ) | Соответствует значению MSS TCP пакета. |
time (время-время,sat | fri | thu | wed | tue | mon | sun; По умолчанию: ) | Создает фильтр, основанный на времени отправления пакетов и дате, для локально созданных пакетов, время отправления и дата. |
to-addresses (IP адрес/IP адрес; По умолчанию: 0.0.0.0) | Заменяет оригинальный адрес с указанным адресом. Применимо, если действие dst-nat, netmap, same, src-nat. |
to-ports (целое-целое); 0..65535; По умолчанию: ) | Заменяет оригинальный порт с указанным портом. Применимо, если действие dst-nat, redirect, masquerade, netmap, same, src-nat. |
Свойство | Описание |
---|---|
bytes (целое) | Общее количество байт, соответствующих правилу |
packets (целое) | Общее количество пакетов, соответствующих правилу |
Чтобы отобразить дополнительные свойства, доступные только для чтения:
ipv6/firewall/nat/print stats