하이브리드 전달
NDIS 6.40(Windows Server 2012 R2부터 Hyper-V 확장 스위치 아키텍처는 확장 가능한 스위치의 Hyper-V 네트워크 가상화(HNV) 구성 요소와 확장 전달을 통해 하이브리드 전달을 지원합니다.
참고 이 페이지에서는 NVGRE(일반 라우팅 캡슐화) 작업 오프로드 및 Hyper-V 확장 가능 스위치 개요를 사용하는 네트워크 가상화에 익숙하다고 가정합니다.
NVGRE 및 비 NVGRE 패킷
하이브리드 전달 환경에는 Hyper-V 확장 가능 스위치를 입력하고 나가는 두 가지 유형의 패킷이 있습니다. NVGRE 패킷 및 비 NVGRE 패킷:
- NVGRE 패킷에는 NVGRE: 일반 라우팅 캡슐화 인터넷 초안을 사용한 네트워크 가상화 에 지정된 캡슐화된 형식이 있습니다. NVGRE 패킷은 Hyper-V 확장 가능 스위치의 HNV 구성 요소에 의해 전달됩니다.
- NVGRE가 아닌 패킷은 일반 네트워크 패킷일 뿐입니다. NVGRE가 아닌 패킷은 전달 확장에 의해 전달됩니다(또는 전달 확장이 없는 경우 확장 가능한 스위치 자체).
스위치를 통한 NVGRE 및 비 NVGRE 패킷 흐름
수신 데이터 경로에서 확장 캡처 및 필터링 후 전달 확장 전에 패킷이 NVGRE 패킷인 경우 확장 가능한 스위치는 패킷의 NDIS_SWITCH_FORWARDING_DETAIL_NET_BUFFER_LIST_INFO 구조에서 NativeForwardingRequired 플래그를 설정합니다. 이 구조체는 패킷의 NET_BUFFER_LIST 구조체의 NetBufferListInfo 멤버에 포함됩니다.
참고NET_BUFFER_LISTNetBufferListInfo 멤버를 종종 패킷의 "대역 외(OOB) 데이터"라고 합니다.
NativeForwardingRequired 플래그가 패킷의 OOB 데이터에 설정된 경우 패킷은 NVGRE 패킷입니다. 설정되지 않은 경우 패킷은 NVGRE가 아닌 패킷입니다.
확장은 NET_BUFFER_LIST_SWITCH_FORWARDING_DETAIL 매크로를 사용하여 NativeForwardingRequired 플래그의 값을 검사 합니다.
NVGRE 및 비 NVGRE 패킷은 다음과 같이 처리됩니다.
- Hyper-V 확장 가능 스위치의 HNV 구성 요소는 모든 NVGRE 패킷을 전달합니다(즉, 대상 테이블 결정).
- HNV 구성 요소는 필요에 따라 NVGRE 캡슐화 및 캡슐화를 수행합니다.
- 전달 확장은 NVGRE가 아닌 모든 패킷을 전달합니다.
- 전달 확장은 NVGRE 패킷을 전달할 수 없지만 대상 포트 추가 또는 제외 또는 패킷 삭제를 포함하여 필터링 확장과 동일한 필터링 작업을 수행할 수 있습니다.
- 전달 확장이 없으면 Hyper-V 확장 가능 스위치가 모든 패킷을 전달합니다.
자세한 내용은 확장 가능한 스위치 데이터 경로를 통한 패킷 흐름을 참조하세요.
타사 네트워크 가상화 지원
VM 네트워크 어댑터 포트에서 VirtualSubnetId 를 외부 가상 서브넷으로 구성할 수 있습니다. 이 기능은 전달 확장이 타사 네트워크 가상화 솔루션을 제공할 수 있도록 추가되었습니다. 수신 시 Hyper-V 확장 가능 스위치는 이러한 패킷에 대한 NET_BUFFER_LIST 구조에서 NativeForwardingRequired 플래그를 설정하지 않습니다. 그런 다음 전달 확장 프로그램은 전달 중에 필요에 따라 패킷 헤더를 수정할 수 있습니다. 수정 중인 패킷을 복제하고 ParentNetBufferList 포인터를 원래 NET_BUFFER_LIST 설정해야 합니다. ( 패킷 트래픽 복제를 참조하세요.)