Вопрос к понимающим в программах
ifup
,
ip
и в WireGuard. Вот так у меня описан интерфейс:
iface wg0 inet static
address 192.168.11.4
netmask 255.255.255.0
pre-up exec wg-quick up $IFACE
post-down exec wg-quick down $IFACE
Поднимаю:
$ sudo ifup wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 192.168.11.4/32 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a tun.wg0 -m 0 -x
[#] ip -4 route add 192.168.11.5/32 dev wg0
[#] ip -4 route add 192.168.11.3/32 dev wg0
[#] ip -4 route add 192.168.11.1/32 dev wg0
[#] ip -4 route add 192.168.10.1/32 dev wg0
/usr/bin/arping: Device wg0 not available.
ERROR: Duplicate address 192.168.11.4 assigned in the network where wg0 is connected to.
Действительно, интерфейсу присвоено 2 адреса:
$ ip address show dev wg0
5: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 192.168.11.4/32 scope global wg0
valid_lft forever preferred_lft forever
inet 192.168.11.4/24 brd 192.168.11.255 scope global wg0
valid_lft forever preferred_lft forever
Мнэ… Зачем, почему, как исправить? Убрать
address 192.168.11.4
из
/etc/network/interfaces
нельзя —
ifup
ругается на синтаксис файла, параметр
address
обязателен. Убрать этот адрес из
/etc/wireguard/wg0.conf
тоже, скорее всего нельзя (хотя я не пробовал).
За исключением ошибки в выводе всё работает, так что это скорее предупреждение, не ошибка. Но хочется и её исправить.
Вместо
sudo ifup wg0
я могу сделать
$ sudo wg-quick up wg0
[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 192.168.11.4/32 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] resolvconf -a tun.wg0 -m 0 -x
[#] ip -4 route add 192.168.11.5/32 dev wg0
[#] ip -4 route add 192.168.11.3/32 dev wg0
[#] ip -4 route add 192.168.11.1/32 dev wg0
[#] ip -4 route add 192.168.10.1/32 dev wg0
И тогда всё хорошо:
$ ip address show dev wg0
6: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
link/none
inet 192.168.11.4/32 scope global wg0
valid_lft forever preferred_lft forever
Но это какой-то … если не хак, то обходной путь, не решение, мне не нравится.
X-Post в ЖЖ.