Бездисковая загрузка с IPv6

В нашей работе мы используем около 80 бездисковых машин под управлением Ubuntu. Мы хотим перейти на IPv6, поэтому сейчас я пытаюсь заставить нашу бездисковую систему работать с IPv6. Передача ядра и initramfs может осуществляться через соединение IPv4, но после полной загрузки машины я хочу, чтобы все сетевые соединения были через IPv6.

Это означает, что nfsroot должен быть смонтирован через IPv6. Мои исследования показали, что initramfs-tools (1.18.5-1ubuntu4.1) НЕ поддерживает IPv6. Это означает, что ни ipconfig, который используется для настройки интерфейса при ранней загрузке, ни процедура монтирования монтирования для корня nfs не поддерживают IPv6.

Чтобы обойти это, я добавил два двоичных файла к initramfs (/etc/initramfs-tools/hooks/ipv6):

#!/bin/bash 
. /usr/share/initramfs-tools/hook-functions
copy_exec /sbin/dhclient /sbin
copy_exec /sbin/mount.nfs4 /sbin

Я использую их для (a) запроса DHCPv6 при ранней загрузке с

/sbin/dhclient -6 -1 -cf /tmp/dhclient.conf -pf /tmp/dhclient6.eth0.pid -lf /tmp/dhclient6.eth0.leases eth0

и (b) настроить интерфейс с адресом, который я получил, выполнив:

ipv6=$(cat /tmp/dhclient6.eth0.leases | grep iaaddr | egrep -o "([a-f0-9]{1,4}:){3}([a-f0-9]{0,4}:){0,4}[a-f0-9]{1,4}")
ip -6 addr add $ipv6/112 dev eth0

Обычно корень nfs монтируется с помощью следующей команды в /usr/share/initramfs-tools/scripts/nfs:

nfsmount -o nolock ${roflag} ${NFSOPTS} ${NFSROOT} ${rootmnt}

Но это не похоже на адреса IPv6.

Так что я изменил его на:

mount ${roflag} -t nfs4 ${NFSROOT} ${rootmnt}

$NFSROOT в данном случае это [2001:4ca0:2218:1::1:2]:/lb/diskless/rootfs/ubuntu_1204_ipv6.

Конфигурация интерфейса, кажется, работает так же хорошо, как и монтирование корня, но когда выполняется /sbin/init (я думаю), IPv6 снова сбрасывается, и поэтому система зависает (потому что больше не может получить доступ к корню ubuntu).

Файл /etc/network/interfaces выглядит следующим образом:

auto lo
iface lo inet loopback

iface eth0 inet manual
iface eth0 inet6 manual

Есть ли способ сохранить конфигурацию интерфейса из initramfs? Или я что-то не так делаю, когда настраиваю интерфейс с ip?

16
задан 27 September 2014 в 00:25

1 ответ

возможно, это вне темы Вам, но я думаю, что Вашей определенной проблемы может избежать переосмысление сервис:

, почему беспокойство, загружающееся с NFS?

можно попытаться загрузиться с iscsi (в режиме только для чтения для разрешения больше чем одного соединения с изображением) и затем использовать iscsi или nfs (ipv4) для пользовательских долей, если Вы должны. Можно достигнуть этого с ipxe проектом.

Иначе должен использовать squashfs+tmpfs, а не беспокоиться так долями во время процесса начальной загрузки системы и затем делать повторно монтируются в зависимости от пользовательских аутентификаций (однако, это имеет более высокое потребление памяти на стороне клиента).

Надежды, который помогает Вам.

0
ответ дан 27 September 2014 в 00:25

Другие вопросы по тегам:

Похожие вопросы: