가상 스위치 포트가 트렁크 모드에 있으면 Hyper-V 게스트가 네트워크 액세스를 잃습니다.

가상 스위치 포트가 트렁크 모드에 있으면 Hyper-V 게스트가 네트워크 액세스를 잃습니다.

Hyper-V를 실행하는 Windows Server 2012 R2 시스템에 게스트 VM이 있습니다. 현재 게스트는 기본 VLAN(Vlan ID 1)을 사용하고 있습니다. 호스트와 네트워크를 통해 게스트와 통신할 수 있습니다. 그러나 게스트는 VLAN ID 10 및 15의 트래픽도 처리해야 하는 Zebra/Motorola VX9000 wlan 컨트롤러입니다. 호스트에서 사용하는 스위치 포트는 VLAN 1에서 태그가 지정되지 않았으며 VLAN에서도 태그가 지정되도록 포트를 업데이트했습니다. 10 및 15. 또한 powershell을 통해 다음 명령을 실행합니다.

Set-VMNetworkAdapterVlan -VMName MyGuest -Trunk -AllowedVlanIdList "10,15" -NativeVlanId 1

불행하게도 이 명령을 실행한 후에는 게스트와 통신할 수 없게 됩니다. 게스트용 Hyper-V 콘솔을 열면 네트워크에 액세스할 수 없습니다. 호스트나 네트워크의 다른 위치에서 게스트에게 ping을 시도하면 메시지가 나타납니다 Destination host unreachable.

어댑터를 태그 없는 모드로 되돌려 문제를 "수정"할 수 있습니다.

Set-VMNetworkAdapterVlan -VMName MyGuest -Untagged

이제 게스트와 다시 소통할 수 있지만 이것만으로는 아무것도 해결되지 않습니다. VLAN 10과 15의 트래픽을 처리하려면 이 게스트가 여전히 필요합니다.

왜 이런 일이 발생하는지 이해하지 못합니다. 태그가 지정되지 않은 패킷은 트렁크 모드로 전환하기 전에 VLAN ID 1이었습니다. 지금도 그래야 하는 것 아닌가? 이 게스트가 필요한 모든 VLAN에서 통신하도록 하려면 어떻게 해야 합니까?

핑할 때 표시되는 오류 메시지에서 얻을 수 있는 가장 좋은 점은 경로가 없을 때 표시되는 것과 유사합니다. 포트를 트렁크(아마도 호스트에서)로 설정한 후 이러한 네트워크에 대한 경로를 생성하려면 별도의 명령을 실행해야 합니까?

답변1

이 방법으로 설정된 VM은 몇 개뿐이며 기본 VLAN에서도 통신하지 않았습니다. 이 문제를 해결하기 위해 우리가 한 일은 기본 VLAN을 네트워크에서 사용되지 않는 것으로 설정하고 사용하려는 VLAN을 허용된 VLAN에 넣은 다음 VM 내부의 모든 NIC를 전환하여 트래픽에 태그를 지정하는 것이었습니다.

답변2

해결책을 찾았습니다!

alejanp의 게시물이 링크vlan 0을 사용해 보도록 유도했는데 다음 명령이 작동하는 것 같습니다.

Set-VMNetworkAdapterVlan -VMName MyGuest -Trunk -AllowedVlanList "1,10,15" -NativeVlanId 0

즉, 기본 VLAN을 0으로 설정하고 실제 기본 VLAN을 허용 목록에 포함했습니다.

물론 이는 게스트에 필요한 태그 없는 VLAN이 호스트/스위치 포트의 태그 없는 VLAN과 일치하는 경우에만 작동할 수 있습니다. 고맙게도 오늘날에도 그렇습니다.

관련 정보