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

Неподдерживаемый метод адресации v4tunnel

Я пытаюсь создать туннель для 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

Судя по вашему сообщению об ошибке, вы используете пакет 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

Посылка 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 ключевое слово.