PDA

Показать полную графическую версию : Mikrotik два IP на одном интерфейсе и проброс одного в локальную сеть.


UncleD
13-12-2019, 14:43
Добрый день.
Когда-то давно нашей организации понадобилось два внешних IP, один чтобы отдаться роутеру раздающему интернет клиентам, а второй для сервака (АСУ ВРК для тех кому это что-то говорит). Тогда вопрос был решен установкой свича перед роутером и сервером. Теперь же, старенький бытовой роутер был заменен на Mikrotik и появилось страстное желание, прям кушать не можется, избавиться от лишнего узла. Недолгое знакомство с чудом латышской техники и гугление вопроса дали понять, что задача решаема, и Mikrotik может получать два IP на один интерфейс, а вот дальше кто на что горазд. И так подробнее:

Два внешних IP, пусть: 200.1.1.5 и 200.1.1.6

Первый (200.1.1.5) приходит на WAN интерфейс Mikrotik'а
Второй (200.1.1.6) приходит на первый интерфейс сервера

Несколько портов микротика собраны в бридж, на котором висит наша локальная сеть 192.168.2.0/24. В ней же находиться и второй интерфейс сервера (192.168.2.167), к которому подключаются клиенты.

То есть, сервер имеет два задействованных интерфейса:
Первый 200.1.1.6 - смотрящий на внешку
Второй 192.168.2.167 - смотрящий в локалку

