আমাদের কাজে আমরা উবুন্টুতে প্রায় 80 টি ডিস্কলেস মেশিন ব্যবহার করছি। আমরা আইপিভি 6-তে রূপান্তর করতে চাই, তাই এখন আমি আমাদের ডিস্কলেস সিস্টেমকে আইপিভি 6 দিয়ে কাজ করার চেষ্টা করছি। কার্নেল এবং initramfs সংক্রমণ এখনও একটি IPv4 সংযোগের ওপরে হতে পারে, তবে একবার মেশিন সম্পূর্ণরূপে বুট হয়ে গেলে আমি চাই সমস্ত নেটওয়ার্ক সংযোগগুলি IPv6 এর ওপরে হয়ে যায়।
এর অর্থ এনভিএসরোটকে আইপিভি 6 এর মাধ্যমে মাউন্ট করতে হবে। আমার এই গবেষণায় প্রমাণিত হয়েছে যে initramfs- সরঞ্জাম (1.18.5-1ubuntu4.1) IPv6 সমর্থন করে না। এর অর্থ এই যে আইপকনফিগ নয়, এটি প্রাথমিক বুট সময় ইন্টারফেস কনফিগারেশনের জন্য ব্যবহৃত হয় না, বা এনএফএস রুটের জন্য মাউন্ট মাউন্টিং পদ্ধতি আইপিভি 6 সক্ষম হয় না।
এটির প্রতিরোধ করার জন্য আমি ইন্ট্রামফ ( /etc/initramfs-tools/hooks/ipv6
) এর সাথে দুটি বাইনারি যুক্ত করেছি :
#!/bin/bash
. /usr/share/initramfs-tools/hook-functions
copy_exec /sbin/dhclient /sbin
copy_exec /sbin/mount.nfs4 /sbin
আমি এগুলি (ক) সাথে প্রাথমিক বুট করার সময় একটি ডিএইচসিপিভি 6 অনুরোধ করতে ব্যবহার করি
/sbin/dhclient -6 -1 -cf /tmp/dhclient.conf -pf /tmp/dhclient6.eth0.pid -lf /tmp/dhclient6.eth0.leases eth0
এবং (খ) সম্পাদনা করে আমি যে ঠিকানাটি পেয়েছি তার সাথে ইন্টারফেসটি কনফিগার করতে:
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
সাধারণত নিম্নলিখিত কমান্ডের সাহায্যে এনএফএস রুট মাউন্ট করা হয় /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
মৃত্যুদন্ড কার্যকর করা হয় (আমার মনে হয়), আবার আইপিভি 6 বাদ পড়ে যায় এবং সুতরাং সিস্টেমটি হিমশীতল হয় (কারণ এটি উবুন্টু রুটে অ্যাক্সেস করতে পারে না)।
/etc/network/interfaces
ফাইলটি এই মত দেখায়:
auto lo
iface lo inet loopback
iface eth0 inet manual
iface eth0 inet6 manual
Initramfs থেকে ইন্টারফেস কনফিগারেশন রাখার কোনও উপায় আছে কি? বা আমি যখন ইন্টারফেসটি কনফিগার করব তখন কি আমি কিছু ভুল করছি ip
?