Проброс отдельно взятого хоста в интернет из-за OpenWRT

в 22:42, , рубрики: linux, OpenWrt, метки:

На местом форуме ISP возник вопрос о (не)возможности вывода отдельного хоста из-за nat'а, при наличие более ip-адреса от провайдера. Глянул доки, сделал и решил выложить здесь этот маленький how-to(была мысль запостить в «q&a», но это всё-таки ответ, нежели вопрос). Как всегда, действовать будем исключительно с помощью средств предоставленных системой, то-есть, в данном случае, посредством правки config-файлов.
Добавляем адреса к сетевому интерфейсу(/etc/config/network)

config 'alias'
        option 'interface' 'wan'
        option 'proto' 'static'
        option 'ipaddr' '2.2.2.2'
        option 'netmask' '255.255.255.224'
        option 'layer' '1'

Резервируем ip-адрес для хоста который будем выводить наружу(/etc/config/dhcp)

config host
        option ip       '192.168.1.111'
        option mac      'dc:a9:71:74:d3:85'
        option name     'jov'

Добавляем SNAT/DNAT-правила для этого хоста(/etc/config/firewall)

config redirect
        option src              lan
        option dest             wan
        option src_ip		'192.168.1.111'
        option src_dip          '2.2.2.2'
        option proto		'all'
        option target           SNAT

config redirect
        option src              wan
        option dest             lan
        option dest_ip		'192.168.1.111'
        option src_dip          '2.2.2.2'
        option proto		'all'
        option target           DNAT

Всё, мы «выставили» хост наружу, разумеется было бы не плохо проработать политику безопастности, но это каждый решает для себя.
Не забываем добавить SNAT для всех остальных хостов в локальной сети, в адрес заданный при конфигурации wan(/etc/config/firewall)

config redirect
        option src              lan
        option dest             wan
        option src_ip		'!192.168.1.111'
        option src_dip          '1.1.1.1'
        option proto		'all'
        option target           SNAT

В цикле проводим эту процедуру для всех остальных машин в сети.

Автор: jov

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js