다음을 통해 공유


Hyper-V 확장 가능한 스위치 네트워크 어댑터 개요

Hyper-V 확장 가능 스위치는 다양한 유형의 가상 또는 물리적 네트워크 어댑터로부터의 연결을 지원합니다. 이러한 유형의 네트워크 어댑터에 대한 연결은 확장 가능한 스위치 포트를 통해 이루어집니다. 포트는 가상 네트워크 어댑터 연결을 만들기 전에 만들어지고 네트워크 어댑터 연결이 중단된 후 삭제됩니다.

예를 들어 Hyper-V 자식 파티션이 시작되면 확장 가능한 스위치 인터페이스는 게스트 운영 체제 내에서 VM(가상 머신) 네트워크 어댑터가 노출되기 전에 포트를 만듭니다. VM 네트워크 어댑터가 노출되고 열거되면 확장 가능한 스위치 인터페이스는 VM 네트워크 어댑터와 확장 가능한 스위치 포트 간에 네트워크 연결을 만듭니다. 자식 파티션이 중지되면 확장 가능한 스위치 인터페이스는 먼저 네트워크 연결을 삭제한 다음 확장 가능한 스위치 포트를 삭제합니다.

Hyper-V 확장 가능 스위치는 다음과 같은 유형의 가상 네트워크 어댑터에서 연결을 지원합니다.

외부 네트워크 어댑터
Hyper-V 부모 파티션에서 실행되는 관리 운영 체제에 노출되는 확장 가능한 스위치 네트워크 어댑터입니다. 확장 가능한 각 스위치는 하나의 외부 네트워크 어댑터 연결만 지원합니다.

외부 네트워크 어댑터는 호스트에서 사용할 수 있는 실제 네트워크 인터페이스에 대한 연결을 제공합니다. 외부 네트워크 어댑터는 Hyper-V 부모 파티션 및 모든 자식 파티션에서 액세스할 수 있습니다.

이러한 유형의 네트워크 어댑터에 대한 자세한 내용은 외부 네트워크 어댑터를 참조하세요.

내부 네트워크 어댑터
Hyper-V 부모 파티션에서 실행되는 관리 운영 체제에 노출되는 확장 가능한 스위치 네트워크 어댑터입니다. 확장 가능한 각 스위치는 하나의 내부 네트워크 어댑터 연결만 지원합니다.

내부 네트워크 어댑터는 관리 운영 체제에서 실행되는 프로세스에 대해 확장 가능한 스위치에 대한 액세스를 제공합니다. 이렇게 하면 이러한 프로세스가 확장 가능한 스위치를 통해 패킷을 보내거나 받을 수 있습니다.

이러한 유형의 네트워크 어댑터에 대한 자세한 내용은 내부 네트워크 어댑터를 참조하세요.

VM(가상 머신) 네트워크 어댑터
Hyper-V 자식 파티션에서 실행되는 게스트 운영 체제에 노출되는 확장 가능한 스위치 네트워크 어댑터입니다.

참고 Hyper-V에서 자식 파티션을 VM이라고도 합니다.

VM 네트워크 어댑터는 다음과 같은 가상화 유형을 지원합니다.

  • VM 네트워크 어댑터는 네트워크 어댑터(가상 네트워크 어댑터)의 가상화일 수 있습니다. 이 경우 VM에서 실행되는 네트워크 NetVSC(가상 서비스 클라이언트)는 이 가상 네트워크 어댑터를 노출합니다. NetVSC는 VM 버스(VMBus)를 통해 확장 가능한 스위치 포트에서 패킷을 전달합니다.

  • VM 네트워크 어댑터는 실제 네트워크 어댑터(에뮬레이트된 네트워크 어댑터)의 에뮬레이트된 가상화일 수 있습니다. 이 경우 VM 네트워크 어댑터는 Intel 네트워크 어댑터를 모방하고 하드웨어 에뮬레이션을 사용하여 확장 가능한 스위치 포트와 패킷을 전달합니다.

이러한 유형의 네트워크 어댑터에 대한 자세한 내용은 Virtual Machine 네트워크 어댑터를 참조하세요.

확장 가능한 스위치 네트워크 어댑터 연결은 다음과 같은 확장 가능한 스위치 OID 요청을 통해 생성, 업데이트 및 삭제됩니다.

