@ZzeroCool
Learn Java Core, Spring, Hibernate

Как с микротика подключится к другому клиенту l2tp?

Имеется l2tp-сервер с подключенными клиентами. Пытаюсь подключить mikrotik 751G как клиент к l2tp-серверу (интернет на микротике через 3g-модем). Соединение устанавливается, присваивается внутренний IP: 200.200.200.102
Но ни с компа подключенного к микротику, ни с самого микротика другого клиента подключенного к этому серверу - пропинговать не удается. Если прописываю route вида:
Dst.addres: 200.200.200.0/24
GateWay: l2tp-out1
Pref.source: 200.200.200.102
То пользователи пингуются с микротика, но не пингуются с компа подключенного к микротику.
Вопросы:
1. Как правильно прописать роут(ы)?
2. Если добавить второе правило маскарад для l2tp - то с компов подключенных к микротику - другие клиенты становятся доступными. Почему? (Эти правила после перезагрузки отваливаются, и надо вручную запускать. Полагаю, что так делать нельзя)
3. Не удается подключить микротик как pptp-клиент. Как можно на миротике дебажить причину link established? ( /interface pptp-client monitor ничего не показывает кроме link established)
  • Вопрос задан
  • 3807 просмотров
Решения вопроса 1
ifaustrue
@ifaustrue
Пишу интересное в теллеграмм канале @cooladmin
Первое что важно понять - l2tp расшифровывается как - туннельный протокол второго уровня. Т.е. это канальный протокол, работающий в качестве туннеля. От этого понимания рождается два вывода:
1. Можно пускать трафик просто в интерфейс, кто-нибудь его всё равно обработает (если точнее, то не "кто-нибудь", а чётко вторая сторона, других сторон в туннеле нет)
2. Адреса на такой туннель устанавливаются с маской /32.

Из последнего получается, что в таблице маршрутизации микротика или сервера не появляется маршрут вида 200.200.200.0/24, поэтому его нужно прописывать руками.

Дальше. Сервер на который вы подключаетесь управляет кучей таких туннелей и все они у него как куча подсетей /32 в зависимости от адреса назначения пакет отправляется по соответствующему маршруту, который как написано выше равен отдельному туннелю. Но этот сервер совершенно ничего не знает про то, какие сети расположены за его клиентами, в его таблице маршрутов просто нет записи вида Х.Y.Z.W/24 gw 200.200.200.102, а значит если трафик в каком либо туннеле придёт от источника из этой подсети роутер не сможет вернуть его назад - потому от удалённой сети ваша сеть за микротиком не видна.

В протоколе ipv4 для такой ситуации придумали механизм - NAT - он подменяет адрес источника во всех пакетах идущих от компьютеров за микротиком, на адрес назначенный на туннель, в такой ситуации сервер l2tp сможет понять (если точнее, то в такой ситуации сервер L2TP думает что весь трафик идёт только от МИкротика - от его клиента) куда же отправить пакеты и трафик начинает ходить.

Резюмируя. При использовании любых P2P туннелей нужно добавлять маршруты в таблицу (либо руками, либо автоматом, но это за рамками вопроса). Так же необходимо использовать NAT либо добавлять маршруты в таблицу сервера (последнее так же за рамками вопроса).
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы