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) 에 두 개의 바이너리를 추가했습니다 .

#!/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이 다시 삭제되어 시스템이 정지합니다 (더 이상 우분투 루트에 액세스 할 수 없기 때문에).

/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 유형 시스템에서 이미 완전히 지원됩니다. 런치 패드에 불평합니다.
Michael Hampton

답변:


1

어쩌면 그것은 당신에게 주제가 아니지만 서비스를 다시 생각하면 특정 문제를 피할 수 있다고 생각합니다.

왜 NFS로 부팅을 방해합니까?

iscsi (부팅 이미지에서 둘 이상의 연결을 허용하기 위해 읽기 전용 모드)로 부팅 한 다음 필요한 경우 사용자 공유에 iscsi 또는 nfs (ipv4)를 사용할 수 있습니다. ipxe 프로젝트로이를 달성 할 수 있습니다.

또 다른 방법은 squashfs + tmpfs를 사용하고 시스템 부팅 과정에서 공유를 많이 신경 쓰지 않고 사용자 인증에 따라 다시 마운트하는 것입니다 (그러나 클라이언트 측에서 더 많은 메모리를 소비합니다).

희망이 당신을 도와줍니다.


1
Ubuntu는 IPv6을 통한 iSCSI 부팅도 지원합니까?
Michael Hampton

1
분명히 그렇습니다.
앙투안 로드리게스
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.