Администраторы сети, а иногда и рядовые пользователи, сталкиваются с необходимостью произвести проброс портов маршрутизатора или роутера. На устройствах компании MikroTik также возможно осуществить указанную процедуру.
Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор – официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.
Принцип действия и область применения
Большинство пользовательских роутеров используют механизм подмены адреса PAT или NAT Masquerading. При таком сценарии, устройства во внутренней сети соединяются с интернетом через маршрутизатор. При этом они не «видны» наружным пользователям, контакт осуществляется через внешний IP-адрес роутера, подключенного к провайдеру.
В такой схеме каждому члену сети (ЛВС) кроме адреса присваивается номер порта. При поступлении запроса с внутреннего ПК, роутер открывает соответствующий порт, меняет на нем адрес на внешний и отправляет данные в интернет. Поэтому данный процесс назвали «masquerading» или «маскардинг» — внутренний ПК «скрывает» свой IP, «надев» маску маршрутизатора.
Главными преимуществами в такой схеме подключения являются:
- повышенная безопасность локальной сети;
- малое количество IP-адресов для соединения с провайдером;
- гибкость при смене поставщика интернет-услуг.
Из-за подобного сценария работы PAT, роутер обрабатывает запросы, которые посылает внутренний ПК. Если первым к нему обратится наружный сервер или компьютер, то маршрутизатор не поддержит соединение и «ответит» отказом.
Но часто возникают ситуации, когда необходимо получить данные из ЛВС, не ожидая посылки запроса из нее. Например, в следующих случаях:
- подключение к IP-камере или видерегистратору удаленно, через интернет;
- для правильного функционирования торрентов;
- доступ к P2P-сетям и локальным FTP и WEB серверам;
- создание домашних игровых серверов.
Для этого в роутере инициализируется исключение из механизма NAT Masquerading, при котором, поступившие из вне данные, через выделенный порт поступают к указанному ПК во внутренней (локальной) сети. Происходит «прямой контакт» внутреннего и внешнего устройств.
Такое соединение называется «Port Forwarding» или «пробросом». Изменяя настройки маршрутизатора MikroTik, можно установить соответствующую конфигурацию.
Перенаправление портов
Существует несколько способов реализации проброса портов в роутерах MikroTik. Используются как графический интерфейс, так и консольные команды.
Настройка через GUI
Для подключения к роутеру можно использовать фирменную программу Winbox, скачав ее с сайта разработчика. После установки произвести следующие действия:
- Запустить winbox.exe. Откроется окно, в котором нужно ввести IP роутера, логин, пароль и нажать «Connect».
- Откроется главное меню роутера. Зайти во вкладку IP, кликнуть по опции Firewall и выбрать пункт NAT.
- Кликнуть по знаку «+».
- Появятся настройки NAT.
- Кликнуть по первой вкладке «General». Здесь необходимо заполнить строки для создания переадресации.
Их назначения описаны ниже:- Chain — пункт, в котором указывается вектор подключения. Доступны 2 варианта: srcnat и dstnat. Первый используется при инициировании запроса из внутренней сети во внешнюю, второй — наоборот. Так как необходимо дать разрешение внешним устройствам подключаться к внутренним напрямую, без маскардинга, то выбрать dstnat;
- Src.address — адрес отправителя, то есть внешнего компьютера. Если нет выделенного устройства, то оставить незаполненным для приема данных со всех ПК или серверов;
- Dst.Address — адрес получателя, в данном случае — роутера;
- Protocol — строка, обязательная для заполнения. Выбрать протокол из предлагаемых вариантов: http, udp, tcp;
- Src.Port — можно оставить пустым. Здесь вписывается порт отправителя;
- Dst.Port — данную строку нельзя оставлять пустой. Прописывается номер внешнего порта маршрутизатора, на который будут приходить данные;
- Any.Port — если номер отправляющего порта совпадает с принимающим, то можно указать его здесь. Он автоматически пропишется в предыдущих двух пунктах;
- In.Interface — прописывается физический канал связи, на который поступают данные из вне. То есть указывается один из разъемов RJ45, который принимает внешнее подключение. По умолчанию роутер связан с провайдером через первый разъем, называющийся «ether1-gateway». Указать его. Поле нельзя оставлять пустым, иначе связь не будет установлена;
- Out.Interface — имя адаптера принимающего компьютера. Строку можно оставить пустой;
- Для некоторых строк есть специальная ячейка для вписывания восклицательного знака. Его установка указывает на исключение какого-либо параметра. Например, на рисунке ниже показано, что роутер будет принимать данные на все порты, исключая номер 3389.
- Следующая важная вкладка — Action. В первой одноименной строке нужно прописать операцию для исполнения ее роутером. Доступны следующие варианты:
- Accept — простой прием информации;
- add-dst-to-address-list — включение адреса назначения в разрешенный список;
- add-src-to-address-list — то же самое для входящих адресов;
- dst-nat — отправка информации из внешней сети во внутреннюю;
- Jump — позволяет применить правило к другому каналу. Например, если оно действует для src-nat, то будет применяться и для dst-nat;
- Log — запись событий в Log-файл;
- Masquerade — обычно используемый режим маскардинга;
- Netmap — схож с режимом dst-nat, но с большими возможностями;
- Passthrough — малозначащий пункт, собирает статистику. Может быть пропущен;
- Redirect — «поворот» данных на другой порт;
- Return — обратное действие к правилу jump. Возвращает в состояние до применения jump;
- Same — позволяет применить установленные правила к другой группе адресов;
- src-nat — обратное действие к dst-nat. Информация переправляется из внутренней сети во внешнюю.
- Для проброса портов использовать режим dst-nap или netmap. Последний относится к более поздней разработке и лучше действует.
- Следующая строка — To Adresses. Здесь вписывается ip-адрес устройства во внутренней сети, на которое производится проброс.
- Строка To Ports — указывается номер порта устройства. Если он одинаков с пунктом dst-nat во вкладке General, то можно ничего не писать.
После этого следует написать пояснения к вновь созданному правилу, чтобы не забыть для чего оно устанавливалось. Делается это путем нажатия кнопки «Comment».
После настройки всех компонентов подтвердить, нажав на «ОК». Правило появится в меню NAT. Для активизации нужно поставить его выше других сценариев.
Использование командной строки
Для подключения консоли выбрать пункт «New Terminal» в Winbox. Также можно воспользоваться Telnet или SSH.
После подключения установить 2 правила:
/ip firewall nat add chain=dstnat dst-address-type=local protocol=tcp dst-port=номер_внешнего_узла_ роутера action=dst-nat to-address=адрес_устройства to-port=порт_устройства /ip firewall nat add chain=srcnat src-address=внутренний_адрес_роутера/24 dst-address= адрес_устройства protocol=tcp dst-port= узел_устройства out-interface= ether1-gateway action=masquerade
Обозначения:
- номер_внешнего_узла_ роутера — внешний порт маршрутизатора, открытый для проброса;
- адрес_устройства — ip компьютера во внутренней сети, который соединяется через проброс;
- узел_устройства — порт внутреннего компьютера;
- внутренний_адрес_роутера/24— адрес роутера в локальной сети, «24» указывает, что маска подсети 255.255.255.0;
- ether1-gateway — физический интерфейс через который осуществляется связь с интернетом.
Использование консоли может вызвать затруднения у неопытных пользователей.
Переадресация нескольких портов
Если нужно применить Port Forwarding к нескольким портам, то в пункте Dst.Port на вкладке General указать их через запятую.
В определенных случаях, например, при пробросе udp для компьютерной телефонии, нужно дополнительно сделать маркировку пакетов. Для этого нужно зайти во вкладку «Mangle», находящуюся в меню «firewall».
Вновь нажать на знак «+». Откроется знакомое окно с настройками. Выбрать пункт «General». Заполнить строки, как показано на рисунке. Диапазон портов в данном случае расположен между 10000 и 20000.
Здесь опция «Chain» принимает следующие значения:
- PREROUTING — маркировка произойдет до маршрутизации;
- INPUT — маркировка пакетов, предназначенных серверу;
- FORWARD — отмечаются транзитные пакеты;
- OUTPUT — маркировка данных, исходящих из сервера;
- POSTROUTING — отмечаются как исходящие, так и транзитные данные.
Остальные строки имеют те же настройки, что и во вкладке NAT. В Dst.Port указывается несколько портов.
Далее во вкладке «Action» нужно задать исполняемую операцию. В данном случае — mark packet. Задать имя для маркировки, например ,«test» в пункте «New Packet Mark».
Далее необходимо вернуться во вкладку NAT и оформить новое правило. В окне «General» для Chain устанавливается значение «dstnat», в Packet Mark вписать имя маркировки, в рассматриваемом примере это test.
Затем открыть опцию «Action». В строке «Action» поставить значение «netmap», а в «To Adresses» — адрес внутреннего устройства, к которому осуществляется внешнее подключение.
В пункте «To Ports» вписать принимающий порт. Если нет выделенного, то ничего не писать.
Переадресация всех портов и протоколов на внутреннее устройство
Для переправления всех внешних запросов на одно локальное устройство необходимо создать правило NAT, где в строке Chain поставлено значение «dstnat».
В окне «Action», для строки с тем же названием поставить «netmap», а ниже указать адрес локального ПК.
Больше ничего не надо заполнять. Подтвердить изменения.
Port Forwarding для 80 порта
Ниже будет показан пример настройки для переадресации 80 порта веб-севера, находящегося в локальной сети.
Его адрес 192.168.15.15, протокол — tcp, имя физического интерфейса роутера — ether5-WAN1 с адресом 10.1.100.1. Создать правило NAT, с указанными на рисунке параметрами.
Вкладка «General»:
Вкладка «Action»:
Если настраивать через консоль, то ввести следующие команды:
/ip firewall nat add action=dst-nat chain=dstnat dst-port=80 in-interface=ether5-WAN1 protocol=tcp to-adresses=192.168.15.15 to-ports=80
Переадресация не функционирует
Есть вероятность, что после всех настроек, проброс не заработает. Причин может быть несколько, в первую очередь следует проверить следующие аспекты подключения:
- Проверить доступность внешнего сервера из локальной сети. Удостовериться, что его ip и порт прописаны верно. Исправить, в случае ошибочного написания. Если опять не получается выполнить Port Forwarding, то проверить конфигурацию сервера.
- Просмотреть созданные правила. Проверить правильность написания параметров. Исправить замеченные ошибки.
- Проверить адрес внешнего интерфейса роутера WAN. Возможно, он сам входит в другую локальную сеть и имеет «серый» адрес. Если это так, то необходимо сделать проброс на конечном маршрутизаторе, имеющем выход в интернет. К «серым» ip-адресам относятся следующие диапазоны: 10.0.0.0—10.255.255.255;172.16.0.0—172.31.255.255;192.168.0.0—192.168.255.255. Они не используются в интернете и применяются только в локальных сетях.
Port Forwarding трудоемкое и требующее внимательности мероприятие. Возможно, что с первого раза новичку будет трудно его осуществить. Желательно сохранить резервную копию конфигурации маршрутизатора перед началом процесса.
Освоить MikroTik вы можете с помощью онлайн-курса «Настройка оборудования MikroTik». В курсе изучаются все темы из официальной программы MTCNA. Автор – официальный тренер MikroTik. Материал подходит и тем, кто уже давно работает с оборудованием MikroTik, и тем, кто еще не держал его в руках. В состав входят 162 видеоурока, 45 лабораторных работ, вопросы для самопроверки и конспект.