IPv6を使用したディスクレスブート


16

私たちの仕事では、Ubuntuを実行している約80台のディスクレスマシンを使用しています。IPv6への移行を望んでいるので、今ではディスクレスシステムをIPV6で動作させようとしています。カーネルとinitramfsの送信は引き続きIPv4接続を介して行うことができますが、マシンが完全に起動したら、すべてのネットワーク接続がIPv6を介して行われるようにします。

これは、nfsrootをIPv6経由でマウントする必要があることを意味します。これに関する私の調査では、initramfs-tools(1.18.5-1ubuntu4.1)はIPv6をサポートしていないことが示されました。つまり、初期ブート時のインターフェース構成に使用されるipconfigも、nfsルートのマウントマウント手順もIPv6対応ではありません。

これを回避するために、initramfs(/etc/initramfs-tools/hooks/ipv6)に2つのバイナリを追加しました。

#!/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か?


2
routeおよびarpコマンドをご覧ください。どちらも、ブート時に呼び出され、IPV6をサポートしていることができる
j0h

1
これは非常に驚くべきことです。IPv6 NFSルートは、Red Hatタイプのシステムですでに完全にサポートされています。ランチパッドで文句を言うでしょう。
マイケルハンプトン14

回答:


1

多分それはあなたにとって話題ではありませんが、私はあなたの特定の問題はサービスを再考することによって回避できると思います:

なぜNFSでブートするのが面倒ですか?

iscsi(イメージへの複数の接続を許可する読み取り専用モード)で起動してから、必要に応じてユーザー共有にiscsiまたはnfs(ipv4)を使用することができます。これはipxeプロジェクトで実現できます。

もう1つの方法は、squashfs + tmpfsを使用し、システムの起動プロセス中に共有をあまり気にせず、ユーザー認証に応じて再マウントを行うことです(ただし、クライアント側のメモリ消費量が多くなります)。

あなたに役立つことを願っています。


1
Ubuntuは、IPv6を介したiSCSIからの起動もサポートしていますか?
マイケルハンプトン14

1
どうやらそうだ。
アントワーヌロドリゲス14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.