Я пытаюсь создать туннель для HE.net чтобы получить IPv6-адрес на моем (облачном) сервере.
Когда я создал туннель и вставил это /etc/network/interfaces
:
auto he-ipv6
iface he-ipv6 inet6 v4tunnel
address <my IPv6 address>
netmask 64
endpoint 66.220.7.82
local <my IPv4 address>
ttl 255
gateway <my gateway>
затем ifup he-ipv6
, и я получил:
error: /etc/network/interfaces: line5: iface he-ipv6: unsupported address method 'v4tunnel'
Как я могу это исправить?
Операционная система Ubuntu 18.04.3
.
(Я попытался найти эту ошибку, но, похоже, ее никогда не было. Но я пробовал использовать две отдельные машины от разных поставщиков, и результаты совпадают.)
Обновление: добавьте изображение для подробностей:
Обновление 2: добавляем изображение netplan:
Вывод: проблема вызвана ifupdown2
.
Судя по вашему сообщению об ошибке, вы используете пакет ifupdown2 скорее, чем если вверх. Оба доступны в Ubuntu, но онлайн-справочная страница показывает только одну версию, я предполагаю, что она установлена по умолчанию, что объясняет, почему вы в конечном итоге использовали ifupdown2.
Ubuntu 16.04 LTS: интерфейсы (5)
Предоставлено: ifupdown_0.8.10ubuntu1_amd64
[...]АВТОР
Пакет ifupdown был написан Энтони Таунсом <aj@azure.humbug.org.au>.
Ubuntu 18.04 LTS: интерфейсы (5)
Предоставлено: ifupdown2_1.0 ~ git20170314-1_all
[...]АВТОР
Рупа Прабху <roopa@cumulusnetworks.com>
Пока ifupdown2 заменяет если вверх разработан Cumulus Networks, с улучшенной поддержкой современных сетевых функций, есть некоторые несовместимости синтаксиса.
Так что либо установите если вверх вместо того ifupdown2, или адаптировать конфигурацию, которую я привожу ниже.
Оригинал если вверх предоставляет v4tunnel метод:
Метод v4tunnel
Этот метод можно использовать для настройки туннеля IPv6-over-IPv4. Для этого требуется команда ip из пакета iproute.
В если вверх настройки запускают эти фактические команды:
ip tunnel add he-ipv6 mode sit remote 66.220.7.82 local <my IPv4 address> ttl 255
ip link set he-ipv6 up
ip addr add <my IPv6 address> dev he-ipv6
ip route add <my gateway> dev he-ipv6
ip route add ::/0 via <my gateway> dev he-ipv6 onlink
Итак, мы знаем, что это СИДЕТЬ туннель.
Посылка ifupdown2, не предоставляет v4tunnel
метод и отсутствует документация по замене tunnel
метод, который должен был быть описан в man ifupdown-addons-interfaces
но это не так. Это все еще доступно из ifquery --syntax-help
. Вот отрывок (из версии Ubuntu 18.04):
tunnel: create/configure GRE/IPIP/SIT tunnel interfaces [...] endpoint help: IP of remote tunnel endpoint required: True validvals: <ipv4>,<ipv6> example: endpoint 192.2.0.23 local help: IP of local tunnel endpoint required: True validvals: <ipv4>,<ipv6> example: local 192.2.0.42 mode help: type of tunnel as in 'ip link' command. required: True validvals: greipip,sit example: mode gre ttl help: TTL for tunnel packets required: False validvals: <number> example: ttl 64
Обратите внимание на опечатку в Режим значения (должно быть gre,ipip,sit
). Более новые версии будут обрабатывать больше режимов (во всяком случае, у нас уже есть sit
доступный):
validvals: gre,gretap,ipip,sit,vti,ip6gre,ipip6,ip6ip6,vti6
Что дает эту рабочую конфигурацию:
auto he-ipv6
iface he-ipv6 inet6 tunnel
mode sit
address <my IPv6 address>
netmask 64
endpoint 66.220.7.82
local <my IPv4 address>
ttl 255
gateway <my gateway>
Разница в общем tunnel
метод и указать тип туннеля с помощью mode
ключевое слово.