Jump to content

IPSec туннель с доступом в интернет


Recommended Posts

Добрый день. Пробежался по статьям на сайте 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 ходит в интернет тысячи людей и во-вторых рассчитываю на более стабильный доступ в интернет (насколько он получится стабильным это уже узнаю на практике конечно). Поискал здесь на форуме, тоже есть некоторые похожие вопросы, но боюсь там настолько краткие ответы и устаревшие прошивки, что просто не понимаю где искать какие-то дефолтные маршруты и надо ли. Друзья, если не сложно, подскажите по пунктам как это правильно организовать. Заранее благодарен.

Link to comment
Share on other sites

Для того чтобы ходить в интернет через туннель, вам нужен IPIP или GRE-туннель с IPsec. Далее на работе делаете туннель private или protected, делаете условно ip nat IPIP0; дома тип public, ставите ip global 1000 и у вас всё должно начать работать само.

Однако если у вас нестабильный сигнал сети, от туннеля он стабильнее не станет, скорее наоборот, из-за инкапсуляции будет медленнее и глючнее.

  • Upvote 1
Link to comment
Share on other sites

12 минуты назад, KorDen сказал:

Для того чтобы ходить в интернет через туннель, вам нужен IPIP или GRE-туннель с IPsec. Далее на работе делаете туннель private или protected, делаете условно ip nat IPIP0; дома тип public, ставите ip global 1000 и у вас всё должно начать работать само.

Однако если у вас нестабильный сигнал сети, от туннеля он стабильнее не станет, скорее наоборот, из-за инкапсуляции будет медленнее и глючнее.

Еще default route надо дома добавить, автоматом не добавлялся, когда я с такой схемой экспериментировал.

  • Upvote 1
Link to comment
Share on other sites

Ребята давайте я напишу порядок своих действий, а вы меня поправьте если что, т.к. мои админские навыки немного слабоваты.

Исходные параметры: 

а) офисная сеть 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 by intelworker
Link to comment
Share on other sites

@intelworker Ipsec туннель организуется силами самого IPIP(пункт 2 не нужен), смотрите настройку в соответствующей теме

После этого откорректируйте свой пост.

ЗЫ адресация IPIP не должна пересекаться с вашими сетями.

Edited by r13
  • Thanks 1
Link to comment
Share on other sites

На офисном роутере нужно ввести 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

  • Thanks 1
Link to comment
Share on other sites

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 by r13
  • Thanks 1
Link to comment
Share on other sites

1 час назад, r13 сказал:

 

@Le ecureuil Можно добавить автоматическое добавление default route при настройке ip global у туннеля?

Неа, в качестве удаленного адреса шлюза может быть любой адрес из подсети туннеля, потому автоматически невозможно.

  • Thanks 1
Link to comment
Share on other sites

Рабочий пример, чуть адаптированный вам:

Дома:

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 by KorDen
  • Thanks 1
  • Upvote 1
Link to comment
Share on other sites

Спасибо ребята, буду пробовать! Внес последние правки в свой второй пост для истории, чтобы другие смогли воспользоваться моей инструкцией, если она верна. А вот в ТП Keenetic отписали коротко и ясно:

Цитата

В интернет-центрах Keenetic маршрутизировать трафик в IPSec нельзя.
Для описанной схемы можно использовать PPTP-сервер

Как чувствовал, что лучше просто спросить тут у ребят на форуме.

@KorDen немного смутили поля description, они у вас перепутаны для моего случая :) Но спасибо! Разобрался быстро!

Edited by intelworker
Link to comment
Share on other sites

8 минут назад, intelworker сказал:

немного смутили поля description, они у вас перепутаны для моего случая :)

Не-а, не перепутаны. дескрипшен показывает ЧТО подключено через это соединение, т.е. дома у вас отображается соединение _с_ Office, ну и наоборот.

  • Thanks 1
Link to comment
Share on other sites

@KorDen по поводу MTU, в офисе внешний MTU на интерфейсе PPPoE0 равен 1492. На интерфейсе модема дома CdcEthernet0 равен 1500. Надо ли все-таки что-то менять в IPIP0 на обеих сторонах?

Edited by intelworker
Link to comment
Share on other sites

@KorDen У вас такая конструкция работает?

Попробовал сейчас порезвиться:

IPIP типа всегда поднят, и в режиме default route становится интерфейсом по умолчанию, все ок.

Но при этом он пытается через себя же установить ipsec туннель до сервера, что естественно не удается.

Нужно добавлять маршрут до узла сервера через нормальный интерфейс, тогда начинает работать корректно.

У вас так же или я где-то что-то перемудрил?

Link to comment
Share on other sites

26 минут назад, r13 сказал:

Нужно добавлять маршрут до узла сервера через нормальный интерфейс, тогда начинает работать корректно.

Да, про это я забыл. И необходимость вполне логична. У меня маршруты уже давно были прописаны, еще когда туннелей не было.

Link to comment
Share on other sites

@KorDen а по MTU что скажете? И хотелось бы уточнений про этот маршрут, где его добавлять и что понимается под "нормальным" интерфейсом :) А лучше командной строкой сразу, чтобы уж вопрос был полностью решен)))

Edited by intelworker
Link to comment
Share on other sites

17 минут назад, intelworker сказал:

@KorDen а по MTU что скажете? И хотелось бы уточнений про этот маршрут, где его добавлять и что понимается под "нормальным" интерфейсом :) А лучше командной строкой сразу, чтобы уж вопрос был полностью решен)))

