intelworker Posted August 16, 2017 Posted August 16, 2017 Добрый день. Пробежался по статьям на сайте zyxel и ответам на вопросы и не удалось выяснить то, что мне нужно. Собираюсь организовать IPSec туннель между двумя Ultra II (прошивки самые последние) по статье "Организация туннеля IPSec VPN между двумя интернет-центрами Keenetic Ultra II и Giga III". Там вроде все понятно написано, но нет главного ответа на мой вопрос, как сделать так, чтобы IPSec "клиент" в виде одной из Ultra II забирал интернет с IPSec "сервера" в виде другой Ultra II. Т.е. суть проста, у меня за городом дом, там стоит LTE антенна с модемом ZTE MF823, воткнутым в Ultra II и получаю интернет от мобильного оператора. В городе у меня офис и стоит роутер Ultra II и сверх быстрый интернет со статическим внешним IP. Мне по факту нужно из загородного дома использовать мой офисный интернет (доступ к офисной сети и компам даже не нужен), т.к. во-первых на каждом сайте у меня не будут просить вводить сложнейшую рекапчу из-за того, что с таким IP ходит в интернет тысячи людей и во-вторых рассчитываю на более стабильный доступ в интернет (насколько он получится стабильным это уже узнаю на практике конечно). Поискал здесь на форуме, тоже есть некоторые похожие вопросы, но боюсь там настолько краткие ответы и устаревшие прошивки, что просто не понимаю где искать какие-то дефолтные маршруты и надо ли. Друзья, если не сложно, подскажите по пунктам как это правильно организовать. Заранее благодарен. Quote
KorDen Posted August 16, 2017 Posted August 16, 2017 Для того чтобы ходить в интернет через туннель, вам нужен IPIP или GRE-туннель с IPsec. Далее на работе делаете туннель private или protected, делаете условно ip nat IPIP0; дома тип public, ставите ip global 1000 и у вас всё должно начать работать само. Однако если у вас нестабильный сигнал сети, от туннеля он стабильнее не станет, скорее наоборот, из-за инкапсуляции будет медленнее и глючнее. 1 Quote
r13 Posted August 16, 2017 Posted August 16, 2017 12 минуты назад, KorDen сказал: Для того чтобы ходить в интернет через туннель, вам нужен IPIP или GRE-туннель с IPsec. Далее на работе делаете туннель private или protected, делаете условно ip nat IPIP0; дома тип public, ставите ip global 1000 и у вас всё должно начать работать само. Однако если у вас нестабильный сигнал сети, от туннеля он стабильнее не станет, скорее наоборот, из-за инкапсуляции будет медленнее и глючнее. Еще default route надо дома добавить, автоматом не добавлялся, когда я с такой схемой экспериментировал. 1 Quote
intelworker Posted August 16, 2017 Author Posted August 16, 2017 (edited) Ребята давайте я напишу порядок своих действий, а вы меня поправьте если что, т.к. мои админские навыки немного слабоваты. Исходные параметры: а) офисная сеть 192.168.2.0/24, адрес роутера 192.168.2.1 (внешний статический IP - пусть будет 92.9.9.1) б) домашняя сеть 192.168.1.0/24, адрес роутера 192.168.1.1 (внешний IP серый/динамический/мне не подконтролен) В общем порядок моих действий: 1. Устанавливаю на оба роутера пакет "Туннели IPIP" (прошивка у роутеров 2.10+, это на момент написания поста еще отладочная прошивка, т.е. даже не бета). 2. На офисном Ultra II по телнету открываю командную строку и ввожу следующее: (config)> interface IPIP0 (config-if)> description ConnectWithHome (config-if)> security-level private (config-if)> ip address 192.168.255.1 255.255.255.0 (config-if)> ip tcp adjust-mss pmtu (config-if)> ipsec preshared-key MyLongSuperKey (config-if)> ipsec ikev2 (config-if)> tunnel source auto (config-if)> up (config-if)> exit (config)> ip nat IPIP0 (config)> system config-save 4. На домашнем Ultra II по телнету открываю командную строку и ввожу следующее: (config)> interface IPIP0 (config-if)> description ConnectWithOffice (config-if)> security-level public (config-if)> ip address 192.168.255.2 255.255.255.0 (config-if)> ip tcp adjust-mss pmtu (config-if)> ip global 1000 (config-if)> ipsec preshared-key MyLongSuperKey (config-if)> ipsec ikev2 (config-if)> tunnel destination 92.9.9.1 (config-if)> up (config-if)> exit (config)> ip route default 192.168.255.1 IPIP0 (config)> system config-save Далее идем в веб интерфейс домашней Ultra II, вкладка Интернет-Прочее, добавляем статический "маршрут до узла". В адрес узла назначения вписываем внешний IP офиса (92.9.9.1) и ниже выбираем только интерфейс модема (у меня это CdcEthernet0) и жмем "Применить". Судя по всему адрес шлюза роутер выбирает сам исходя из текущего адреса шлюза модема. Edited August 16, 2017 by intelworker Quote
r13 Posted August 16, 2017 Posted August 16, 2017 (edited) @intelworker Ipsec туннель организуется силами самого IPIP(пункт 2 не нужен), смотрите настройку в соответствующей теме После этого откорректируйте свой пост. ЗЫ адресация IPIP не должна пересекаться с вашими сетями. Edited August 16, 2017 by r13 1 Quote
Le ecureuil Posted August 16, 2017 Posted August 16, 2017 На офисном роутере нужно ввести tunnel source auto, при этом tunnel destination не заполнять. На домашнем роутере ввести tunnel destination. Везде ввести > ipsec preshared-key <key> key должен совпадать на обоих концах. Еще неплохо бы включить IKEv2 > ipsec ikev2 Адресация IPIP0 на офисном роутере должна быть > ip address 192.168.3.1 255.255.255.0 Адресация IPIP0 на домашнем роутере должна быть > ip address 192.168.3.2 255.255.255.0 При этом никаких дополнительных действий по установке подключения IPsec производить не нужно - все будет организовано само. Не забудьте сохранить настройки > system config-save 1 Quote
intelworker Posted August 16, 2017 Author Posted August 16, 2017 @Le ecureuil@r13 спасибо друзья, проверьте пожалуйста мой второй пост, правильно ли все по вашим замечаниям поправил? Quote
r13 Posted August 16, 2017 Posted August 16, 2017 (edited) 7 минут назад, intelworker сказал: @Le ecureuil@r13 спасибо друзья, проверьте пожалуйста мой второй пост, правильно ли все по вашим замечаниям поправил? Команды (config)> ipsec preshared-key MyLongSuperKey (config)> ipsec ikev2 Выполняются в контексте туннеля, так что их переместить после (config-if)> interface IPIP0 Команда ip nat IPIP0 Выполняется вне контекста туннеля. В остальном ок ЗЫ, как уже писал выше может понадобиться default route через туннель @Le ecureuil Можно добавить автоматическое добавление default route при настройке ip global у туннеля? Edited August 16, 2017 by r13 1 Quote
Le ecureuil Posted August 16, 2017 Posted August 16, 2017 1 час назад, r13 сказал: @Le ecureuil Можно добавить автоматическое добавление default route при настройке ip global у туннеля? Неа, в качестве удаленного адреса шлюза может быть любой адрес из подсети туннеля, потому автоматически невозможно. 1 Quote
KorDen Posted August 16, 2017 Posted August 16, 2017 (edited) Рабочий пример, чуть адаптированный вам: Дома: interface IPIP4 description Office security-level public ip address 192.168.255.2 255.255.255.252 ip global 1000 ip tcp adjust-mss pmtu ipsec preshared-key <MySecretKey> ipsec ikev2 tunnel destination 92.9.9.1 up ! ip route default 192.168.255.1 IPIP4 На работе interface IPIP4 description Home security-level protected ip address 192.168.255.1 255.255.255.252 ip tcp adjust-mss pmtu ipsec preshared-key <MySecretKey> ipsec ikev2 tunnel source ISP up ! ip nat IPIP4 ipsec ikev2 работает только на 2.10. При его использовании индексы интерфейса (в моем примере это IPIP4) должны совпадать. IP адрса интефейса надо править только если у вас где-то вдруг есть сеть 192.168.255.x, в остальных случаях достаточно оставить так, это P2P линк. Возможно потребуется указать MTU с обоих сторон (если внешний MTU 1500, то "ip mtu 1420") Вроде ничего не забыл Edited August 16, 2017 by KorDen 1 1 Quote
intelworker Posted August 16, 2017 Author Posted August 16, 2017 (edited) Спасибо ребята, буду пробовать! Внес последние правки в свой второй пост для истории, чтобы другие смогли воспользоваться моей инструкцией, если она верна. А вот в ТП Keenetic отписали коротко и ясно: Цитата В интернет-центрах Keenetic маршрутизировать трафик в IPSec нельзя. Для описанной схемы можно использовать PPTP-сервер Как чувствовал, что лучше просто спросить тут у ребят на форуме. @KorDen немного смутили поля description, они у вас перепутаны для моего случая :) Но спасибо! Разобрался быстро! Edited August 16, 2017 by intelworker Quote
KorDen Posted August 16, 2017 Posted August 16, 2017 8 минут назад, intelworker сказал: немного смутили поля description, они у вас перепутаны для моего случая :) Не-а, не перепутаны. дескрипшен показывает ЧТО подключено через это соединение, т.е. дома у вас отображается соединение _с_ Office, ну и наоборот. 1 Quote
intelworker Posted August 16, 2017 Author Posted August 16, 2017 Понял, поправил и у себя, тогда уж назвал ConnectWithOffice/Home. Благодарю! Quote
intelworker Posted August 16, 2017 Author Posted August 16, 2017 (edited) @KorDen по поводу MTU, в офисе внешний MTU на интерфейсе PPPoE0 равен 1492. На интерфейсе модема дома CdcEthernet0 равен 1500. Надо ли все-таки что-то менять в IPIP0 на обеих сторонах? Edited August 16, 2017 by intelworker Quote
r13 Posted August 16, 2017 Posted August 16, 2017 @KorDen У вас такая конструкция работает? Попробовал сейчас порезвиться: IPIP типа всегда поднят, и в режиме default route становится интерфейсом по умолчанию, все ок. Но при этом он пытается через себя же установить ipsec туннель до сервера, что естественно не удается. Нужно добавлять маршрут до узла сервера через нормальный интерфейс, тогда начинает работать корректно. У вас так же или я где-то что-то перемудрил? Quote
KorDen Posted August 16, 2017 Posted August 16, 2017 26 минут назад, r13 сказал: Нужно добавлять маршрут до узла сервера через нормальный интерфейс, тогда начинает работать корректно. Да, про это я забыл. И необходимость вполне логична. У меня маршруты уже давно были прописаны, еще когда туннелей не было. Quote
intelworker Posted August 16, 2017 Author Posted August 16, 2017 (edited) @KorDen а по MTU что скажете? И хотелось бы уточнений про этот маршрут, где его добавлять и что понимается под "нормальным" интерфейсом А лучше командной строкой сразу, чтобы уж вопрос был полностью решен))) Edited August 16, 2017 by intelworker Quote
r13 Posted August 16, 2017 Posted August 16, 2017 17 минут назад, intelworker сказал: @KorDen а по MTU что скажете? И хотелось бы уточнений про этот маршрут, где его добавлять и что понимается под "нормальным" интерфейсом А лучше командной строкой сразу, чтобы уж вопрос был полностью решен))) Нужно прописать маршрут до ip роутера сервера через интерфейс с интернетом (модема в вашем случае) и очень желательно чтобы этот ip был статическим. Прописать можно или в вебе (вкладка интернет-прочее) или продолжать через cli Quote
intelworker Posted August 16, 2017 Author Posted August 16, 2017 @r13 Что-то пока не получается. Пакеты уходят, но с офиса ничего не приходит в ответ. Можете пояснить с учетом моей конфигурации какие данные вписывать? Открыл вкладку Интернет-Прочее, нажал добавить статический маршрут. Выбрал "Маршрут до узла", в адрес узла назначения вписал внешний статический IP офиса (у нас это 92.9.9.1), поставил галку добавлять автоматически, интерфейс выбрал модема CdcEthernet0, вот в адрес шлюза не понимаю что вписывать и метрику не знаю какую указать. Quote
intelworker Posted August 16, 2017 Author Posted August 16, 2017 (edited) Методом проб и ошибок (в адрес шлюза просто ничего не вписал, как и в метрику) в итоге вроде как заработало, не знаю надолго ли, и что произойдет когда у модема очередной раз будет реконнект и IP сменится. PS: для истории: как не странно канал очень стабильный, проседаний по скорости не заметил, даже наверно наоборот, но может и самовнушение (спидтест до провайдера - 27 Мбит/с входящий, 14 Мбит/с исходящий, даже без туннеля канал временами выдавал результаты похуже). Edited August 16, 2017 by intelworker Quote
r13 Posted August 17, 2017 Posted August 17, 2017 7 часов назад, intelworker сказал: Методом проб и ошибок (в адрес шлюза просто ничего не вписал, как и в метрику) в итоге вроде как заработало, не знаю надолго ли, и что произойдет когда у модема очередной раз будет реконнект и IP сменится. PS: для истории: как не странно канал очень стабильный, проседаний по скорости не заметил, даже наверно наоборот, но может и самовнушение (спидтест до провайдера - 27 Мбит/с входящий, 14 Мбит/с исходящий, даже без туннеля канал временами выдавал результаты похуже). Все верно, того что сделали достаточно. Quote
r13 Posted August 17, 2017 Posted August 17, 2017 @Le ecureuil А можно ли при соединении динамически добавлять маршрут до tunnel destination через интерфейс определенный на этапе резолва tunnel source, подобно тому как это делается например при подключении через PPTP? 1 Quote
ICMP Posted August 17, 2017 Posted August 17, 2017 (edited) Напомните пожалуйста какие туннели не работают за NAT? Или достаточно чтоб на сервере был белый IP? Edited August 17, 2017 by ICMP Quote
r13 Posted August 17, 2017 Posted August 17, 2017 (edited) 4 минуты назад, ICMP сказал: Напомните пожалуйста какие туннели не работают за NAT? Все(IPIP, EoIP, GRE), без ipsec подложки. Если нужно через нат, то запускать туннель через ipsec. Edited August 17, 2017 by r13 1 Quote
Le ecureuil Posted August 17, 2017 Posted August 17, 2017 15 минут назад, r13 сказал: @Le ecureuil А можно ли при соединении динамически добавлять маршрут до tunnel destination через интерфейс определенный на этапе резолва tunnel source, подобно тому как это делается например при подключении через PPTP? Добавлять на клиенте или на сервере? Можно конечно, сделаем, просто опишите подробнее. Quote
r13 Posted August 17, 2017 Posted August 17, 2017 Только что, Le ecureuil сказал: Добавлять на клиенте или на сервере? Можно конечно, сделаем, просто опишите подробнее. На клиенте, так как он выполняет соединение. При соединении добавлять маршрут до ip узла определенного при резолве tunnel destination Через интерфейс определенный при резолве tunnel source ip адреса.(если на клиенте указан конкретный интерфейс tunnel source то все просто, если auto то думаю тоже возможно) Таким образом получится использовать туннель как маршрут по умолчанию и в том числе для динамического ip сервера. Quote
Le ecureuil Posted August 17, 2017 Posted August 17, 2017 4 минуты назад, r13 сказал: На клиенте, так как он выполняет соединение. При соединении добавлять маршрут до ip узла определенного при резолве tunnel destination Через интерфейс определенный при резолве tunnel source ip адреса.(если на клиенте указан конкретный интерфейс tunnel source то все просто, если auto то думаю тоже возможно) Таким образом получится использовать туннель как маршрут по умолчанию и в том числе для динамического ip сервера. Ок, мысль понял, сделаем. 1 Quote
intelworker Posted August 17, 2017 Author Posted August 17, 2017 (edited) Ну да было бы идеально если бы не приходилось прописывать маршруты, т.к. все само у меня не заработало (активным отображалось подключение модема, а не туннеля IPIP), пока я не прописал дефолтный маршрут и не добавил маршрут до узла сервера. ps: Конечно ошибки "ndm kernel: hw_nat: not found ip host: 192.168.1.44, ifindex: 7(7)" весь журнал забивают) Читал в соседней теме, что работаете над этим, ждем. Спасибо. Edited August 17, 2017 by intelworker Quote
r13 Posted August 17, 2017 Posted August 17, 2017 (edited) 10 минут назад, intelworker сказал: Ну да было бы идеально если бы не приходилось прописывать маршруты, т.к. все само у меня не заработало (активным отображалось подключение модема, а не туннеля IPIP), пока я не прописал дефолтный маршрут и не добавил маршрут до узла сервера. Необходимости добавлять default route это не отменит, но это однократная операция, так что не проблема. А вот маршрут до сервера позволит избежать потери удаленного клиента без возможности удаленной корректировки в случае изменения ip сервера. Скрытый текст Да, человек смертен, но это было бы ещё полбеды. Плохо то, что он иногда внезапно смертен, вот в чём фокус! (с) Edited August 17, 2017 by r13 Quote
Le ecureuil Posted August 17, 2017 Posted August 17, 2017 Начиная со следующей сборки draft автопрописывание роута к destination должно работать 2 Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.