OID_SWITCH_NIC_CREATE
확장 가능한 스위치의 프로토콜 에지는 확장 가능한 스위치 포트에 대한 네트워크 어댑터 연결 생성에 대해 확장 가능한 스위치 확장에 알리기 위해 OID_SWITCH_NIC_CREATE OID 집합 요청을 실행합니다. 포트는 이전에 OID_SWITCH_PORT_CREATE OID 집합 요청을 통해 만들어졌어야 합니다.

OID_SWITCH_NIC_CREATE 요청은 확장 가능한 새 스위치 네트워크 어댑터 연결이 발생하고 지정된 포트를 통해 패킷 트래픽이 곧 발생할 수 있음을 확장에 알렸습니다.

확장은 OID 요청에 대한 STATUS_DATA_NOT_ACCEPTED 반환하여 생성 알림을 거부할 수 있습니다. 예를 들어 확장이 네트워크 어댑터 연결에 사용되는 포트에서 구성된 정책을 충족할 수 없는 경우 확장은 생성 알림을 거부해야 합니다.

확장이 생성 알림을 수락하는 경우 확장 가능한 스위치 드라이버 스택 아래로 OID 요청을 전달해야 합니다. 확장은 이 OID 요청의 완료 상태 모니터링하여 기본 확장이 생성 알림을 거부했는지 여부를 확인합니다.

네트워크 어댑터 연결을 만들면 NDIS_SWITCH_NIC_INDEX 값이 할당됩니다. 이 인덱스 값은 확장 가능한 스위치 포트에서 네트워크 어댑터 연결을 식별합니다. 외부, 내부 및 VM 네트워크 어댑터에 대한 연결에는 NDIS_SWITCH_DEFAULT_NIC_INDEX NDIS_SWITCH_NIC_INDEX 값이 할당됩니다. 외부 네트워크 어댑터에 바인딩된 각 물리적 또는 가상 네트워크 어댑터에는 다음과 같은 방식으로 NDIS_SWITCH_NIC_INDEX 값이 할당됩니다.

  • 물리적 또는 가상 네트워크 어댑터가 외부 네트워크 어댑터에 직접 바인딩된 경우 NDIS_SWITCH_NIC_INDEX 값이 할당됩니다.

  • 물리적 네트워크 어댑터가 확장 가능한 스위치 팀의 일부인 경우 1보다 크거나 같은 NDIS_SWITCH_NIC_INDEX 값이 할당됩니다. 확장 가능한 스위치 팀은 하나 이상의 물리적 네트워크 어댑터 팀이 확장 가능한 스위치 외부 네트워크 어댑터에 바인딩되는 구성입니다.

물리적 네트워크 어댑터를 외부 네트워크 어댑터에 바인딩할 수 있는 다양한 구성에 대한 자세한 내용은 물리적 네트워크 어댑터 구성 유형을 참조하세요.

NDIS_SWITCH_NIC_INDEX 값에 대한 자세한 내용은 네트워크 어댑터 인덱스 값을 참조하세요.

참고 확장 가능한 스위치의 프로토콜 에지가 OID_SWITCH_NIC_CONNECT OID 집합 요청을 실행할 때까지 확장은 네트워크 어댑터 연결을 통해 패킷을 생성하거나 전달할 수 없습니다.

OID_SWITCH_NIC_CONNECT
확장 가능한 스위치의 프로토콜 에지는 확장 가능한 스위치 네트워크 어댑터 연결이 완전히 작동한다는 것을 확장 가능한 스위치 확장에 알리기 위해 OID_SWITCH_NIC_CONNECT OID 집합 요청을 실행합니다.

확장은 항상 확장 가능한 스위치 드라이버 스택 아래로 이 OID 집합 요청을 전달해야 합니다. 확장이 요청에 실패하면 안됩니다.

NDIS_STATUS_SUCCESS OID 요청이 완료되면 네트워크 어댑터 연결 및 확장 가능한 스위치 포트가 완전히 작동합니다. 네트워크 어댑터 연결이 이 상태이면 확장에서 다음을 수행할 수 있습니다.

  • 포트의 네트워크 어댑터 연결에 패킷 트래픽을 생성하거나 전달합니다.

  • 포트를 원본 포트로 사용하는 확장 가능한 스위치 OID 또는 상태 표시를 실행합니다.

  • ReferenceSwitchNic를 호출하여 네트워크 어댑터 연결에 대한 참조 카운터를 증분합니다. 확장 가능한 스위치 인터페이스는 참조 카운터에 0이 아닌 값이 있는 동안 네트워크 어댑터 연결을 중단하지 않습니다.