Нужно прописать маршрут до ip роутера сервера через интерфейс с интернетом (модема в вашем случае) и очень желательно чтобы этот ip был статическим. 

Прописать можно или в вебе (вкладка интернет-прочее) или продолжать через cli

Link to comment
Share on other sites

@r13 Что-то пока не получается. Пакеты уходят, но с офиса ничего не приходит в ответ. Можете пояснить с учетом моей конфигурации какие данные вписывать? Открыл вкладку Интернет-Прочее, нажал добавить статический маршрут. Выбрал "Маршрут до узла", в адрес узла назначения вписал внешний статический IP офиса (у нас это 92.9.9.1), поставил галку добавлять автоматически, интерфейс выбрал модема CdcEthernet0, вот в адрес шлюза не понимаю что вписывать и метрику не знаю какую указать.

Link to comment
Share on other sites

Методом проб и ошибок (в адрес шлюза просто ничего не вписал, как и в метрику) в итоге вроде как заработало, не знаю надолго ли, и что произойдет когда у модема очередной раз будет реконнект и IP сменится.

PS: для истории: как не странно канал очень стабильный, проседаний по скорости не заметил, даже наверно наоборот, но может и самовнушение (спидтест до провайдера - 27 Мбит/с входящий, 14 Мбит/с исходящий, даже без туннеля канал временами выдавал результаты похуже).

Edited by intelworker
Link to comment
Share on other sites

7 часов назад, intelworker сказал:

Методом проб и ошибок (в адрес шлюза просто ничего не вписал, как и в метрику) в итоге вроде как заработало, не знаю надолго ли, и что произойдет когда у модема очередной раз будет реконнект и IP сменится.

PS: для истории: как не странно канал очень стабильный, проседаний по скорости не заметил, даже наверно наоборот, но может и самовнушение (спидтест до провайдера - 27 Мбит/с входящий, 14 Мбит/с исходящий, даже без туннеля канал временами выдавал результаты похуже).

Все верно, того что сделали достаточно. 

Link to comment
Share on other sites

@Le ecureuil А можно ли при соединении динамически добавлять маршрут до tunnel destination через интерфейс определенный на этапе резолва tunnel source, подобно тому как это делается например при подключении через PPTP?

  • Upvote 1
Link to comment
Share on other sites

Напомните пожалуйста какие туннели не работают за NAT? 

Или достаточно чтоб на сервере был белый IP?

Edited by ICMP
Link to comment
Share on other sites

4 минуты назад, ICMP сказал:

Напомните пожалуйста какие туннели не работают за NAT? 

Все(IPIP, EoIP, GRE), без ipsec подложки. Если нужно через нат, то запускать туннель через ipsec.

Edited by r13
  • Thanks 1
Link to comment
Share on other sites

15 минут назад, r13 сказал:

@Le ecureuil А можно ли при соединении динамически добавлять маршрут до tunnel destination через интерфейс определенный на этапе резолва tunnel source, подобно тому как это делается например при подключении через PPTP?

Добавлять на клиенте или на сервере?

Можно конечно, сделаем, просто опишите подробнее.

Link to comment
Share on other sites

Только что, Le ecureuil сказал:

Добавлять на клиенте или на сервере?

Можно конечно, сделаем, просто опишите подробнее.

На клиенте, так как он выполняет соединение.

При соединении добавлять маршрут до ip узла определенного при резолве tunnel destination

Через интерфейс определенный при резолве tunnel source ip адреса.(если на клиенте указан конкретный интерфейс tunnel source то все просто, если auto то думаю тоже возможно)

Таким образом получится использовать туннель как маршрут по умолчанию и в том числе для динамического ip сервера.

Link to comment
Share on other sites

4 минуты назад, r13 сказал:

На клиенте, так как он выполняет соединение.

При соединении добавлять маршрут до ip узла определенного при резолве tunnel destination

Через интерфейс определенный при резолве tunnel source ip адреса.(если на клиенте указан конкретный интерфейс tunnel source то все просто, если auto то думаю тоже возможно)

Таким образом получится использовать туннель как маршрут по умолчанию и в том числе для динамического ip сервера.

Ок, мысль понял, сделаем.

  • Thanks 1
Link to comment
Share on other sites

Ну да было бы идеально если бы не приходилось прописывать маршруты, т.к. все само у меня не заработало (активным отображалось подключение модема, а не туннеля IPIP), пока я не прописал дефолтный маршрут и не добавил маршрут до узла сервера.

ps: Конечно ошибки "ndm kernel: hw_nat: not found ip host: 192.168.1.44, ifindex: 7(7)" весь журнал забивают) Читал в соседней теме, что работаете над этим, ждем. Спасибо.

Edited by intelworker
Link to comment
Share on other sites

10 минут назад, intelworker сказал:

Ну да было бы идеально если бы не приходилось прописывать маршруты, т.к. все само у меня не заработало (активным отображалось подключение модема, а не туннеля IPIP), пока я не прописал дефолтный маршрут и не добавил маршрут до узла сервера.

Необходимости добавлять default route это не отменит, но это однократная операция, так что не проблема.

А вот маршрут до сервера позволит избежать потери удаленного клиента без возможности удаленной корректировки в случае изменения ip сервера.

Скрытый текст

Да, человек смертен, но это было бы ещё полбеды. Плохо то, что он иногда внезапно смертен, вот в чём фокус! (с)

 

Edited by r13
Link to comment
Share on other sites

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.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...