Прочитал много документации, но все равно не могу решить следующую проблему.
У меня 2 провайдера, для одного прописан в маршрутах GW по умолчанию, а для второго провайдера, есть отдельный маршрут, по которому пакеты к нему уходят только, если они предварительно промаркированы (маркируются только пакеты, направляемые на адреса и сети из Adress List).
В Adress List так же заносятся на несколько секунд адреса, попытавшиеся подключиться к роутеру от 2-го провайдера.
Никак не могут подключиться к роутеру L2TP клиенты через 2-го провайдера (c PPTP все хорошо). Посмотрел во вкладке Connections, каждый раз при попытке подключиться, возникает исходящее соединение от роутера к L2TP клиенту, причем в качестве исходного адреса указан внешний IP адрес 1-го провайдера. Соединение направляется судя по всему по правильному маршруту, но из-за того что IP адреса инициатора туннеля и отвечающего не совпадают, туннель не подымается. Как мне исправить данную проблему? Уже весь мозг сломал...
2 провайдера и L2TP
-
- Сообщения: 49
- Зарегистрирован: 01 апр 2013, 13:35
- simpl3x
- Модератор
- Сообщения: 1532
- Зарегистрирован: 19 апр 2012, 14:03
вам нужно сделать схожую маркировку не только на цепочки prerouting, но и на цепочку input. суть на цепочке input маркировать соединения (new-connection-mark), а потом, по этой маркировке на цепочке output маркировать new-route-mark, а потом эту маркировку применять к маршруту на второго провайдера. то же самое можете сделать на первого провайдера, для успокоения души. суть в том, чтобы микротик получив пакет к себе от какого либо провайдера, отвечал ему туда же.
-
- Сообщения: 49
- Зарегистрирован: 01 апр 2013, 13:35
Да все так и делаю... С другими подключениями все ОК, но L2TP никак.
-
- Сообщения: 49
- Зарегистрирован: 01 апр 2013, 13:35
Вот что у меня в маршрутах:
Mangle:
Как только я прописываю ручками маршруты к клиентам L2TP через шлюз 212.16.184.245, они сразу "цепляются", а без этого нет.
Подскажите пожалуйста, что не так?
Код: Выделить всё
/ip route
add check-gateway=ping comment="VTC ONLY" disabled=no distance=1 dst-address=\
0.0.0.0/0 gateway=212.16.184.245 routing-mark=VTC scope=30 target-scope=\
10
add check-gateway=ping comment="VLADLINK ONLY" disabled=no distance=1 \
dst-address=0.0.0.0/0 gateway=5.120.83.1 routing-mark=VLADLINK scope=30 \
target-scope=10
add check-gateway=ping comment="DEFAULT GW" disabled=no distance=1 \
dst-address=0.0.0.0/0 gateway=5.120.83.1 scope=30 target-scope=10
Mangle:
Код: Выделить всё
/ip firewall mangle
add action=add-src-to-address-list address-list=VTC_Only \
address-list-timeout=30s chain=input comment="VTC_PPPoE => Router" \
disabled=no dst-port=1701 in-interface=VTC_PPPoE protocol=udp
add action=mark-connection chain=input disabled=no in-interface=VTC_PPPoE \
new-connection-mark=FROM_VTC passthrough=yes
add action=mark-connection chain=prerouting disabled=no in-interface=\
VTC_PPPoE new-connection-mark=FROM_VTC passthrough=yes
add action=mark-routing chain=output comment=\
"Router => \"Vladlink_Only\" List" disabled=no dst-address-list=\
Vladlink_Only new-routing-mark=VLADLINK passthrough=yes
add action=mark-routing chain=prerouting comment=\
"Not Router => \"Vladlink_Only\" List" disabled=no dst-address-list=\
Vladlink_Only new-routing-mark=VLADLINK passthrough=yes
add action=mark-routing chain=prerouting comment=\
"Not Router => \"VTC_Only\" List" disabled=no dst-address-list=VTC_Only \
new-routing-mark=VTC passthrough=yes
add action=mark-routing chain=output comment="Router => \"VTC_Only\" List" \
disabled=no dst-address-list=VTC_Only new-routing-mark=VTC passthrough=\
yes
add action=mark-routing chain=output connection-mark=FROM_VTC disabled=no \
new-routing-mark=VTC passthrough=yes
add action=mark-routing chain=prerouting connection-mark=FROM_VTC disabled=no \
new-routing-mark=VTC passthrough=yes
Как только я прописываю ручками маршруты к клиентам L2TP через шлюз 212.16.184.245, они сразу "цепляются", а без этого нет.
Подскажите пожалуйста, что не так?
- simpl3x
- Модератор
- Сообщения: 1532
- Зарегистрирован: 19 апр 2012, 14:03
add check-gateway=ping comment="DEFAULT GW" disabled=no distance=1 \
dst-address=0.0.0.0/0 gateway=5.120.83.1 scope=30 target-scope=10
сделайте дистанцию например 10.
счётчики на маркерах увеличиваются вообще, когда пользователи пытаются подключится?
dst-address=0.0.0.0/0 gateway=5.120.83.1 scope=30 target-scope=10
сделайте дистанцию например 10.
счётчики на маркерах увеличиваются вообще, когда пользователи пытаются подключится?
-
- Сообщения: 49
- Зарегистрирован: 01 апр 2013, 13:35
Завтра попробую, что-то один провайдер вообще умер сегодня.
Счетчики увеличиваются, и их адреса в Address List добавляются тоже.
Счетчики увеличиваются, и их адреса в Address List добавляются тоже.
- simpl3x
- Модератор
- Сообщения: 1532
- Зарегистрирован: 19 апр 2012, 14:03
-
- Сообщения: 49
- Зарегистрирован: 01 апр 2013, 13:35
Кажется я начинаю понимать в чем загвоздка. Ответы не направляются в нужный интерфейс, т.к. я не указывал Src. Address:
И второй момент, когда я маркирую входящие соединения к локальным сетям, какую цепочку использовать, preroating или forwarding?
это правило заворачивает и входящие и исходящие соединения...add action=mark-routing chain=prerouting connection-mark=FROM_VTC disabled=no \
new-routing-mark=VTC passthrough=yes
И второй момент, когда я маркирую входящие соединения к локальным сетям, какую цепочку использовать, preroating или forwarding?
-
- Сообщения: 49
- Зарегистрирован: 01 апр 2013, 13:35
Ради эксперимента добавил правило NAT
Это исходящее соединение появляется во вкладке Connectrons почти сразу после того, как L2TP инициирует подключение. При этом оно с флагом "U". Соединение входящее с флагом "A". В логах пишется: First L2TP udp packed recieved.
Счетчики бегут, это значит, что соединение устанавливается через 2-го провайдера, но 5.120.83.47 это ведь IP адрес 1-го провайдера! Получается что NAT не прячет его адрес что-ли?
Как же все таки заставить при подключении от роутера через 2-го провайдера в качестве Src. Adress указывать именно IP адрес 2-го провайдера, а не 1-го?
Flags: X - disabled, I - invalid, D - dynamic
0 chain=srcnat action=masquerade src-address=5.120.83.47
dst-address=77.35.210.242 out-interface=VTC_PPPoE
Это исходящее соединение появляется во вкладке Connectrons почти сразу после того, как L2TP инициирует подключение. При этом оно с флагом "U". Соединение входящее с флагом "A". В логах пишется: First L2TP udp packed recieved.
Счетчики бегут, это значит, что соединение устанавливается через 2-го провайдера, но 5.120.83.47 это ведь IP адрес 1-го провайдера! Получается что NAT не прячет его адрес что-ли?
Как же все таки заставить при подключении от роутера через 2-го провайдера в качестве Src. Adress указывать именно IP адрес 2-го провайдера, а не 1-го?
- simpl3x
- Модератор
- Сообщения: 1532
- Зарегистрирован: 19 апр 2012, 14:03
Код: Выделить всё
Flags: X - disabled, I - invalid, D - dynamic
0 chain=srcnat action=masquerade src-address=5.120.83.47
dst-address=77.35.210.242 out-interface=VTC_PPPoE
а позвольте узнать, зачем вы задаёте src-address=5.120.83.47 и dst-address=77.35.210.242? это запись означает, пакет с адресом источника 5.120.83.47 и к получателю 77.35.210.242 будут "прикрыты" адресом интерфейса VTC_PPPoE. вы уверены что вам нужна именно такая формулировка правила? не проще ли:
Код: Выделить всё
0 chain=srcnat action=masquerade out-interface=VTC_PPPoE