Для чего нужен проброс портов?
Для чего вообще вам может понадобиться такая настройка? Чаще всего Port Forwarding используется для:
организации игрового сервера на домашнем компьютере,
организации пиринговых (одноранговых) сетей,
для доступа к IP-камере из интернета,
корректной работы торрентов,
работы WEB и
FTP-серверов.
Почему возникает необходимость в пробросе портов? Дело в том, что по умолчанию в роутерах работает правило так называемого маскарадинга. IP-адреса компьютеров и других устройств из локальной сети не видны ЗА роутером, во внешней сети. При поступлении пакетов данных из внутренней сети для отправки во внешний мир роутер открывает определенный порт и подменяет внутренний IP устройства на свой внешний адрес - надевает «маску», а при получении ответных данных на этот порт - отправляет их на тот компьютер внутри сети, для которого они предназначаются.
Таким образом, все получатели данных из внешней сети видят в сети только роутер и обращаются к его IP-адресу. Компьютеры, планшеты и другие устройства в локальной сети остаются невидимыми.
Эта схема имеет одну особенность: роутер принимает только те пакеты данных, которые приходят по соединению, инициированному компьютером из внутренней сети. Если компьютер или сервер из внешней сети пытается установить соединение первым, роутер его сбрасывает. А для указанных выше пунктов (игровой сервер, пиринговые сети и т. п.) такое соединение должно быть разрешено. Вот для этого и применяется проброс портов. Фактически, это команда роутеру зарезервировать один порт и все данные извне, которые на него поступают, передавать на определенный компьютер. Т. е. сделать исключение из маскарадинга, прописав новое правило.
Настройка Port Forwarding в MikroTik
В MikroTik управление настройкой проброса портов находится в меню IP ⇒Firewall ⇒NAT.
По умолчанию здесь прописан тот самый маскарадинг - подмена внутренних локальных адресов внешним адресом сервера. Мы же здесь создадим дополнительное правило проброса портов.
Настройка вкладки General
Нажимаем плюсик и в появившемся окне заполняем несколько полей:
Chain - направление потока данных. В списке выбора - srcnat, что означает «изнутри наружу», т. е. из локальной сети во внешний мир, и dstnat - из внешней сети во внутреннюю. Мы выбираем второе, так как будем принимать входящие подключения.
Src. Address Dst. Address - внешний адрес, с которого будет инициироваться подключение, и адрес назначения (всегда адрес роутера). Оставляем незаполненным.
Protocol - здесь указываем вид протокола для нашего соединения, tcp или udp, заполняем обязательно.
Src. Port (исходящий порт) - порт удаленного компьютера, с которого будут отправляться данные, оставляем пустым, если для нас это неважно.
Dst. Port (порт назначения) - проставляем номер внешнего порта роутера, на который будут приходить данные от удаленной машины и переадресовываться на наш компьютер во внутренней сети.
Any. Port (любой порт) - если мы проставим здесь номер порта, то укажем роутеру, что этот порт будет использоваться и как исходящий, и как входящий (объединяя два предыдущие поля в одном).
In. interface (входящий интерфейс) - здесь указываем интерфейс роутера MikroTik, на котором используется, «слушается» этот порт. В нашем случае, так как мы делаем проброс для поступления данных извне, это интерфейс, через который роутер подключен к Интернет, по умолчанию это ether1-gateway. Параметр нужно указать обязательно, иначе порт не будет доступным из локальной сети. Если мы подключены к провайдеру через pppoe, то возможно, потребуется указать его, а не WAN-интерфейс.
Out. interface (исходящий интерфейс) - интерфейс подключения компьютера, для которого мы делаем проброс портов.
Настройка вкладки Action
В поле Action прописываем действие, которое должен будет выполнять роутер. Предлагаются варианты:
accept — просто принимает данные;
add-dst-to-address-list — адрес назначения добавляется в список адресов;
add-src-to-address-list — исходящий адрес добавляется в соответствующий список адресов;
dst-nat — перенаправляет данные из внешней сети в локальную, внутреннюю;
jump — разрешает применение правила из другого канала, например при установленном в поле Chain значения srcnat — применить правило для dstnat;
log — просто записывает информацию о данных в лог;
masquerade — маскарадинг: подмена внутреннего адреса компьютера или другого устройства из локальной сети на адрес маршрутизатора;
netmap — создает переадресацию одного набора адресов на другой, действует более расширенно, чем dst-nat;
passthrough — этот пункт настройки правил пропускается и происходит переход сразу к следующему. Используется для статистики;
redirect — данные перенаправляются на другой порт этого же роутера;
return — если в этот канал мы попали по правилу jump, то это правило возвращает нас обратно;
same — редко используемая настройка один и тех же правил для группы адресов;
src-nat — переадресация пакетов из внутренней сети во внешнюю (обратное dst-nat перенаправление). Для наших настроек подойдут варианты dst-nat и netmap. Выбираем последний, как более новый и улучшенный.
В поле To Adresses прописываем внутренний IP-адрес компьютера или устройства, на который роутер должен будет перенаправлять данные по правилу проброса портов. В поле To Ports, соответственно, номер порта, к примеру:
Если значения в поле Dst. Port предыдущей вкладки и в поле To Ports совпадают, то здесь его можно не указывать. Далее добавляем комментарий к правилу, чтобы помнить, для чего мы его создавали.
Таким образом, мы создали правило для проброса портов и доступа к внутреннему компьютеру (в локальной сети) из Интернет.