OID_SWITCH_NIC_UPDATED
확장 가능한 스위치의 프로토콜 에지는 확장 가능한 스위치 네트워크 어댑터에 대한 매개 변수가 업데이트되었음을 확장 가능한 스위치 확장에 알리기 위해 OID_SWITCH_NIC_UPDATED OID 집합 요청을 실행합니다. OID는 이미 연결되어 있고 아직 연결 해제 프로세스를 시작하지 않은 NIC에 대해서만 발급됩니다. 이러한 런타임 구성 변경에는 NicFriendlyName, MTU, NetCfgInstanceId, PermanentMacAddress, VMMacAddress, CurrentMacAddressVFAssigned가 포함될 수 있습니다.

확장은 항상 확장 가능한 스위치 드라이버 스택 아래로 이 OID 집합 요청을 전달해야 합니다. 확장이 요청에 실패하면 안됩니다.

OID_SWITCH_NIC_DISCONNECT
확장 가능한 스위치의 프로토콜 에지는 확장 가능한 스위치 네트워크 어댑터 연결이 중단되고 있음을 확장 가능한 스위치 확장에 알리기 위해 OID_SWITCH_NIC_DISCONNECT OID 집합 요청을 실행합니다. 연결이 완전히 중단된 후 확장 가능한 스위치의 프로토콜 에지가 OID_SWITCH_NIC_DELETE OID 집합 요청을 실행합니다.

확장은 항상 확장 가능한 스위치 드라이버 스택 아래로 이 OID 집합 요청을 전달해야 합니다. 확장이 요청에 실패하면 안됩니다.

확장이 이 OID 요청을 전달한 후에는 네트워크 어댑터 연결이 중단되는 포트에 패킷을 더 이상 생성하거나 전달할 수 없습니다. 또한 확장은 네트워크 어댑터 연결에 대해 ReferenceSwitchNic 를 더 이상 호출할 수 없습니다.

OID_SWITCH_NIC_DELETE
확장 가능한 스위치의 프로토콜 에지는 확장 가능한 스위치 네트워크 어댑터 연결이 제거되고 삭제되었음을 확장 가능한 스위치 확장에 알리기 위해 OID_SWITCH_NIC_DELETE OID 집합 요청을 실행합니다. 이 OID 요청은 이전에 OID_SWITCH_NIC_DISCONNECT OID 집합 요청이 발급된 네트워크 연결에 대해서만 발급됩니다.

참고 확장은 항상 확장 가능한 스위치 드라이버 스택 아래로 이 OID 집합 요청을 전달해야 합니다. 확장이 요청에 실패하면 안됩니다.

이 OID 요청이 완료되면 확장 가능한 스위치의 프로토콜 에지가 OID_SWITCH_PORT_TEARDOWN OID 집합 요청을 실행하여 네트워크 어댑터 연결에 사용된 포트에 대한 삭제 프로세스를 시작합니다.

확장은 항상 확장 가능한 스위치 드라이버 스택 아래로 이 OID 집합 요청을 전달해야 합니다. 확장이 요청에 실패하면 안됩니다.

확장 가능한 스위치 인터페이스는 생성된 각 네트워크 어댑터 연결에 대한 참조 카운터를 유지 관리합니다. 참조 카운터에 0이 아닌 값이 있으면 네트워크 어댑터 연결이 삭제되지 않습니다. 인터페이스는 확장 가능한 스위치 네트워크 어댑터 연결의 참조 카운터를 증가 또는 감소시키는 다음 처리기 함수를 제공합니다.

ReferenceSwitchNic
확장 가능한 스위치 확장은 이 함수를 호출하여 네트워크 어댑터 연결의 참조 카운터를 증가합니다. 참조 카운터에 0이 아닌 값이 있지만 확장 가능한 스위치 인터페이스는 네트워크 어댑터 연결을 삭제하지 않습니다.

확장은 다음 작업을 수행하기 전에 ReferenceSwitchNic 를 호출해야 합니다.

참고 확장은 해당 연결에 대한 OID_SWITCH_NIC_DISCONNECT OID 집합 요청을 받은 후 네트워크 어댑터 연결에 대해 ReferenceSwitchNic를 호출해서는 안 됩니다.

DereferenceSwitchNic
확장 가능한 스위치 확장은 이 함수를 호출하여 포트의 참조 카운터를 감소합니다.

확장이 ReferenceSwitchNic를 호출하는 경우 OID_SWITCH_NIC_REQUEST 또는 NDIS_STATUS_SWITCH_NIC_STATUS 표시가 완료된 후 DereferenceSwitchNic를 호출해야 합니다.