আমার কাজ হলো স্ট্যান্ডঅ্যালোন Hyper-V হোস্টে একাধিক ইন্টারন্যাল IP সাবনেট তৈরি করে তাদের মাঝপথে রাউটিং কনফিগার করা। ডিফল্টভাবে Hyper-V ভার্চুয়াল স্যুইচে নেটওয়ার্কের মাঝপথে ট্রাফিক রাউট করে না। তাই এই ধরনের টাস্ক সমাধান করতে হলে, দুটি নেটওয়ার্ক ইন্টারফেস সহ একটি ভার্চুয়াল মেশিন তৈরি করতে হয় দুটি ভিন্ন Hyper-V স্যুইচে (ভিন্ন নেটওয়ার্কে) এবং গেস্ট OS সফ্টওয়্যার ব্যবহার করে ইন্টারফেসের মাঝপথে রাউটিং কনফিগার করতে হয় (এটি হতে পারে Windows Server RRAS রোল সহ VM বা নির্দিষ্ট রাউটিং টেবিল সহ Linux হোস্ট)। এই পদ্ধতি খুব সুবিধাজনক নয়, কারণ রাউটিং উদ্দেশ্যে আলাদা একটি VM চালাতে হয়, এবং নতুন IP সাবনেট যোগ করার সময় রাউটিং টেবিল আপডেট করতে হয়। যাপোন, আমি Hyper-V হোস্ট কনফিগার করতে পারলাম যাতে সেটি ভিন্ন ভার্চুয়াল স্যুইচ/নেটওয়ার্ক/IP সাবনেটের মাঝপথে রাউটার হিসেবে কাজ করতে পারে।
আমার Hyper-V হোস্টে দুটি ভিন্ন ইন্টারন্যাল নেটওয়ার্কে দুটি ভার্চুয়াল মেশিন তৈরি করা আছে যাদের IP অ্যাড্রেস:
- mun-dc01:
192.168.13.11/24(গেটওয়ে 192.168.13.1) - hh-dc02:
192.168.113.11/24(গেটওয়ে 192.168.113.1)
Windows Server-এ রাউটিং সক্ষম করতে একটি বিশেষ রেজিস্ট্রি প্যারামিটার — IPEnableRouter সক্ষম করতে হয় (এটি উইন্ডোজে পোর্ট ফরওয়ার্ডিং কনফিগার করার আর্টিকেলে আলোচনা করা হয়েছে)।
Hyper-V হোস্টে অ্যাডমিনিস্ট্রেটর হিসেবে PowerShell খুলুন, রেজিস্ট্রি এডিট করুন, এবং হোস্ট রিস্টার্ট করুন:
Set-ItemProperty -Path HKLM:\system\CurrentControlSet\services\Tcpip\Parameters -Name IpEnableRouter -Value 1
Restart-computer
পরবর্তী ধাপে, দুটি নতুন Hyper-V ইন্টারন্যাল ভার্চুয়াল স্যুইচ তৈরি করুন। Hyper-V Manager বা PowerShell-এ তৈরি করা যায়:
New-VMSwitch -Name vSwitchIntMUN -SwitchType Internal
New-VMSwitch -Name vSwitchIntHH -SwitchType Internal
Hyper-V-কে PowerShell থেকে কনফিগার করার বিস্তারিত জানুন।
Control Panel → Network and Internet → Network Connections খুলুন Hyper-V হোস্টে। আপনার হোস্টের নেটওয়ার্ক অ্যাডাপ্টারের তালিকা দেখবেন। আপনার তৈরি করা ভার্চুয়াল স্যুইচ দুটির জন্য দুটি নতুন ভার্চুয়াল অ্যাডাপ্টার (Hyper-V Virtual Ethernet Adapter) থাকবে। PowerShell বা নেটওয়ার্ক অ্যাডাপ্টার প্রপার্টিজ ব্যবহার করে তাদের IP অ্যাড্রেস দিন:
New-NetIPAddress -InterfaceAlias 'vEthernet (vSwitchIntMUN)' -IPAddress 192.168.13.1 -PrefixLength 24
New-NetIPAddress -InterfaceAlias 'vEthernet (vSwitchIntHH)' -IPAddress 192.168.113.1 -PrefixLength 24
দেখা যাচ্ছে, প্রতিটি সাবনেটের ডিফল্ট গেটওয়ের IP অ্যাড্রেস এই ইন্টারফেসগুলোর জন্য অ্যাসাইন করা হয়েছে।
প্রতিটি VM-কে তার ভার্চুয়াল স্যুইচের সাথে কানেক্ট করুন (যদি ইতিমধ্যে না করা থাকে):
Connect-VMNetworkAdapter -VMName mun-dc01 -SwitchName vSwitchIntMUN
Connect-VMNetworkAdapter -VMName hh-dc03 -SwitchName vSwitchIntHH
তब আপনার VMগুলো এই ভার্চুয়াল স্যুইচ ইন্টারফেসের মাধ্যমে ট্রাফিক পাঠাবে।
নিশ্চিত করুন যে ভিন্ন ইন্টারন্যাল নেটওয়ার্কের Hyper-V ভার্চুয়াল মেশিনগুলো একে অপরকে দেখতে পাচ্ছে। রাউটিং চেক করুন tracert এবং Test-NetConnection পাওয়ারশেল কমান্ডলেট ব্যবহার করে পোর্ট টেস্ট করে:
Test-NetConnection 192.168.13.11 -port 445
tracert 192.168.13.11
দেখা যাচ্ছে, হোস্টগুলো এখন ICMP ping এবং TCP-র জন্য রেসপন্স দিচ্ছে। মনে রাখবেন আপনার VM-গুলোর Windows Defender Firewall সেটিংস ট্রাফিক ব্লক করতে পারে। নিশ্চিত করুন ICMP ট্রাফিক Windows Firewall-এ অ্যালোয়েড এবং অন্যান্য অ্যালো করে ফায়ারওয়াল রুল যোগ করা আছে।
এভাবে, আমরা একটি Hyper-V হোস্টে একাধিক ভার্চুয়াল নেটওয়ার্কের মাঝপথে রাউটিং কনফিগার করলাম। এই পদ্ধতি Windows 10 এবং Windows Server 2016/2019-এ Hyper-V-তে প্রযোজ্য।