На микротике было сделано следующее по этой статье (http://www.lan23.ru/FAQ-Mikrotik-RouterOS-part2.html).
/ip firewall nat
add action=netmap chain=srcnat src-address=192.168.2.167 to-addresses=200.1.1.6
add action=dst-nat chain=dstnat dst-address=200.1.1.6 to-addresses=192.168.2.167
/ip address
add address=200.1.1.6/32 interface=ether1-gateway network=200.1.1.6

Чтобы проверить работает ли правило - запретил на сервере ICMP ответы, и и тогда при попытке пинга 200.1.1.6 не получал ответа, а когда разрешил их снова, то пакеты поперли. Примитивно, но логично, так?

Еще есть маленькая утилита от разработчиков, которая проверяет доступность сервера на указанном ей IP и вот она его уже не видит.

Что я мог не учесть? Может быть какое-то типичное правило в фаерволе или в статье не описаны какие-то очевидные действия?

Anton04
14-12-2019, 21:44
Когда-то давно нашей организации понадобилось два внешних IP, один чтобы отдаться роутеру раздающему интернет клиентам, а второй для сервака »

Первый (200.1.1.5) приходит на WAN интерфейс Mikrotik'а
Второй (200.1.1.6) приходит на первый интерфейс сервера »

Что Вам мешает выделить два порта под WAN интерфейсы на микротике!? И настроить для каждого порта свою маршрутизацию. Это даже не проблема, а чуть ли самое начало настройки, притом банальное до неприличия.

P.S. Притом из Вашей задачи я не понял какие IP есть у внутренних интерфейсов и нужно ли чтоб пакеты ходили между этими IP. В общем без визуальной картинки о том что хотим тут не разобраться.

UncleD
16-12-2019, 20:02
Первый (20 »
Что Вам мешает выделить два порта под WAN интерфейсы на микротике!? И настроить для каждого порта свою маршрутизацию. Это даже не проблема, а чуть ли самое начало настройки, притом банальное до неприличия. »
Все и затевается ради того чтобы избавиться от свича перед роутером.
P.S. Притом из Вашей задачи я не понял какие IP есть у внутренних интерфейсов и нужно ли чтоб пакеты ходили между этими IP. В общем без визуальной картинки о том что хотим тут не разобраться. »
Ну как смог. Верхняя как есть, нижняя как хочется.

Anton04
16-12-2019, 20:51
UncleD,

Вопрос 1: раньше Ваш сервер 200.1.1.6 смотрел голой "попой" в интернет, сейчас вы хотите его перекинуть за NAT? Или же вы хотите выделить его в DMZ?
Вопрос 2: вопрос уточняющий и завязан с первым, вы физически сервер 200.1.1.6 будете подключать к микротику двумя патч кордами или одним?
Вопрос 3: от провайдера, сейчас к Вам приходят два "хвоста" или один?

UncleD
16-12-2019, 22:57
Вопрос 1: раньше Ваш сервер 200.1.1.6 смотрел голой "попой" в интернет, сейчас вы хотите его перекинуть за NAT? Или же вы хотите выделить его в DMZ? »
Именно, что голой. Изначально планировался NAT.
Вопрос 2: вопрос уточняющий и завязан с первым, вы физически сервер 200.1.1.6 будете подключать к микротику двумя патч кордами или одним? »
Хотелось одним.
Вопрос 3: от провайдера, сейчас к Вам приходят два "хвоста" или один? »
Один.

Anton04
17-12-2019, 11:48
Именно, что голой. Изначально планировался NAT. »
Хотелось одним. »

Учитывая Ваши ответы не понятно зачем Вам второй IP адрес!?
Или он Вам нужен ну вот совсем? Или хочется, но можно и без него?

P.S. Вообще поясните, что у Вас на этом сервере Web/FTP или что-то своё не распространённое?

UncleD
17-12-2019, 12:26
Учитывая Ваши ответы не понятно зачем Вам второй IP адрес!?
Или он Вам нужен ну вот совсем? Или хочется, но можно и без него?
P.S. Вообще поясните, что у Вас на этом сервере Web/FTP или что-то своё не распространённое? »
Там база данных, реплицирующая головную БД поставщика услуги. Если вам это что-то говорит, то это АСУ ВРК. И вот он, поставщик, говорит, что без внешнего IP ну вот совсем совсем никак, но почему не объясняет. Может быть, когда разберусь с этим этапом, попробую решить и эту проблему, а сейчас все упирается в простои в работе, которых лучше не допускать ради эксперимента, и при том работают с базой круглосуточно.
На самом серваке крутиться FB и две службы от поставщика. Для его соединения с головным сервером и подключения к нему наших внутренних клиентов нужно было в виндовом фаерволе открывать порты 5840-5850 и 3050.

dislike
17-12-2019, 13:29
И вот он, поставщик, говорит, что без внешнего IP ну вот совсем совсем никак, но почему не объясняет. ....Для его соединения с головным сервером и подключения к нему наших внутренних клиентов нужно было в виндовом фаерволе открывать порты 5840-5850 и 3050. »

Не вижу тут никакой проблемы. Внешний IP у вас так и так останется - дайте его микротику. Сервер загоняйте в локальную сеть как любой другой ПК. На микротике делайте проброс портов на ваш сервер и всё. Никто снаружи и не узнает, что у вас вместо сервера теперь роутер запросы принимает. А другой ваш внешний IP адрес (который принадлежал старому роутеру) останется не у дел. Можно будет от него отказаться, наверное это даже принесет какую-то экономию на услугах провайдера.
Чтобы избежать простоев на время настройки, используйте вместо сервера какой-либо другой компьютер и на нем тренируйтесь. Потом их просто местами поменяете и всё.

Anton04
17-12-2019, 16:44
UncleD,

В таком случае, как сказал коллега dislike, проблем нет, то только если Вам известны порты и протоколы которые Вам нужно прокинуть к серверу.

UncleD
18-12-2019, 10:13
На микротике делайте проброс портов на ваш сервер и всё. »
В целом, протягивание внешнего IP во внутреннюю сеть было скорее ради того чтобы узнать что-то новое и интересное, но если все сведется к пробросу портов, то меня и так устроит. Что и попытался сделать.
Создано вот такое правило NAT:
/ip firewall nat
add action=netmap chain=dstnat comment="Mapping 200.1.1.5 >> 192.168.2.167
disabled=yes dst-port=5846 in-interface=ether1-wan protocol=tcp \
to-addresses=192.168.2.167 to-ports=5846
Да, сейчас правило отключено, включаю когда пробую что-то изменять.

Использовал WAN микротика, потому что сервер имеет свой IP во внутренней сети и трогать его внешний нет смысла, все верно на правах эксперимента?
При такой реализации ничего не работает и https://www.wservice.info/ говорит, что порт 5846 закрыт, утилита проверки возвращает ошибку.
Тогда отключаю правило:
/ip firewall filter
add action=drop chain=forward comment="Disable WAN>LAN" in-interface=ether1-wan \
out-interface=bridge1
ЕслиКогда закончу с пробросом, то узнаю адрес головного сервера и разрешу конекты от него.
Теперь https://www.wservice.info/ сообщает, что 5846 открыт, но утилита все еще молчит.

В процессе нашелся гораздо более простой способ проверки доступности сервера, можно в браузере ввести его адрес с указанием порта (200.1.1.6:5846 или 192.168.2.167:5846) и он покажет "Привет от сервера АСУ ВРК". Но даже так он не отвечает при обращении на 200.1.1.5.

При проверке доступности сервера через утилиту, как на внешний так и на внутренний IP, WS показывает такие пакеты, будучи запущенным на другой машине в локальной сети и имея фильтр ip.addr == 200.1.1.6 or ip.addr==200.1.1.5
5260 48.716896 192.168.2.164 200.1.1.6 TCP 66 57916 → 5846 [SYN] Seq=0 Win=8192 Len=0 MSS=1460 WS=4 SACK_PERM=1
5261 48.717233 200.1.1.6 192.168.2.164 TCP 66 5846 → 57916 [SYN, ACK] Seq=0 Ack=1 Win=8192 Len=0 MSS=1460 WS=256 SACK_PERM=1
5262 48.717287 192.168.2.164 200.1.1.6 TCP 54 57916 → 5846 [ACK] Seq=1 Ack=1 Win=65700 Len=0
5263 48.717346 192.168.2.164 200.1.1.6 HTTP/XML 806 POST /soap/ICDRW_replic HTTP/1.1
5264 48.727309 200.1.1.6 192.168.2.164 TCP 192 5846 → 57916 [PSH, ACK] Seq=1 Ack=753 Win=525568 Len=138 [TCP segment of a reassembled PDU]
5265 48.727334 192.168.2.164 200.1.1.6 TCP 54 57916 → 5846 [ACK] Seq=753 Ack=139 Win=65560 Len=0
5266 48.727717 200.1.1.6 192.168.2.164 HTTP/XML 548 HTTP/1.1 200 OK
5267 48.727738 192.168.2.164 200.1.1.6 TCP 54 57916 → 5846 [ACK] Seq=753 Ack=634 Win=65068 Len=0
5268 48.727753 192.168.2.164 200.1.1.6 TCP 54 57916 → 5846 [FIN, ACK] Seq=753 Ack=634 Win=65068 Len=0
5269 48.728080 200.1.1.6 192.168.2.164 TCP 60 5846 → 57916 [ACK] Seq=634 Ack=754 Win=525568 Len=0

При попытке проверить доступность сервера по IP WAN микротика ловим TCP Retransmission.

Busla
18-12-2019, 10:54
UncleD, по уму, провайдер должен был выдать подсеть, тогда бы вы полноценно маршрутизировали трафик
чтобы firewall'ом рулить трафик по двум ip они должны быть прописаны на интерфейсе, вот только это не работает для ip из одной сети

Создано вот такое правило NAT:
Код:
/ip firewall nat
add action=netmap chain=dstnat comment="Mapping 200.1.1.5 >> 192.168.2.167
disabled=yes dst-port=5846 in-interface=ether1-wan protocol=tcp \
to-addresses=192.168.2.167 to-ports=5846 »
наглядный пример, как не надо писать комментарии ;-)

Тогда отключаю правило:
Код:
/ip firewall filter
add action=drop chain=forward comment="Disable WAN>LAN" in-interface=ether1-wan \
out-interface=bridge1 »
а не надо было ломать дэфолтные правила и писать эту отсебятину

вы хотите его перекинуть за NAT? Или же вы хотите выделить его в DMZ? »
одно другое не исключает

UncleD
19-12-2019, 12:06
а не надо было ломать дэфолтные правила и писать эту отсебятину »
Спасибо, дали мотивацию к некоторому гуглению, хоть и в другую сторону.
На данный момент реализация следующая:
Правила NAT:
/ip firewall nat
add action=dst-nat chain=dstnat dst-address=200.1.1.5 dst-port=5846 protocol=\
tcp to-addresses=192.168.2.167
add action=src-nat chain=srcnat dst-address=192.168.2.167 dst-port=5846 protocol=\
tcp src-address=192.168.2.0/24 to-addresses=192.168.2.1
Правило firewall, стоящее выше запрещающего WAN в LAN
/ip firewall filter
add action=accept chain=forward comment="Accept tcp 5846 WAN to LAN" dst-port=5846 \
in-interface=ether1-wan protocol=tcp

Как пропишем у поставщика услуг новый IP сервера и погоняем пару дней, так проставлю решено, если не выявится ни каких проблем.

Anton04
19-12-2019, 15:35
UncleD,

Рекомендация. Используйте "Interface list (https://wiki.mikrotik.com/wiki/Manual:Interface/List)" в правилах фильтрации и фаервола. Будет намного легче.

Busla
19-12-2019, 17:18
UncleD, по дэфолту Mikrotik разрешает в фильтре прописанные в nat правила:

chain=forward action=drop connection-state=new connection-nat-state=!dstnat in-interface=ether1-wan




© OSzone.net 2001-2012