Jump to content
quicktrick

Подключение одного пира к другому через Keenetic WireGuard

Recommended Posts

Никак не могу сообразить, как настроить WireGuard на Keenetic Speedster, чтобы подключенные к нему пиры могли коннектиться друг к другу по их IP в подсети WireGuard.  Сейчас они видят только IP самого Кинетика. Ну еще у меня проброшен 445-й порт к Samba-серверу в локальной сети Кинетика, это тоже работает через WG IP Кинетика.  А как настроить, чтобы пиры могли коннектиться друг к другу внутри подсети WG?

Share this post


Link to post
Share on other sites

Пробовал, не работает. Маршруты, правила в файрвол, пробовал даже port forwarding на IP конкретного пира (Windows-компьютер, чтобы управлять им через RDP). Никакие варианты не работают.  Вообще, у меня складывается впечатление, что WireGuard какой-то недоделанный в этом отношении.  К примеру, всё, что нужно, работает безо всяких танцев с бубном через OpenVPN.  Через WireGuard работает только конкретное соединение между двумя пирами, ничего больше.

Еще пример. Я очень долго возился с тем, чтобы на моем самодельном маршрутизаторе под FreeBSD настроить WireGuard так, чтобы через него шел весь трафик с определенных хостов в локальной сети. Редиректом трафика управляет PF.  Через OpenVPN такая штука работает превосходно.  Через WireGuard не работает ни в какую. Там явно какие-то недоработки в самом WG.  Я пытался выйти на разработчиков WireGuard через все перечисленные у них способы связи.  Бесполезно, они не отзываются.  Плюнул, пользуюсь OpenVPN.  Хотя WireGuard работает быстрее OpenVPN -- разумеется, там, где он вообще работает.

Share this post


Link to post
Share on other sites

Позавчера озадачил этим вопросом техподдержку Кинетика. Вчера утром человек от них ответил, но не совсем на тот вопрос, который был задан. Я объяснил задачу подробнее. После этого тишина. Предполагаю, что они тоже не знают, как заставить это работать. Вероятно, попробовали -- и у них тоже не получается.

Share this post


Link to post
Share on other sites

Вам необходимо на каждом WG-клиенте прописать 2 маршрута: один в сеть сервера WG, другой в сеть другого клиента, так как общение между клиентами происходит через сервер WG. На стороне сервера прописать по одному маршруту в сеть каждого клиента. У меня такая схема отлично работает, WG-сервер + 2 клиента

Edited by stefbarinov

Share this post


Link to post
Share on other sites

Спасибо за ответ, только я не понимаю, зачем мне сеть другого клиента, если я обращаюсь к нему по его IP в сети WG?  Маршрут в сеть WG прописывается автоматически, и я вижу, к примеру, сам Кинетик, к которому я подключен по WG (я сам нахожусь не в локальной сети Кинетика).  Я вижу также SMB-сервер в локальной сети Кинетика, к которому с WG IP Кинетика проброшен 445-й порт (то есть я вижу его по IP Кинетика в сети WG).  Я не вижу только другого клиента сети WG, подключенного к Кинетику через WG.  Я пытаюсь обращаться к нему по его IP в сети WG.  Конкретно -- это Windows-компьютер, которым я хочу управлять через RDP.

Share this post


Link to post
Share on other sites
2 минуты назад, quicktrick сказал:

только я не понимаю, зачем мне сеть другого клиента

Чтобы хосты за WG-клиентами общались между собой через сервер.

 

3 минуты назад, quicktrick сказал:

 Я не вижу только другого клиента сети WG, подключенного к Кинетику через WG.  Я пытаюсь обращаться к нему по его IP в сети WG.  Конкретно -- это Windows-компьютер, которым я хочу управлять через RDP.

Windows-ПК это не клиент WG, это хост за клиентом WG! Поэтому либо вы прописываете маршруты в сети, либо на конкретные хосты

Share this post


Link to post
Share on other sites
8 minutes ago, stefbarinov said:

Windows-ПК это не клиент WG, это хост за клиентом WG!

То есть как это хост за клиентом WG?  А какой у него тогда IP?  И почему такая схема без проблем работает через OpenVPN по IP клиента в сети OpenVPN?

Edited by quicktrick

Share this post


Link to post
Share on other sites

