งานของฉันคือสร้างเครือข่ายย่อย IP ภายในหลายเครือข่ายและกำหนดค่าเส้นทางระหว่างเครือข่ายย่อยเหล่านี้บนขาตั้ง Hyper-V แบบสแตนด์อโลนของฉัน ตามค่าเริ่มต้น Hyper-V จะไม่กำหนดเส้นทางการรับส่งข้อมูลระหว่างเครือข่ายบนสวิตช์เสมือน ดังนั้นเพื่อแก้ปัญหาเช่นนี้ คุณต้องสร้างเครื่องเสมือนที่มีอินเทอร์เฟซเครือข่ายสองอินเทอร์เฟซบนสวิตช์ Hyper-V ที่ต่างกัน (ในเครือข่ายที่ต่างกัน) และกำหนดค่าเส้นทางระหว่างอินเทอร์เฟซโดยใช้ซอฟต์แวร์ guest OS (อาจเป็น VM ที่ใช้งาน Windows Server ด้วยบทบาท RRAS หรือโฮสต์ Linux ที่มีตารางเส้นทางเฉพาะ) วิธีนี้ไม่สะดวกนัก เนื่องจากคุณต้องเรียกใช้ VM แยกต่างหากเพื่อวัตถุประสงค์ในการกำหนดเส้นทางเท่านั้น และเมื่อเพิ่มซับเน็ต IP ใหม่ คุณจะต้องกำหนดค่าตารางเส้นทางใหม่บน VM เพิ่มเติมของคุณ อย่างไรก็ตาม ฉันสามารถหาวิธีกำหนดค่าโฮสต์ Hyper-V เพื่อให้สามารถทำงานเป็นเราเตอร์ระหว่างสวิตช์เสมือน/เครือข่าย/เครือข่ายย่อย IP ที่แตกต่างกัน
ดังนั้นฉันจึงมีเครื่องเสมือน 2 เครื่องที่สร้างขึ้นในเครือข่ายภายในที่แตกต่างกันบนโฮสต์ 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 (มีการกล่าวถึงในบทความเกี่ยวกับวิธีกำหนดค่าการส่งต่อพอร์ตใน Windows)
เปิด PowerShell ในฐานะผู้ดูแลระบบบนโฮสต์ Hyper-V แก้ไขรีจิสทรี และรีสตาร์ทโฮสต์ของคุณ:
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
จากนั้นเปิดแผงควบคุม -> เครือข่ายและอินเทอร์เน็ต -> การเชื่อมต่อเครือข่ายบนโฮสต์ Hyper-V คุณจะเห็นรายการอะแดปเตอร์เครือข่ายบนโฮสต์ของคุณ มีอะแด็ปเตอร์เสมือนใหม่สองตัว (Hyper-V Virtual Ethernet Adapter) สำหรับสวิตช์เสมือนที่คุณสร้างขึ้น กำหนดที่อยู่ IP ให้กับพวกเขาโดยใช้ PowerShell หรือผ่านคุณสมบัติของอะแดปเตอร์เครือข่าย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 และความพร้อมใช้งานของพอร์ตโดยใช้ cmdlet ของ Test-NetConnection PowerShell:
Test-NetConnection 192.168.13.11 -port 445
tracert 192.168.13.11
อย่างที่คุณเห็น ขณะนี้โฮสต์รับผิดชอบ ICMP ping และ TCP โปรดทราบว่าการตั้งค่าไฟร์วอลล์ Windows Defender ใน VM ของคุณอาจบล็อกการรับส่งข้อมูล ตรวจสอบให้แน่ใจว่าคุณได้อนุญาตการรับส่งข้อมูล ICMP ใน Windows Firewall และเพิ่มกฎไฟร์วอลล์ที่อนุญาตอื่น ๆ
ดังนั้นเราจึงได้กำหนดค่าการกำหนดเส้นทางระหว่างเครือข่ายเสมือนหลายเครือข่ายบนโฮสต์ Hyper-V วิธีนี้ใช้ได้กับ Hyper-V บน Windows 10 และ Windows Server 2016/2019