Computer >> Hướng Dẫn Máy Tính >  >> Hệ Thống >> Máy Chủ Windows

Hyper-V: Bật routing giữa các mạng nội bộ (Subnets)

Nhiệm vụ của tôi là tạo nhiều subnet IP nội bộ và cấu hình routing giữa chúng trên Hyper-V standalone. Mặc định, Hyper-V không route traffic giữa các mạng trên virtual switch. Vì vậy để giải quyết nhiệm vụ như vậy, bạn cần tạo máy ảo với hai interface mạng trên các Hyper-V switch khác nhau (trong các mạng khác nhau) và cấu hình routing giữa các interface bằng phần mềm guest OS (có thể là VM chạy Windows Server với role RRAS hoặc host Linux với bảng routing cụ thể). Phương pháp này không quá thuận tiện, vì bạn phải chạy một VM riêng cho mục đích routing, và khi thêm subnet IP mới, bạn sẽ phải cấu hình lại bảng routing trên VM bổ sung. Tuy nhiên, tôi đã tìm ra cách cấu hình Hyper-V host để nó hoạt động như một router giữa các virtual switch/mạng/IP subnet khác nhau.

Vậy, tôi có 2 máy ảo được tạo trong các mạng nội bộ khác nhau trên Hyper-V host với địa chỉ IP sau:

  • mun-dc01: 192.168.13.11/24 (gateway 192.168.13.1)
  • hh-dc02: 192.168.113.11/24 (gateway 192.168.113.1)

Để cho phép routing trên Windows Server, bạn phải bật tham số registry đặc biệt — IPEnableRouter (nó được thảo luận trong bài viết về cách cấu hình port forwarding trong Windows).

Mở PowerShell với quyền admin trên Hyper-V host, chỉnh sửa registry, và khởi động lại host:

Set-ItemProperty -Path HKLM:\system\CurrentControlSet\services\Tcpip\Parameters -Name IpEnableRouter -Value 1
Restart-computer

Bước tiếp theo, tạo hai Hyper-V internal virtual switch mới. Bạn có thể tạo chúng trong Hyper-V Manager hoặc bằng PowerShell:

New-VMSwitch -Name vSwitchIntMUN -SwitchType Internal
New-VMSwitch -Name vSwitchIntHH -SwitchType Internal

Tìm hiểu thêm về cách cấu hình Hyper-V từ PowerShell.

Sau đó mở Control Panel -> Network and Internet -> Network Connections trên Hyper-V host. Bạn sẽ thấy danh sách network adapter trên host. Có hai virtual adapter mới (Hyper-V Virtual Ethernet Adapter) cho virtual switch bạn đã tạo. Gán địa chỉ IP cho chúng bằng PowerShell hoặc qua thuộc tính network adapter.
New-NetIPAddress -InterfaceAlias 'vEthernet (vSwitchIntMUN)' -IPAddress 192.168.13.1 -PrefixLength 24
New-NetIPAddress -InterfaceAlias 'vEthernet (vSwitchIntHH)' -IPAddress 192.168.113.1 -PrefixLength 24

Như bạn thấy, chúng ta đã gán địa chỉ IP của default gateway trên mỗi subnet cho các interface này.

Kết nối mỗi VM với virtual switch của nó (nếu chưa làm):

Connect-VMNetworkAdapter -VMName mun-dc01 -SwitchName vSwitchIntMUN
Connect-VMNetworkAdapter -VMName hh-dc03 -SwitchName vSwitchIntHH

Sau đó VM của bạn sẽ gửi traffic qua các interface của virtual switch này.

Đảm bảo Hyper-V VM từ các mạng nội bộ khác nhau nhìn thấy nhau. Kiểm tra routing bằng tracert và khả năng truy cập cổng bằng cmdlet Test-NetConnection PowerShell:

Test-NetConnection 192.168.13.11 -port 445
tracert 192.168.13.11

Như bạn thấy, các host hiện đã phản hồi ICMP ping và TCP. Lưu ý rằng cài đặt Windows Defender Firewall trong VM của bạn có thể chặn traffic. Hãy chắc chắn rằng bạn đã cho phép traffic ICMP trong Windows Firewall và thêm các rule firewall cho phép khác.

Vậy, chúng ta đã cấu hình routing giữa nhiều mạng ảo trên Hyper-V host. Phương pháp này áp dụng cho Hyper-V trên Windows 10 và Windows Server 2016/2019.