Рейтинг:0

Как настроить IPv6 через WireGuard?

флаг cn

Я арендовал VDS для того, чтобы настроить на нем WireGuard VPN и раздать всем VPN-клиентам /64 подсети IPv6. С хостинга я изначально получил адрес 2a0c:xxx:yyy::1/32. Вот конфигурации сетевых интерфейсов, которые я настроил:

¯ IP
2: wan0: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP> mtu 1500 ...
    inet6 2a0c:xxx:yyy:1001::1/32 глобальная область действия
        valid_lft навсегда
    inet6 fe80::****:**:****:****/64 ссылка на область видимости
        valid_lft навсегда
3: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue ....
    инет 172.22.9.1/24 brd 172.22.9.255 глобальная область действия wg0
        valid_lft навсегда
    inet6 fd4d:56d8:31d4:2001::1/56 глобальная область действия
        valid_lft навсегда

¯ ип -6 р
::1 dev lo proto kernel metric 256 pref medium
2a0c:xxx:yyy:2000::/56 dev wg0 proto static metric 20 pref средний
2a0c:xxx::/32 dev wan0 proto kernel metric 256 pref medium
2a0c:xxx::/32 dev wan0 proto ra metric 1024 expires 2591851sec pref medium
fd4d:56d8:31d4:2000::/56 dev wg0 proto kernel metric 256 pref средний
fe80::/64 dev wan0 proto kernel metric 256 pref средний
протостатическая метрика по умолчанию 1024 pref medium
        следующий переход через 2a0c:xxx::1 dev wan0 вес 1
        nexthop через fe80::****:****:****:**** dev wan0 вес 1

¯ sudo sysctl net.ipv6.conf.all.forwarding
net.ipv6.conf.all.forwarding = 1

¯ кошка /etc/ndppd.conf
прокси wan0 {
    правило 2a0c:xxx:yyy:2000::/56 {
        статический
    }
}

# --- проверьте маршрутизацию на dns.google с одного из VPN-клиентов ---
¯ ip -6 r добраться до 2001:4860:4860::8844 из 2a0c:xxx:yyy:2005::****:*
2001:4860:4860::8844 из 2a0c:xxx:yyy:2005::****:* через fe80::****:****:****:**** dev wan0 proto ra src 2a0c:xxx:yyy:1001::1 метрика 1024 mtu 1500 pref средний

Я даю всем клиентам VPN fd4d:56d8:31d4:20zz::/64 и 2a0c:xxx:yyy:20zz::/64 подсети (зз для каждого клиента индивидуально). Когда я настроил его в первый раз, все работало, и клиенты могли выходить в Интернет через IPv6. Однако после перезагрузки VDS эта конфигурация перестала работать.

Когда я пытался пропинговать VPN-клиент с адресом 2a0c:xxx:гггг:2005::****:* с другого хоста, не подключенного к VPN, я получил несколько пакетов запроса соседей (у кого 2a0c:xxx:yyy:2005::****:*) на wan0 от вышестоящего маршрутизатора, на который VDS будет периодически отвечать пакетами объявлений соседей. Однако эхо-запрос ни к wan0, ни к wg0 так и не пришел.

Что не так с моей конфигурацией? Почему IPv6 через WireGuard перестает работать после перезагрузки VDS?

Заранее спасибо.


99-wg0.netdev

[NetDev]
Имя=wg0
Вид=Wireguard

[Проволока]
PrivateKey=kH9--------------------------------------86u/Uw=
ListenPort=1194

[Узел WireGuard]
PublicKey=oXPdkrbDL---------------oKLW2HEEM=
PresharedKey=L9P---------------------------------------jSiM=
Разрешенные IP-адреса = 2a0c:xxx:yyy:2005::/64
Разрешенные IP-адреса = 172.22.9.5/32

99-wg0.сеть:

[Соответствовать]
Имя=wg0

[Сеть]
Адрес=172.22.9.1/24

[Маршрут]
Пункт назначения=2a0c:xxx:yyy:2000::/56
Метрика=20
A.B avatar
флаг cl
A.B
Вы должны добавить содержимое `wg0.conf` (или эквивалентную конфигурацию) и вывод `wg-quick up wg0`, чтобы вся информация была доступна в вопросе.
async await avatar
флаг cn
@A.B Я решил проблему, сменив хостинг, на котором арендовал виртуальную машину. Повторив все настройки на новой виртуальной машине (с разными IPv6-адресами, разумеется), я получил работающее IPv6-соединение для всех VPN-клиентов. Я предполагаю, что на старом хостинге IPv6 клиентов не работал, потому что восходящий маршрутизатор игнорировал объявление соседа от виртуальной машины в ответ на запрос соседа. Также мне удалось успешно раздать клиентам подсети /64 через туннельный брокер, что еще больше подтверждает мои предположения о проблемах на стороне хостинга
async await avatar
флаг cn
@A.B Я настроил интерфейс wg0 с помощью systemd-networkd, все настройки, которые я там установил (адрес интерфейса и маршрут для клиентской подсети /56), отображаются в выводе команд `ip a` и `ip -6 r`.
async await avatar
флаг cn
@A.B Что касается второго вопроса: я попытался быть более конкретным в надежде, что это привлечет больше людей, которые знают о проблеме.
async await avatar
флаг cn
@AB Я добавил к вопросу содержимое 99-wg0.netdev и 99-wg0.network. Вся настройка wg0 делается только через них, wg-quick не использую.
A.B avatar
флаг cl
A.B
Ах, неважно, действительно, таких правил не было бы, если бы не wg-quick, я не понял, что это было не в том же формате. И я просто не знаю, почему есть проблема в другом вопросе.

Ответить или комментировать

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