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 и ответить на него туда же, откуда оно пришло.
    Всегда пожалуйста )
     
  13. NickDragon

    NickDragon Участник

    А как в эту схему впускать из вне, когда надо клиенту входить через внешний ip с указанием порта? Обычный dst-nat не работает. Он впускает, это видно, но дальше, из-за маркированного трафика он теряется. Пробовал эксперименты с ловлей соединения по вышеуказанной логике - не получается. Это возможно?
     
  14. Илья Князев

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

    Я на московском MUM в 2918 году подробно разбирал все нюансы мультивана.
    Посмотрите видео и презентацию. Сходу может не зайти, но там очень важно понимать что и в какой момент происходит на маршрутизаторе.
    Будут вопросы - пишите.

    Презентация presentation_6157_1554717194.pdf
    Видео
     
  15. NickDragon

    NickDragon Участник

    Спасибо Илья, очень интересные и видео, и презентация! Тема точно перекликается с моей и чую там много ещё чего интересного я могу реализовать у себя. Но пока меня парит маркировка. Она работает на выход маркированных компов в интернет. Но вот вход по 3389 порту на маркированные другим WANом сервера работает ТОЛЬКО через туннель L2TP, как в локальной сети. Пользователи входят на НЕ маркированные сервера из вне через dst-nat, т.е. через порт указанный после двоеточия. Но ведь в mangle нет dst-nat! И тут я никак не могу сообразить: как mangle работает с пробросом портов?
     
    Последнее редактирование: 30 янв 2020
  16. Илья Князев

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

    mangle с ним никак не работает. С вероятностью 99% у вас или правило NAT кривое, или пакет входит через один интерфейс, а уходит через другой.
     
  17. NickDragon

    NickDragon Участник

    Первое исключено. У меня больше 20 сотрудников работают через dst-nat и два месяца не "выпрямить" одного, у единственного которого комп зармаркирован на выход в интернет через другого провайдера... Напрашивается только второй вариант и даже не 99%, а все 100%! Я вижу как пакет входит, но подключения не происходит. Он явно уходит через другой интерфейс. Как его отправить обратно в нужный?
     
    Последнее редактирование: 31 янв 2020
  18. Илья Князев

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

    Видео с 13:10 )
     
  19. NickDragon

    NickDragon Участник

    Вот! Я почему-то думаю, что у меня другая ситуация! Пользователь приходит через ether1, а попасть ему надо на сервер, который смотрит только в L2TP-WAN!
     
  20. Илья Князев

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

    Так пусть сервер отвечает в Ether1