필터링 확장 기능
확장 가능한 Hyper-V 스위치 필터링 확장은 확장 가능한 스위치 데이터 경로에 패킷을 검사, 수정 및 삽입할 수 있습니다. 확장 가능한 스위치 포트 및 스위치 정책 설정에 따라 확장은 패킷을 삭제하거나 하나 이상의 대상 포트에 대한 배달을 제외할 수 있습니다.
필터링 확장은 수신 데이터 경로에서 확장을 캡처한 후 송신 데이터 경로의 전달 확장 후에 호출됩니다. 이러한 데이터 경로에 대한 자세한 내용은 확장 가능한 스위치 데이터 경로 Hyper-V 참조하세요.
필터링 확장 프로그램은 수신 데이터 경로에서 가져온 패킷을 사용하여 다음을 수행할 수 있습니다.
패킷 트래픽을 필터링하고 확장 가능한 스위치를 통해 패킷 배달을 위한 사용자 지정 포트 또는 스위치 정책을 적용합니다. 필터링 확장 프로그램이 수신 데이터 경로의 패킷을 필터링하는 경우 패킷이 시작된 원본 포트 및 네트워크 어댑터 연결에 따라 필터링 규칙을 적용할 수 있습니다. 이 정보는 패킷의 NET_BUFFER_LIST 구조의 OOB(out-of-band) 데이터에 저장되며 NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL 매크로를 사용하여 가져올 수 있습니다.
수신 데이터 경로에서 가져온 패킷에는 대상 포트가 포함되지 않습니다. 대상 포트를 기반으로 패킷 필터링은 송신 데이터 경로에서 가져온 패킷에서만 수행할 수 있습니다.
사용자 지정 정책은 ISV(독립 소프트웨어 공급업체)에 의해 정의됩니다. 이 정책 유형에 대한 속성 설정은 Hyper-V WMI 관리 계층을 통해 관리됩니다. 필터링 확장은 OID_SWITCH_PORT_PROPERTY_UPDATE 및 OID_SWITCH_PROPERTY_UPDATEOID(개체 식별자) 요청을 통해 이러한 속성 설정으로 구성됩니다.
사용자 지정 확장 가능한 포트 또는 스위치 정책에 대한 자세한 내용은 Hyper-V 확장 가능한 스위치 정책관리를 참조하세요.
참고 전달 확장 프로그램만 확장 가능한 스위치를 통해 패킷 배달에 대한 표준 포트 정책을 적용할 수 있습니다.
새 패킷, 수정된 패킷 또는 복제된 패킷을 수신 데이터 경로에 삽입합니다.
필터링 확장 프로그램은 송신 데이터 경로에서 가져온 패킷을 사용하여 다음을 수행할 수 있습니다.
패킷 트래픽을 필터링하고 확장 가능한 스위치를 통해 패킷 배달을 위한 사용자 지정 포트 또는 스위치 정책을 적용합니다. 필터링 확장 프로그램이 송신 데이터 경로의 패킷을 필터링하는 경우 패킷의 원본 또는 대상 포트에 따라 필터링 규칙을 적용할 수 있습니다. 대상 포트 데이터는 패킷의 NET_BUFFER_LIST 구조의 OOB 데이터에 저장됩니다. 확장은 GetNetBufferListDestinations 함수를 호출하여 이 정보를 가져옵니다.
하나 이상의 확장 가능한 스위치 대상 포트에 대한 패킷 배달을 제외합니다. 이렇게 하면 필터링 확장 프로그램에서 확장 가능한 스위치 포트에 대한 패킷 배달을 제외할 수 있습니다.
확장 가능한 스위치 포트에 대한 패킷 배달을 제외하는 방법에 대한 자세한 내용은 확장 가능한 스위치 대상 포트 패킷 배달 제외참조하세요.
송신 데이터 경로 위로 패킷 전달을 연기하여 하나 이상의 대상 포트로 트래픽 흐름을 관리합니다.
예를 들어 QoS(서비스 품질) 기능을 지원하는 필터링 확장은 NdisFSendNetBufferLists 즉시 호출하여 우선 순위가 높은 값으로 지정된 패킷을 전달하려고 할 수 있습니다. 트래픽 흐름에 따라 확장은 나중에 우선 순위가 낮은 패킷을 전달하려고 할 수 있습니다.
패킷 데이터를 수정합니다. 필터링 확장 프로그램에서 패킷의 데이터를 수정해야 하는 경우 먼저 포트 대상을 유지하지 않고 패킷을 복제해야 합니다. 그런 다음, 확장에서 수정된 패킷을 수신 데이터 경로에 삽입해야 합니다. 이렇게 하면 기본 확장에서 수정된 패킷에 정책을 적용할 수 있으며 전달 확장은 포트 대상을 추가할 수 있습니다.
자세한 내용은 패킷 트래픽 복제을 참조하세요.
OID 요청 및 NDIS 상태 표시를 검사하는 것 외에도 필터링 확장은 다음을 수행할 수 있습니다.
적용 가능한 확장 가능한 스위치 OID에 대한 STATUS_DATA_NOT_ACCEPTED 반환하여 확장 가능한 스위치 포트 또는 네트워크 어댑터 연결 생성을 거부합니다. 예를 들어 필터링 확장은 드라이버가 OID_SWITCH_PORT_CREATEOID 집합 요청을 받을 때 STATUS_DATA_NOT_ACCEPTED 반환하여 포트 생성 요청을 거부할 수 있습니다.
필터링 확장은 포트 또는 네트워크 어댑터 연결을 만들거나 삭제하지 않습니다. 확장 가능한 스위치의 프로토콜 에지는 포트 또는 네트워크 어댑터 연결의 생성 또는 삭제에 대해 기본 필터 드라이버에 알리기 위해 OID를 발급합니다. 자세한 내용은 Hyper-V 확장 가능한 스위치 포트 및 네트워크 어댑터 상태참조하세요.
적용 가능한 확장 가능한 스위치 OID에 대한 STATUS_DATA_NOT_ACCEPTED 반환하여 확장 가능한 스위치 또는 포트 정책의 추가 또는 업데이트를 거부합니다. 예를 들어, 필터링 확장은 OID_SWITCH_PORT_PROPERTY_ADDOID 집합 요청을 받을 때 STATUS_DATA_NOT_ACCEPTED를 반환함으로써 포트 정책 추가를 거부할 수 있습니다.
확장 가능한 스위치 정책에 대한 자세한 내용은 Hyper-V 확장 가능한 스위치 정책 관리참조하세요.
필터링 확장에는 다음과 같은 요구 사항이 있습니다.
필터링 확장은 확장 가능한 스위치 인터페이스를 지원하는 NDIS 필터 드라이버로 개발되어야 합니다.
필터 드라이버에 대한 자세한 내용은 NDIS 필터 드라이버참조하세요.
필터링 확장을 작성하는 방법에 대한 자세한 내용은 쓰기 Hyper-V 확장 가능한 스위치 확장참조하세요.
참고 Windows 필터링 플랫폼(WFP)은 기본 제공 확장 가능한 스위치 필터링 확장(Wfplwfs.sys)을 제공합니다. 이 확장을 사용하면 WFP 필터 또는 콜아웃 드라이버가 확장성 있는 Hyper-V 스위치 데이터 경로를 따라 패킷을 가로챌 수 있습니다. 이렇게 하면 필터나 콜아웃 드라이버가 WFP 관리 및 시스템 함수를 사용하여 패킷 검사 또는 수정을 수행할 수 있게 됩니다. WFP에 대한 개요는 Windows 필터링 플랫폼참조하세요.
필터링 확장 프로그램에 대한 INF 파일은 드라이버를 수정 필터 드라이버로 설치해야 합니다. 확장 가능한 스위치 드라이버 스택에는 NDIS 모니터링 필터 드라이버를 설치할 수 없습니다.
필터 드라이버 수정에 대한 자세한 내용은 필터 드라이버 유형을 참조하세요.
필터 드라이버를 수정하기 위한 INF 요구 사항에 대한 자세한 내용은 필터 드라이버 수정 대한 INF 파일 구성참조하세요.
필터 드라이버에 대한 INF 파일의 FilterClass 값은 ms_switch_filter설정해야 합니다. 자세한 내용은 Hyper-V 확장 가능한 스위치 확장 대한INF 요구 사항을 참조하세요.
확장 가능한 스위치의 각 인스턴스에 대해 드라이버 스택에서 여러 필터링 확장을 바인딩하고 사용하도록 설정할 수 있습니다. 기본적으로 여러 필터링 확장은 설치 시기에 따라 정렬됩니다. 예를 들어 여러 필터링 확장은 확장 가능한 스위치 드라이버 스택에 계층화되고 가장 최근에 설치된 확장은 스택의 다른 필터링 확장 위에 계층화됩니다.
확장 가능한 스위치 인스턴스에서 바인딩되고 사용하도록 설정되면 확장 가능한 스위치 드라이버 스택의 필터링 확장 계층을 다시 정렬할 수 있습니다. 자세한 내용은 순서 다시 지정 Hyper-V 확장 가능한 스위치 확장를 참조하세요.