Вообще, мне странно утверждение, что Windows-компьютер -- это не клиент WG.  Если я на нем в командной строке выполняю команду ipconfig, то мне выводятся все его IP во всех подключенных подсетях.  В том числе -- его IP в сети WG.  Так что я имею полное право обращаться к нему по этому IP.

Share this post


Link to post
Share on other sites

Разобрался (наполовину методом научного тыка).  Заработало.  Вообще, вещь неочевидная.  Короче, ключевой момент.  На обоих клиентах (будем называть их так, потому что они подключены к одному "серверу" -- Кинетику) в конфигах WG должны быть прописаны AllowedIPs на всю подсеть WG (иначе не работает). Например, так.

Клиент 1

[Interface]
PrivateKey = ...
Address = 172.10.10.2/24

[Peer]
PublicKey = ...
AllowedIPs = 172.10.10.0/24
Endpoint = ...
PersistentKeepalive = 15

Клиент 2

[Interface]
PrivateKey = ...
Address = 172.10.10.3/24

[Peer]
PublicKey = ...
AllowedIPs = 172.10.10.0/24
Endpoint = ...
PersistentKeepalive = 15

На самом Кинетике в конфигах этих пиров должны быть AllowedIPs: 172.10.10.2/32 и 172.10.10.3/32 (соответственно)

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

А вот в файрволе нужно сделать правило как минимум для того клиента, который хочет коннектиться к другому -- разрешить ему доступ либо к IP второго клиента, либо ко всей подсети WG.

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Дам еще полезную ссылку (особенно с учетом того, что официальная документация на WireGuard -- крайне скудная). Вот здесь замечательно разъяснена суть параметров Endpoint, AllowedIPs и Address в конфигах WireGuard:

What is the difference between Endpoint and AllowedIPs fields in Wireguard config file? - Stack Overflow

Share this post


Link to post
Share on other sites

как пользоваться Allowed IPs разъяснено для примера, в целом повторяющего вашу схему, в статье на русском языке https://help.keenetic.com/hc/ru/articles/360012075879
посмотрите ее пожалуйста

может быть, у вас есть предложения, как ее улучшить?

 

Wireguard концептуально может казаться несколько громоздким, думаю, с этим связано отчасти двусмысленное название вашего топика - "Подключение одного пира к другому через Keenetic WireGuard" - выглядит так, будто вы внутри туннеля еще один устанавливаете) 

  • Upvote 1

Share this post


Link to post
Share on other sites
9 minutes ago, werldmgn said:

Вы плохо искали

Я видел этот pdf. Ну так это и есть крайне скудная. И на сайте у них тоже не лучше. Вы сравните с документацией на тот же OpenVPN.  Ладно, пора закрывать эту ветку.  Когда я задал вопрос -- не отвечал никто. Один человек отозвался, но, к сожалению, не помог.  А тут вдруг все проснулись, когда всё уже разрешилось. :)

Вот честное слово, когда есть нормальная документация, тогда и вопросов не возникает.  Я ведь порядочно времени потратил на поиск решения в Интернете. И документацию смотрел.  Ладно, проехали уже.

Edited by quicktrick

Share this post


Link to post
Share on other sites
8 минут назад, Le ecureuil сказал:

Чтобы читать подобного рода документы уже требуется заметный левел :)

Не знаю. Никаким особым левелом не обладаю, однако имея ноль знаний о wireguard, прочитал и теперь использую без вопросов. И в кинетике и на vps'ке на линухе. Я не говорю, что там нужно понять всю внутреннюю кухню устройства протокола, но базовые принципы, endpoint'ы, allowed ip и т.д. там расписаны очень хорошо, вопросов не возникло.

Edited by werldmgn

Share this post


Link to post
Share on other sites
4 минуты назад, quicktrick сказал:

Я видел этот pdf. Ну так это и есть крайне скудная. И на сайте у них тоже не лучше. Вы сравните с документацией на тот же OpenVPN.  Ладно, пора закрывать эту ветку.  Когда я задал вопрос -- не отвечал никто. Один человек отозвался, но, к сожалению, не помог.  А тут вдруг все проснулись, когда всё уже разрешилось. :)

Вот честное слово, когда есть нормальная документация, тогда и вопросов не возникает.  Я ведь порядочно времени потратил на поиск решения в Интернете. И документацию смотрел.  Ладно, проехали уже.

В OpenVPN в половине сложных случаев нужно просто брать и смотреть код, никакие мануалы не дают правильного понимания что же он все-таки хочет и как он это делает. Так что...

Share this post


Link to post
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...