Почему ifupdown не может найти dhcpcd?

Вопрос или проблема

Итак, у меня есть встроенная система, которую я создал с помощью Yocto. Я пытаюсь включить DHCPv6. Но когда я пытаюсь вывести интерфейс в онлайн, ifup говорит, что не может найти программное обеспечение для DHCPv6, хотя dhcpcd установлен. И dhcpcd работает, если я запускаю его вручную.

root@1234:~# cat /etc/network/interfaces
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
        address 192.168.5.80
        netmask 255.255.255.0
        gateway 192.168.5.1

iface eth1 inet6 dhcp

root@1234:~# ip a show dev eth1
8: eth1: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue qlen 1000
    link/ether ce:e6:83:59:f1:93 brd ff:ff:ff:ff:ff:ff
    inet 169.254.23.45/16 brd 169.254.255.255 scope global noprefixroute eth1
       valid_lft forever preferred_lft forever
    inet6 fe80::468b:6249:e50b:a437/64 scope link
       valid_lft forever preferred_lft forever

root@1234:~# which dhcpcd
/sbin/dhcpcd

root@1234:~# ifup eth1
No DHCPv6 client software found!
ifup: failed to bring up eth1

root@1234:~#

Обратите внимание, что eth1 – это просто фиктивный интерфейс на данный момент, чтобы я не разорвал свое ssh-соединение, экспериментируя с eth0, который, собственно, там, где я хочу добавить DHCPv6.

Ответ или решение

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

Возможные причины проблемы:

  1. Неправильная конфигурация ifupdown:

    • Инструмент ifupdown может не поддерживать GPIOV6 в вашей текущей конфигурации. В файле /etc/network/interfaces, вы указали inet6 dhcp для интерфейса eth1. Однако ifupdown может искать другой клиент DHCPv6, а не dhcpcd, что вызывает ошибку.
  2. Неточный путь до dhcpcd:

    • Хотя утилита dhcpcd установлена по пути /sbin/dhcpcd, ifupdown может не распознавать этот путь, если он не прописан в конфигурационных файлах или в PATH.
  3. Отсутствие поддержки dhcpcd в ifupdown:

    • По умолчанию, ifupdown может быть сконфигурировано для работы только с другими DHCP-клиентами, такими как dhclient. Вам может понадобиться указать в конфигурации явное использование dhcpcd.
  4. Особенности сборки Yocto:

    • Yocto позволяет настраивать образы системы очень гибко, но это может означать, что какие-то стандартные элементы были исключены из конкретной сборки. Проверьте, что все необходимые пакеты и зависимости действительно включены в образ.

Рекомендации по устранению проблемы:

  1. Измените конфигурацию ifupdown:

    • Убедитесь, что конфигурационный файл /etc/network/interfaces поддерживает использование dhcpcd для DHCPv6. Вы можете попробовать использовать явный вызов:
      iface eth1 inet6 manual
       pre-up /sbin/dhcpcd -6 -t 30 eth1 || true
  2. Проверьте окружение PATH:

    • Убедитесь, что /sbin включен в переменную PATH для всех пользователей, особенно для выполнения сетевых сценариев.
  3. Проверьте поддержку и зависимости:

    • Убедитесь, что все необходимые библиотеки для работы DHCPv6 с ifupdown установлены. Вам возможно потребуется проверить, что в Yocto добавлены все необходимые пакеты и модули для работы сети с IPv6.
  4. Просмотрите документацию Yocto:

    • Воспользуйтесь документацией Yocto для получения информации о построении образов со специфической сетевой конфигурацией.

Эти шаги должны помочь вам диагностировать и устранить проблему с обнаружением DHCPv6 клиентского ПО в вашем встраиваемом решении.

Оцените материал
Добавить комментарий

Капча загружается...