Сервер и PLC контроллеры с подменой адресов

Тема в разделе "Вопросы начинающих", создана пользователем babkinav, 30 июн 2021.

  1. babkinav

    babkinav Новый участник

    Добрый день!
    Я не силен в глубокой настройке сетей, но
    Нужна ваша помощь как спецов mikrotic по реализации задачи:
    Имеется сам микротик hEX S и необходимо его настроить так, чтобы на 1 порт или sfp подключался сервак с адресом 10.20.30.40.1-2
    к портам 2-5 будут подключаться удаленные контроллеры plc со стандартными адресами (192.168.0.xx)
    но к ним необходимо обращаться через свой ip, например:
    10.20.30.110 - 2 порт, где PLC с адресом 192.168.0.1
    10.20.30.120 - 3 порт, где PLC с адресом 192.168.0.1 (Да адреса одинаковые, но с другого объекта)
    10.20.30.130 - 4 порт, где PLC с адресом 192.168.1.100
    10.20.30.140 - 5 порт, где PLC с адресом 192.168.88.1
    Я понимаю, что необходимо настроить Nat, но как правильно сделать не могу.
    Окажите содействие
    Заранее спасибо!
     
  2. babkinav

    babkinav Новый участник

    Схема

    Обращение сервера будет таким:

    1) 10.20.30.2 -> 10.20.30.110 -> порт Eth2 -> 192.168.0.1 (PLC1)
    2) 10.20.30.2 -> 10.20.30.120 -> порт Eth3 -> 192.168.0.1 (PLC2)
    3) 10.20.30.2 -> 10.20.30.130 -> порт Eth4 -> 192.168.1.100 (PLC3)

    между собою PLC не должны пересекаться
     

    Вложения:

  3. babkinav

    babkinav Новый участник

    Добрый день!
    Есть решение данной задачи: источник

    Mikrotik VRF+NAT — Управляем с одного хоста устройствами с одинаковыми IP-адресами

    Недавно знакомый попросил помощи с настройкой микротика. Просьба была не совсем простая. Идея в том, что нужно было одновременно управлять с одного хоста четырьмя устройствами с неуправляемым TCP/IP стеком. На всех этих устройствах были одинаковые настройки IP, причем просто IP-адрес и маска, ни шлюз, ни DNS не указаны. Странная, но, как оказалось, весьма реальная ситуация. Не будем вдаваться в подробности причин невозможности перенастройки адресации на этих устройствах, а просто примем этот факт за аксиому. Задача поставлена так, как есть, и ее нужно решить.

    Итак, исходные данные:
    1. Четыре устройства с одинаковыми настройками IP — 192.168.1.1/24; GW и DNS не указаны; изменить эти настройки невозможно.
    2. ПК, с которого необходимо одновременно иметь доступ ко всем четырем устройствам, допустим на WEB-интерфейс.
    3. Простенький MikroTik RB750GL на 5 портов.

    MikroTik RB750GL с настройками по умолчанию использует 1 порт для подключения к Интернету (NAT, FW), а остальные порты для подключения к локальной сети с настроенным DHCP — как обычный домашний роутер или роутер Small Business серии. Нам нужно задействовать все 5 портов, поэтому для начала полностью чистим конфиг и избавляемся от NAT, FW и DHCP.

    Итак, конфиг очистили, собираем схему (рис1)

    Теперь к делу…
    Первая и основная проблема, которая встает перед нами — это использование одинаковых IP-адресов или IP-адресов из одной подсети на разных интерфейсах маршрутизатора для обеспечения сетевой доступности целевых устройств. Как трактуют основы сетевого взаимодействия с одной таблицей маршрутизации такое сделать невозможно. Значит надо сделать несколько таблиц маршрутизации, и в этом нам поможет Virtual Routing and Forwarding (VRF). Не будем сильно погружаться в VRF — нам достаточно просто поместить разные интерфейсы в разные таблицы маршрутизации:

    /ip route vrf
    add interfaces=ether1 routing-mark=DEV1
    add interfaces=ether2 routing-mark=DEV2
    add interfaces=ether3 routing-mark=DEV3
    add interfaces=ether4 routing-mark=DEV4


    Отлично. Теперь настроим IP-адресацию согласно схеме (рис2)

    IP-адрес 192.168.2.1 будет использоваться для доступа к менеджменту самого MikroTik'а:

    /ip address
    add address=192.168.2.1/24 interface=ether5 network=192.168.2.0
    add address=192.168.1.2/24 interface=ether1 network=192.168.1.0
    add address=192.168.1.2/24 interface=ether2 network=192.168.1.0
    add address=192.168.1.2/24 interface=ether3 network=192.168.1.0
    add address=192.168.1.2/24 interface=ether4 network=192.168.1.0



    Вспомним, что на самих устройствах, которыми нужно управлять, также отсутствует возможность настройки шлюза по умолчанию. Еще нам нужно как-то разделять эти устройства для доступа с MGMT PC. Естественно NAT. Для каждого устройства выделим IP из подсети 192.168.2.0/24 и настроим на интерфейсе ether5:

    /ip address
    add address=192.168.2.11/24 interface=ether5 network=192.168.2.0
    add address=192.168.2.12/24 interface=ether5 network=192.168.2.0
    add address=192.168.2.13/24 interface=ether5 network=192.168.2.0
    add address=192.168.2.14/24 interface=ether5 network=192.168.2.0



    Сам NAT пока не трогаем и вспоминаем, что наши пакеты должны «бегать» между разными таблицами маршрутизации. Для этого нужно ставить маршрутные метки согласно новым IP-адресам, которые в дальнейшем будем NAT'ировать. Согласно документации NetFilter таблица Mangle, которая отвечает за маркировку трафика, отрабатывает раньше таблицы NAT. Опираясь на этот факт делаем следующее:

    /ip firewall mangle
    add action=mark-routing chain=prerouting dst-address=192.168.2.11 new-routing-mark=DEV1
    add action=mark-routing chain=prerouting dst-address=192.168.2.12 new-routing-mark=DEV2
    add action=mark-routing chain=prerouting dst-address=192.168.2.13 new-routing-mark=DEV3
    add action=mark-routing chain=prerouting dst-address=192.168.2.14 new-routing-mark=DEV4


    На основе данных правил пакеты, поступающие на интерфейс ether5 от хоста управления, согласно IP-адресу назначения будут перекладываться в нужную таблицу маршрутизации, на нужный порт к целевому устройству.
    Обратные пакеты от устройств необходимо возвращать в основную таблицу маршрутизации на интерфейс ether5, куда подключен наш хост управления. Для этого добавляем в Mangle еще одно правило:

    /ip firewall mangle
    add action=mark-routing chain=prerouting dst-address=192.168.2.2 new-routing-mark=main


    На основе данного правила все пакеты с адресом назначения 192.168.2.2 будут перекладываться в основную таблицу маршрутизации «main», в которой и находится интерфейс хоста управления.

    Осталось подумать о NAT. Для каждого устройства у нас будет по два правила:

    /ip firewall nat
    add action=dst-nat chain=dstnat dst-address=192.168.2.11 in-interface=ether5 to-addresses=192.168.1.1
    add action=src-nat chain=srcnat out-interface=ether1 to-addresses=192.168.1.2
    add action=dst-nat chain=dstnat dst-address=192.168.2.12 in-interface=ether5 to-addresses=192.168.1.1
    add action=src-nat chain=srcnat out-interface=ether2 to-addresses=192.168.1.2
    add action=dst-nat chain=dstnat dst-address=192.168.2.13 in-interface=ether5 to-addresses=192.168.1.1
    add action=src-nat chain=srcnat out-interface=ether3 to-addresses=192.168.1.2
    add action=dst-nat chain=dstnat dst-address=192.168.2.14 in-interface=ether5 to-addresses=192.168.1.1
    add action=src-nat chain=srcnat out-interface=ether4 to-addresses=192.168.1.2


    Таким образом с помощью NAT'а и VRF мы представили для управляющего хоста устройства с одинаковыми IP-адресами, как устройства с разными IP-адресами, а с помощью NAT'а на интерфейсах, которые смотрят в сторону этих устройств, позволили им работать без шлюза по умолчанию.
    В итоге, для управления целевыми устройствами (например, через web-интерфейс) на управляющем хосте необходимо набрать в браузере:

    DEV1 - 192.168.2.11

    DEV2 - 192.168.2.12

    DEV3 - 192.168.2.13

    DEV4 - 192.168.2.14
     

    Вложения: