मेरा कार्य एक स्टैंडअलोन Hyper-V होस्ट पर कई आंतरिक IP सबनेट बनाना और उनके बीच रूटिंग कॉन्फिगर करना है। डिफ़ॉल्ट रूप से, Hyper-V वर्चुअल स्विच पर नेटवर्क के बीच ट्रैफिक रूट नहीं करता। इसलिए इस तरह के कार्य को हल करने के लिए, आपको दो नेटवर्क इंटरफेस वाले एक वर्चुअल मशीन को अलग-अलग Hyper-V स्विच (अलग-अलग नेटवर्क में) पर बनाना होगा और गेस्ट OS सॉफ्टवेयर का उपयोग करके इंटरफेस के बीच रूटिंग कॉन्फिगर करना होगा (यह Windows Server हो सकता है जिसमें RRAS रोल हो या विशिष्ट रूटिंग टेबल वाला Linux होस्ट)। यह विधि बहुत सुविधाजनक नहीं है, क्योंकि आपको केवल रूटिंग उद्देश्यों के लिए एक अलग VM चलाना पड़ता है, और नया IP सबनेट जोड़ते समय, आपको अपने अतिरिक्त VM पर रूटिंग टेबल को पुन: कॉन्फिगर करना होगा। हालांकि, मैं यह पता लगाने में कामयाब रहा कि Hyper-V होस्ट को कैसे कॉन्फिगर किया जाए ताकि वह विभिन्न वर्चुअल स्विच/नेटवर्क/IP सबनेट के बीच राउटर के रूप में काम कर सके।
तो, मेरे पास एक Hyper-V होस्ट पर अलग-अलग आंतरिक नेटवर्क में बनी 2 वर्चुअल मशीनें हैं जिनके निम्न 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 इनेबल करना होगा (इस पर लेख में चर्चा की गई थी कि Windows में पोर्ट फॉरवर्डिंग कैसे कॉन्फिगर करें)।
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
PowerShell से Hyper-V कॉन्फिगर करने के बारे में और जानें।
फिर 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 PowerShell कमांडलेट का उपयोग करके रूटिंग और पोर्ट उपलब्धता चेक करें:
Test-NetConnection 192.168.13.11 -port 445
tracert 192.168.13.11
जैसा कि आप देख सकते हैं, होस्ट अब ICMP पिंग और TCP के लिए रिस्पॉन्सिबल हैं। ध्यान दें कि आपके VMs में Windows Defender Firewall सेटिंग्स ट्रैफिक ब्लॉक कर सकती हैं। सुनिश्चित करें कि आपने Windows Firewall में ICMP ट्रैफिक की अनुमति दी है और अन्य अनुमति देने वाले फायरवॉल नियम जोड़े हैं।
तो, हमने Hyper-V होस्ट पर कई वर्चुअल नेटवर्क के बीच रूटिंग कॉन्फिगर की है। यह विधि Windows 10 और Windows Server 2016/2019 पर Hyper-V के लिए लागू है।