小编mor*_*itz的帖子

使用 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
Run Code Online (Sandbox Code Playgroud)

我使用这些来 (a) 在早期启动时请求 DHCPv6

/sbin/dhclient -6 -1 -cf /tmp/dhclient.conf -pf /tmp/dhclient6.eth0.pid -lf /tmp/dhclient6.eth0.leases eth0
Run Code Online (Sandbox Code Playgroud)

(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
Run Code Online (Sandbox Code Playgroud)

通常使用以下命令挂载 nfs 根目录/usr/share/initramfs-tools/scripts/nfs

nfsmount …
Run Code Online (Sandbox Code Playgroud)

nfs ipv6 pxe initramfs

16
推荐指数
1
解决办法
1256
查看次数

标签 统计

initramfs ×1

ipv6 ×1

nfs ×1

pxe ×1