LINUX.ORG.RU

Wireguard подключение двух клиентов (systemd-networkd) работает только один клиент.

 , , ,


0

1

На virtualbox поднято три vm. На них стоит arch linux:

5.16.8-arch1-1 #1 SMP PREEMPT Tue, 08 Feb 2022 21:21:08 +0000 x86_64 GNU/Linux

Одна из них (wg-server) используется как сервер, то есть остальные две подключаются к ней. Проблема в том что при подключении к серверу работает только один клиент, второй упорно не работает. Но если в конфиге сервера поменять секции пиров [WireGuardPeer] местами, то происходит ситуация наоборот. Теперь другой клиент не работает, а тот что не работал ранее, теперь работает. То есть работает пир который первый по конфигу идет. В чем может быть засада?

Конфиг сервера:

# .netdev file

[NetDev]
Name=wg0
Kind=wireguard
Description=WireGuard tunnel wg0

[WireGuard]
ListenPort=51820
PrivateKey=kGevJBjAygEUUvsaLNYLIWXcXubteufeOwwe4Grurko=


[WireGuardPeer]
PublicKey=pM80yl9XnFqyFoxaepGYu3F0QYgdUoPYuEYhs8q6a3A=
AllowedIPs=0.0.0.0/0
Endpoint = 192.168.100.2:51820

[WireGuardPeer]
PublicKey=4dhtJFgRZUQ96Km7KrDX9eTECSSHn6MQl0howsUPsSo=
AllowedIPs=0.0.0.0/0

файл network:

[Match]
Name=wg0

[Network]
Address=10.100.100.1/24
ip -br a

lo               UNKNOWN        127.0.0.1/8 ::1/128 
wg0              UNKNOWN        10.100.100.1/24 
enp0s3           UP             192.168.100.1/24 fe80::a00:27ff:fecb:53b3/64 
enp0s8           UP             192.168.1.86/24 metric 1024 fe80::a00:27ff:fe7d:3204/64

Конфиг одного из клиентов:

[NetDev]
Name=wg0
Kind=wireguard
Description=WireGuard tunnel wg0
#MTUBytes=1412

[WireGuard]
ListenPort=51820
PrivateKey=cOdHsDJ32HuJJkGcmvkwZTP1EjNv1/7p88Or9u5IgXc=


[WireGuardPeer]
PublicKey=iE88qTA030juKhr2Z7JveoMnUwIVv1Mx1eGGnx135HE=
AllowedIPs=0.0.0.0/0
Endpoint = 192.168.100.1:51820

файл network

[Match]
Name=wg0

[Network]
Address=10.100.100.2/24
ip -br a

lo               UNKNOWN        127.0.0.1/8 ::1/128 
wg0              UNKNOWN        10.100.100.2/24 
enp0s3           UP             192.168.100.2/24 fe80::a00:27ff:fe13:23ea/64 
enp0s8           UP             192.168.1.87/24 metric 1024 fe80::a00:27ff:fec5:89bf/64 

Логи сервера:

wireguard: wg0: Packet has unallowed src IP (10.100.100.2) from peer 1 (192.168.100.2:51820)
wireguard: wg0: Packet has unallowed src IP (10.100.100.2) from peer 1 (192.168.100.2:51820)
wireguard: wg0: Packet has unallowed src IP (10.100.100.2) from peer 1 (192.168.100.2:51820)
wireguard: wg0: Packet has unallowed src IP (10.100.100.2) from peer 1 (192.168.100.2:51820)
wireguard: wg0: Packet has unallowed src IP (10.100.100.2) from peer 1 (192.168.100.2:51820)


Последнее исправление: intervent (всего исправлений: 1)

добавь секцию [Route] в .network с явными указаниями маршрутов. сейчас у тебя они автоматом строятся на основании AllowedIPs некорректно

anonymous
()
Ответ на: комментарий от anonymous

Можно, но надо отключить автогенерацию маршрутов на основе AllowedIPs. у ТС из-за этого и не работает. wg-quick можно указать Table=none чтобы вручную разруливать, в системде похоже надо секцию [Route] впиливать.

anonymous
()
Ответ на: комментарий от intervent

Да не тупи ну, у тебя у 2-х пиров AllowedIPs=0.0.0.0/0. Не может быть двух 0/0 маршрутов в рамках одной таблицы. Так дошло?

Anoxemian ★★★★★
()
Ответ на: комментарий от intervent
# .netdev file

[NetDev]
Name=wg0
Kind=wireguard
Description=WireGuard tunnel wg0

[WireGuard]
ListenPort=51820
PrivateKey=kGevJBjAygEUUvsaLNYLIWXcXubteufeOwwe4Grurko=

[WireGuardPeer]
PublicKey=pM80yl9XnFqyFoxaepGYu3F0QYgdUoPYuEYhs8q6a3A=
AllowedIPs=10.100.100.2/32
Endpoint = 192.168.100.2:51820

[WireGuardPeer]
PublicKey=4dhtJFgRZUQ96Km7KrDX9eTECSSHn6MQl0howsUPsSo=
AllowedIPs=10.100.100.3/32
Endpoint = 192.168.100.3:51820

теперь ты попингуй и может так дойдет?

Anoxemian ★★★★★
()
Ответ на: комментарий от Anoxemian

AllowedIPs=0.0.0.0/0. Не может быть двух 0/0 маршрутов в рамках одной таблицы.

А где посмотреть эти маршруты? Допустим у меня прописано AllowedIPs=10.100.100.2/32, 8.8.8.8/32 в ip r s этого нет.

intervent
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.