L2TP. Маркированный трафик компа с lookup only in table к другому WAN - RDP к нему с другой локалки

Тема в разделе "Маршрутизация", создана пользователем NickDragon, 4 ноя 2019.

  1. NickDragon

    NickDragon Участник

    Добрый день!
    Помогите пожалуйста разрешить дилемму, хотя подозреваю, что моя задача нонсенс, противоречива, а потому нерешаема. Вкратце вся её суть в заголовке. Попробую в деталях.
    Создал L2TP туннель между офисом и филиалом. Всё отлично: работает почтовый и файловый серверы. Необходим один очень важный для нас нюанс.
    На одной стороне есть комп с маркированным трафиком и с lookup only in table, чтобы он "лез" только в одного провайдера. И, кстати, не в того, через который прокинут L2TP. И вместе с этим надо, чтобы с другой стороны L2TP был доступ на этот комп по RDP. НО! Не через провайдера, на который тот замаркирован (через проброшенный порт, например 192.168.0.10:3333, как и работает без проблем), а напрямую через локальную сеть (192.168.0.10)! Без маркировки так и работает. Но одновременно с этим нужна маркировка того компа на другого провайдера. Существует решение такой задачи?
     
  2. Илья Князев

    Илья Князев Администратор Команда форума

    В mangle prerouting вешаем маркировки на трафик для этого компа protocol=tcp dst-port=3389 dst-address=
    и от этого компа
    protocol=tcp src-port=3389 src-address=
    Далее пишем route-rule вида "если маркировка такая-то то lookup (ну или явно only-in-table=main).
    Далее двигаем это правило выше того, которое вам "мешает"
     
  3. NickDragon

    NickDragon Участник

    Рано обрадовался ( Локальная RDP заработала, но комп "слетел" со своего провайдера ( Что-то делаю не так
     
  4. Илья Князев

    Илья Князев Администратор Команда форума

    То есть не RDP тоже пошел в main?
     
  5. NickDragon

    NickDragon Участник

    писал одной строчкой и двумя - никак не работает, "слетает провайдер"
     
  6. NickDragon

    NickDragon Участник

    да. Он идёт в main при любом раскладе Route rules
     
  7. Илья Князев

    Илья Князев Администратор Команда форума

    Давайте сюда mangle и роутинг.
     
  8. NickDragon

    NickDragon Участник

    /ip firewall mangle
    add action=mark-routing chain=prerouting disabled=yes new-routing-mark=RT passthrough=yes src-address=192.168.2.69
    add action=mark-routing chain=prerouting disabled=yes dst-address=192.168.2.20 dst-port=3389 new-routing-mark=farmalianse passthrough=yes protocol=tcp src-address=192.168.2.20
    add action=mark-routing chain=prerouting disabled=yes new-routing-mark=RT passthrough=yes src-address=192.168.2.251
    add action=mark-routing chain=prerouting disabled=yes new-routing-mark=RT passthrough=yes src-address=192.168.2.252
    add action=mark-routing chain=prerouting disabled=yes new-routing-mark=RT passthrough=yes src-address=192.168.2.253
    add action=mark-routing chain=prerouting disabled=yes dst-address=192.168.2.9 dst-port=3389 new-routing-mark=Alfa-Med passthrough=yes protocol=tcp src-address=192.168.2.9 src-port=3389
    add action=mark-routing chain=prerouting new-routing-mark=Alfa-Med passthrough=yes src-address=192.168.2.9
    add action=mark-routing chain=prerouting dst-address=192.168.2.4 dst-port=3389 new-routing-mark=OMKC passthrough=yes protocol=tcp
    /ip route rule
    add action=lookup-only-in-table disabled=yes routing-mark=RT table=RT
    add action=lookup-only-in-table routing-mark=Alfa-Med table=main
    add action=lookup-only-in-table routing-mark=OMKC table=OMKC
    add action=lookup-only-in-table routing-mark=farm table=farm
     
  9. NickDragon

    NickDragon Участник

    /ip firewall mangle
    add action=mark-routing chain=prerouting dst-address=192.168.2.9 dst-port=3389 \
    new-routing-mark=Alfa-Med passthrough=yes protocol=tcp src-address=\
    192.168.2.9 src-port=3389
    add action=mark-routing chain=prerouting dst-address=192.168.2.4 dst-port=3389 \
    new-routing-mark=OMKC passthrough=yes protocol=tcp
    а так пишу mangle по вашей инструкции. Точнее, как я это понял с ваших слов
     
  10. Илья Князев

    Илья Князев Администратор Команда форума

    Так. Тут я уплыл. Кто там с какой стороны сидит? По идее чтобы терминалка была доступна снаружи вне этой таблицы можно прикрутить что-то типа
    #Перехватываем вход c L2TP на искомый сервер.
    mangle prerouting in-interface=L2TP dst-address=искомый комп (dst-port можно указать можно нет. Тогда будет для всех портов и протоколов, что в принципе хорошо, так как Path MTU Discovery) new-connection-mark = XXXX
    #Маркируем маршрут
    mangle prerouting connection-mark=XXXX in-interface=!L2TP new-route-mark=YYYYY
    /ip route add
    0.0.0.0/0 -> L2TP route-mark=YYYYY
    /ip route rule
    add action=lookup-only-in-table routing-mark=YYYY table=YYYY

    Попробуйте.
     
    NickDragon нравится это.
  11. NickDragon

    NickDragon Участник

    Потрясающе!!! Получилось!!! RDP заработало локально, комп "идёт" в интернет своим маркированным маршрутом! Я даже не понял логику ваших команд, сомневался даже, что правильно введу, но нет, сходу успешно!
    Спасибо, Илья!
     
  12. Илья Князев

    Илья Князев Администратор Команда форума

    Логика в том, чтобы поймать входящее соединение с L2TP и ответить на него туда же, откуда оно пришло.
    Всегда пожалуйста )