Перейти к содержанию

Рекомендуемые сообщения

Опубликовано (изменено)

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

Конфигурация: два провайдера, один основной, второй резервный, оба дают белые публичные IP адреса. К обоим можно подключиться через Wireguard, используя IP или привязанное к нему KeenDNS имя.

Тестирование смены IP адресов у клиентов (переход с мобильного Интернет на другой Wi-Fi другого провайдера и обратно) отрабатывает без проблем, Wireguard клиент моментально переподключается вообще без видимой задержки.

Тестирование смены IP адресов у сервера (роутера Кинетик) посредством смены провайдера не проходит - пакеты по туннелю перестают идти, пока не разорвешь соединение вручную, и не подключишь заново - тогда восстанавливается, и пакеты идут, как раньше. Но автоматического переключения, по аналогии с клиентами, не происходит.

Читаем описание с сайта Wireguard:

Built-in Roaming: The client configuration contains an initial endpoint of its single peer (the server), so that it knows where to send encrypted data before it has received encrypted data. The server configuration doesn't have any initial endpoints of its peers (the clients). This is because the server discovers the endpoint of its peers by examining from where correctly authenticated data originates. If the server itself changes its own endpoint, and sends data to the clients, the clients will discover the new server endpoint and update the configuration just the same. Both client and server send encrypted data to the most recent IP endpoint for which they authentically decrypted data. Thus, there is full IP roaming on both ends.

Предполагаем, что смена IP сервера должна отрабатываться так же незаметно, как и смена IP клиента. Но этого не происходит.

Нагуглил вот это обсуждение, относящееся к идентичной, кажется, проблеме с DD-WRT: https://forum.dd-wrt.com/forum/viewtopic.php?p=1221446 . Если я правильно понял, там проблема решилась только после того, как насильно соединение разрывалось и переподключалось (скрипт https://forum.dd-wrt.com/phpBB2/viewtopic.php?p=1202631#1202631 ). Но это так себе решение по ряду причин.

Почему не работает IP роуминг для сервера, и куда копать?

3.6.10

 

 

 

Изменено пользователем Дмитрий Лебедев
Опубликовано
5 часов назад, Дмитрий Лебедев сказал:

If the server itself changes its own endpoint, and sends data to the clients, the clients will discover the new server endpoint

Так может проблема в том, что сервер не шлёт никакие данные после перехода, а ждёт их от клиента, который не знает нового ендпоинта? Попробуйте включить keepalive на стороне сервера для пира клиента. Тогда сервер будет периодически слать пакеты клиенту, и при смене ip это позволит клиенту увидеть новый адрес.

Опубликовано
2 часа назад, werldmgn сказал:

Так может проблема в том, что сервер не шлёт никакие данные после перехода, а ждёт их от клиента, который не знает нового ендпоинта? Попробуйте включить keepalive на стороне сервера для пира клиента. Тогда сервер будет периодически слать пакеты клиенту, и при смене ip это позволит клиенту увидеть новый адрес.

Нет, непохоже. Во-первых, я включал Keep alive 3 секунды в конфигурации на сервере и клиенте - не влияет на переподключение никак. Во-вторых, во время теста идёт непрерывный пинг с клиента на внутренний IP за роутером, так что туннель сам по себе держится и активен. Тут что-то другое.

Опубликовано

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

 

Endpoint with changing IP

After resolving a server's domain, WireGuard will not check for changes in DNS again (https://lists.zx2c4.com/pipermail/wireguard/2017-November/002028.html).

If the WireGuard server is frequently changing its IP-address due DHCP, Dyndns, IPv6, etc., any WireGuard client is going to lose its connection, until its endpoint is updated via something like wg set "$INTERFACE" peer "$PUBLIC_KEY" endpoint "$ENDPOINT".

Also be aware, if the endpoint is ever going to change its address (for example when moving to a new provider/datacenter), just updating DNS will not be enough, so periodically running reresolve-dns might make sense on any DNS-based setup.

Luckily, wireguard-tools (https://archlinux.org/packages/?name=wireguard-tools) provides an example script /usr/share/wireguard-tools/examples/reresolve-dns/reresolve-dns.sh, that parses WG configuration files and automatically resets the endpoint address.

One needs to run the /usr/share/wireguard-tools/examples/reresolve-dns/reresolve-dns.sh /etc/wireguard/wg.conf periodically to recover from an endpoint that has changed its IP.

One way of doing so is by updating all WireGuard endpoints once every thirty seconds[6] (https://git.zx2c4.com/WireGuard/tree/contrib/examples/reresolve-dns/README) via a systemd timer:
/etc/systemd/system/wireguard_reresolve-dns.timer

[Unit]
Description=Periodically reresolve DNS of all WireGuard endpoints

[Timer]
OnCalendar=*:*:0/30

[Install]
WantedBy=timers.target
/etc/systemd/system/wireguard_reresolve-dns.service

[Unit]
Description=Reresolve DNS of all WireGuard endpoints
Wants=network-online.target
After=network-online.target

[Service]
Type=oneshot
ExecStart=/bin/sh -c 'for i in /etc/wireguard/*.conf; do /usr/share/wireguard-tools/examples/reresolve-dns/reresolve-dns.sh "$i"; done'

Afterwards enable (https://wiki.archlinux.org/title/Enable) and start (https://wiki.archlinux.org/title/Start) wireguard_reresolve-dns.timer

Опубликовано

Но вообще это про другое немного В конфигурации без DNS/DDNS тоже по идее должно работать, раз уж Thus, there is full IP roaming on both ends. Но не работает.

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...

Важная информация

На этом сайте используются файлы cookie. Нажимая "Я принимаю" или продолжая просмотр сайта, вы разрешаете их использование: Политика конфиденциальности.