Могу ли я заставить одноранговые узлы Wireguard VPN общаться друг с другом? - PullRequest
0 голосов
/ 06 мая 2020

У меня есть сервер, на котором работает Wireguard, и у меня есть несколько клиентов (одноранговых узлов), подключенных к нему и работающих. Я не очень уверен, как работает VPN, но это моя текущая настройка.

/etc/wireguard/wg0.conf моего сервера выглядит так.

[Interface]
Address = 172.16.16.1/24
SaveConfig = true
ListenPort = 8999
PrivateKey = XXX

[Peer]
PublicKey = XXX
AllowedIPs = 172.16.16.2/32

[Peer]
PublicKey = XXX
AllowedIPs = 172.16.16.3/32

И конфигурация на моих клиентах wg0.conf выглядит так.

[Interface]
PrivateKey = XXX
Address = 172.16.16.x/32

[Peer]
PublicKey = XXX
AllowedIPs = 172.16.16.0/24
PersistentKeepalive = 30

Когда все работает, с моего клиента с IP-адресом 172.16.16.2 я могу проверить связь с сервером 172.16.16.1. Я могу сделать то же самое на другом моем клиенте с 172.16.16.3, я могу пинговать сервер 172.16.16.1.

Интересно, что с моего сервера я могу пинговать всех пиров! То есть изнутри 172.16.16.1 я могу пинговать как 172.16.16.2, так и 172.16.16.3. Но это основная цель настройки!

Теперь я хочу, чтобы мои сверстники разговаривали друг с другом, то есть я должен иметь возможность пинговать 172.16.16.2 от моего другого сверстника 172.16.16.3 и наоборот. наоборот, но это не работает. Он говорит, что сеть недоступна.

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

Возможно ли такое? Если да, то что мне не хватает?

1 Ответ

1 голос
/ 06 мая 2020

После целого вечера поиска в inte rnet я нашел несколько полезных ссылок, в которых говорится о той же проблеме, с которой я столкнулся.

Ссылка: https://lists.zx2c4.com/pipermail/wireguard/2018-August/003250.html

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

По умолчанию политика IPv4 в ядрах linux отключает поддержку пересылки IP. Это предотвращает работу компьютеров с сервером linux в качестве выделенных граничных маршрутизаторов. Чтобы включить переадресацию IP, используйте следующую команду:

[root@myServer ~ ] # sysctl -w net.ipv4.ip_forward=1

Это изменение конфигурации действительно только для текущего сеанса; он не сохраняется после перезагрузки или перезапуска сетевой службы. Чтобы навсегда установить IP-переадресацию, отредактируйте файл /etc/sysctl.conf следующим образом: Найдите следующую строку:

net.ipv4.ip_forward = 0

Измените его следующим образом:

net.ipv4.ip_forward = 1

Используйте следующую команду для разрешите изменение файла sysctl.conf:

[root@myServer ~ ] # sysctl -p /etc/sysctl.conf

Подробнее: https://docs.fedoraproject.org/en-US/Fedora/18/html/Security_Guide/sect-Security_Guide-Firewalls-FORWARD_and_NAT_Rules.html

После этого все мои коллеги могут разговаривать друг друга, и это функционирует как сеть LAN!

...