Назад | Перейти на главную страницу

Systemd's Networkd: невозможно добавить маршрут по умолчанию ipv6

У меня чертовски много времени на настройку подключения к IPv6-адресу на моем новом VPS. Я думал, что знаю, что делаю, но, видимо, networkd не согласен, у меня все еще возникают проблемы при попытке добавить маршрут по умолчанию.

Вот информация о сети, предоставленная мне моим интернет-провайдером:

Subnet      2001:19f0:6:2::/64
Gateway     2001:19f0:6::1
Nameserver  2001:4860:4860::8888
Nameserver  2001:4860:4860::8844

Interface:       ens3
OS:              Ubuntu 18.04.02
Systemd version: 237

Текущая настройка

Я могу легко настроить свой IP-адрес и добавить маршрут к шлюзу с помощью следующего файла systemd:

[Match]
Name=ens3

[Network]
Address=209.222.17.197/26
Gateway=209.222.17.193
DNS=8.8.8.8

[Network]
Address=2001:19f0:6:2::1337/64

[Route]
Destination=2001:19f0:6::1

У меня нет ошибок в journalctl, я могу успешно пинговать 2001:19f0:6::1, но, конечно, у меня нет шлюза по умолчанию или доступа в Интернет. Я могу легко использовать 2001:19f0:6::1 в качестве шлюза по умолчанию с помощью следующей команды: sudo ip -6 route add default via 2001:19f0:6::1

Это дает мне полную маршрутизацию ipv6, я могу пинговать ipv6.google.com.

Эта проблема

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

[Match]
Name=ens3

[Network]
Address=209.222.17.197/26
Gateway=209.222.17.193
DNS=8.8.8.8

[Network]
Address=2001:19f0:6:2::1337/64

[Route]
Destination=2001:19f0:6::1

[Route]
Gateway=2001:19f0:6::1
GatewayOnlink=true

В журнале journalctl появляется следующая ошибка:

May 27 19:31:46 public-NY systemd-networkd[2452]: ens3: Could not set route: No route to host

Я всегда вижу эту чертову ошибку "нет маршрута к хосту", если нет пути к 2001:19f0:6::1 тогда какого черта я могу это пинговать ?!

Мне надоела эта проблема, но я бы хотел использовать netplan и, следовательно, systemd-networkd для своей сети. Я просто делаю что-то глупое или что-то настолько важное, как networkd, действительно сломано?

Это наверное GatewayOnLink это вызывает проблему, потому что, насколько я могу судить, этот шлюз не подключен. Ваша подключенная подсеть 2001:19f0:6:2::/64, пока адрес шлюза не находится в этой подсети - /64 что это в 2001:19f0:6:0::/64 (extra: 0` добавлено для наглядности).

Я не могу вам сказать, как вы можете проверить связь с этим адресом шлюза - скорее всего, он получен через RA, что странно, но не неизвестно в среде хостинга - но в любом случае это не on-link route, и поэтому networkd совершенно справедливо сообщает вам, что нет маршрута к этому хосту с использованием заданных вами параметров.