একটি OpenVPN ল্যাবে ব্যক্তিগত IPv6 যোগ করুন, একবারে একটি চেকপয়েন্ট
বাইরের পরিবহন IPv4-এ রাখুন এবং ভেতরের পরিকল্পনা বাড়ান। পাঁচটি চেকপয়েন্ট: প্রিফিক্স, হেল্পার, রুট পুশ, ফরওয়ার্ডিং এবং ক্লায়েন্ট পরীক্ষা।
আপনার ইতিমধ্যে একটি ক্লায়েন্ট আছে যা IPv4-এর মাধ্যমে সংযোগ করে সার্ভারের পেছনের ব্যক্তিগত IPv4 ওয়ার্কলোডে পৌঁছায়। লক্ষ্য হল বাইরের পরিবহন না ছুঁয়ে একই টানেল দিয়ে ব্যক্তিগত IPv6 ওয়ার্কলোডে পৌঁছানো। এই ক্রমটি গুরুত্বপূর্ণ: বাইরের পথ IPv4-ই থাকে, এবং কেবল ভেতরের ঠিকানা পরিকল্পনা, ক্লায়েন্ট রুট ও সার্ভার থেকে LAN-এ ফেরার পথ বদলায়। পাঁচটি চেকপয়েন্ট, প্রতিটিতে এগিয়ে যাওয়ার আগে দেখার মতো নির্দিষ্ট কিছু আছে।
চেকপয়েন্ট এক: যে সংযোগ ইতিমধ্যে কাজ করে
কিছু যোগ করার আগে ক্লায়েন্ট সংযোগ করুন এবং IPv4 পথ নিশ্চিত করুন। কাজ করা টানেল আপনাকে একটি ভিত্তিরেখা দেয় যা নতুন IPv6 ভুলকে পুরনো সংযোগ সমস্যা থেকে আলাদা করে। এটি আরও জানায় আপনি আসলে কোন সার্ভার ইনস্ট্যান্স সম্পাদনা করছেন।
আপনি ইতিমধ্যে যে পুল, টপোলজি ও পুশ করা রুটের উপর নির্ভর করেন তা লিখে রাখুন। IPv6-এর কাজ সেই কনফিগারেশন বাড়ায়; প্রতিস্থাপন করে না।
চেকপয়েন্ট দুই: ভেতরের প্রিফিক্স বেছে নিন
সাইটের জন্য একটি ULA /48 বেছে নিন এবং তা থেকে দুটি /64 কেটে নিন: একটি টানেল ক্লায়েন্টের জন্য, একটি IPv6 ওয়ার্কলোড ধরে রাখা LAN সেগমেন্টের জন্য। উদাহরণ প্রিফিক্স কপি না করে 40-বিট গ্লোবাল আইডি তৈরি করুন, এবং দুটি সাবনেটকেই সাইট ইতিমধ্যে রুট করা প্রতিটি নেটওয়ার্কের সঙ্গে মিলিয়ে দেখুন:
Outer transport: IPv4 OpenVPN UDP
IPv4 pool: 10.90.0.0/24
IPv6 VPN pool: fd73:93bc:b6e9:77::/64
IPv6 LAN: fd73:93bc:b6e9:60::/64
Server LAN IPv6: fd73:93bc:b6e9:60::1দুটি স্বাধীন /64 ক্লায়েন্ট পুলকে LAN সেগমেন্ট থেকে কেটে নেওয়া থেকে রাখে, যা পরে রিটার্ন রুট লেখার সময় গুরুত্বপূর্ণ হয়। উপরের মানগুলি একটি সমাধান করা উদাহরণ, পুনরায় ব্যবহারের প্রিফিক্স নয়।
চেকপয়েন্ট তিন: হেল্পার ও রুট পুশ যোগ করুন
কিছু যোগ করার আগে বর্তমান সার্ভার কনফিগারেশন পড়ুন। বিদ্যমান নির্দেশিকার দ্বিতীয় কপি প্রথমটির সঙ্গে মেলে না, এবং ফলস্বরূপ ত্রুটি IPv6 নয় নির্দেশিকার নাম বলে। বিদ্যমান IPv4 হেল্পার থাকলে দুটি লাইন তা বাড়ায়। প্রতিটি ভিন্ন প্রশ্নের উত্তর দেয়:
server-ipv6 fd73:93bc:b6e9:77::/64
push "route-ipv6 fd73:93bc:b6e9:60::/64"প্রথমটি একটি সুবিধাজনক হেল্পার যা ইন্টারফেস ও ক্লায়েন্ট পুল কনফিগার করে। দ্বিতীয়টি ক্লায়েন্টের পৌঁছানো উচিত এমন LAN গন্তব্যের নাম বলে। ক্লায়েন্টকে IPv6 ঠিকানা দিলে সার্ভারের পেছনে কী নেটওয়ার্ক আছে তা জানানো হয় না, তাই দুটি লাইনই দরকার।
হেল্পারটি স্থির IPv6 পুল বা nopool-এর সঙ্গে সহাবস্থান করে না। যদি ডিপ্লয়মেন্ট সচেতনভাবে ঠিকানা স্থিরভাবে বরাদ্দ করে, সেই নীতি ধরে রাখুন এবং উদাহরণের সঙ্গে মেলাতে নীতি মুছে না ফেলে IPv6 সমতুল্যটি স্পষ্টভাবে নকশা করুন।
চেকপয়েন্ট চার: ফরওয়ার্ডিং ও উত্তরের রুট
সার্ভারে IPv6 ফরওয়ার্ডিং চালু করুন সিস্টেমের নিজের কনফিগারেশন মালিকের মাধ্যমে, ভুলে যাওয়া এককালীন রানটাইম লেখা দিয়ে নয়। রানটাইম রূপটি দ্রুত পরীক্ষার জন্য উপযোগী। স্থায়ী কনফিগারেশন ডিস্ট্রিবিউশনের নেটওয়ার্ক মালিক যে drop-in ফাইল পড়েন সেখানে থাকা উচিত:
sysctl -w net.ipv6.conf.all.forwarding=1ফরওয়ার্ডিং প্যাকেট রুট করার বাইরেও হোস্টের IPv6 আচরণ বদলায়। ক্লায়েন্ট হিসেবে Router Advertisement গ্রহণ করা হোস্ট ফরওয়ার্ড করা শুরু করলে একইভাবে তা বন্ধ করে। তাই যার IPv6 আপলিঙ্ক RA-এর উপর নির্ভরশীল সেই আপলিঙ্কের জন্য স্পষ্ট পরিকল্পনা দরকার।
তারপর LAN-কে টানেল পুলে ফেরার একটি রুট দিন। ওয়ার্কলোডের IPv6 গেটওয়ে VPN সার্ভার নয়, LAN রাউটার, তাই রুটটি সেই রাউটারে থেকে সার্ভারের LAN ঠিকানার দিকে দেখায়:
ip -6 route add fd73:93bc:b6e9:77::/64 via fd73:93bc:b6e9:60::1লিঙ্কের প্রয়োজনীয় ICMPv6 ধরনগুলি রাখুন, পথ-MTU প্রতিক্রিয়াসহ। IPv4 ফায়ারওয়াল নিয়ম IPv6 নিয়ম বোঝায় না, এবং সর্বগ্রাসী IPv6 ব্লক প্রতিবেশী আবিষ্কার ভেঙে রুটিং ত্রুটির মতো দেখায়।
চেকপয়েন্ট পাঁচ: ক্লায়েন্ট পড়ুন, তারপর পরীক্ষা করুন
ক্লায়েন্ট আবার সংযোগ করুন এবং সার্ভারের হেল্পার ঠিকানা থেকে অনুমান না করে সে আসলে যে ঠিকানাগুলি পেয়েছে সেগুলি পড়ুন। ইন্টারফেস তালিকা একই ডিভাইসে দুই পরিবারই দেখায়:
ip -6 addr show tun0
ip -6 route get fd73:93bc:b6e9:60::20টানেল বেছে নেওয়া রুট প্রমাণ করে ক্লায়েন্ট জানে প্যাকেট কোথায় পাঠাতে হবে। এটি প্রমাণ করে না যে সার্ভার তা ফরওয়ার্ড করে, LAN রাউটারের ফেরার রুট আছে, বা অ্যাপ্লিকেশনকে উত্তর দেওয়ার অনুমতি আছে।
অ্যাপ্লিকেশনটি প্রতিটি পরিবারে পালা করে পরীক্ষা করুন, তারপর পুনঃসংযোগ ও হোস্ট রিস্টার্টের পরে পুনরাবৃত্তি করুন। কেবল রিবুট পর্যন্ত টিকে থাকা রুট বা sysctl পরীক্ষা, নকশা নয়।
IPv6 পথ শুরু থেকে শেষ পর্যন্ত উত্তর দিলে তবেই AAAA রেকর্ড প্রকাশ করুন। IPv4-এর মাধ্যমে করা DNS অনুসন্ধান এখনও IPv6 ঠিকানা ফিরিয়ে দিতে পারে, তাই সমাধানযোগ্য নাম প্রমাণ নয় যে কিছু শুনছে। RFC 4193 ULA নির্দেশিকা এই প্রিফিক্সগুলিকে আপনার করে তোলা গ্লোবাল আইডি কীভাবে তৈরি করতে হয় তা আলোচনা করে, নকল নয়।