18.6. SR-IOV 지원 워크로드에 대한 QinQ 지원 구성
공식적으로 802.1Q-in-802.1Q로 알려진 QinQ는 IEEE 802.1ad에 의해 정의된 네트워킹 기술입니다. IEEE 802.1ad는 IEEE 802.1Q-1998 표준을 확장하고 802.1Q로 이미 태그된 패킷에 802.1Q 태그를 추가로 도입하여 VLAN 기능을 강화합니다. 이 방법을 VLAN 스택 또는 이중 VLAN이라고도 합니다.
다음 문서에서 작업을 수행하기 전에 SR-IOV Network Operator를 설치 했는지 확인합니다.
18.6.1. 802.1Q-in-802.1Q 지원 정보
기존 VLAN 설정에서 프레임에는 일반적으로 VLAN-100과 같은 단일 VLAN 태그와 QoS(Quality of Service) 비트 및 프로토콜 정보와 같은 기타 메타데이터가 포함됩니다. QinQ에는 서비스 공급자가 사용할 외부 태그를 지정하여 유연성을 제공하고 내부 태그는 고객의 VLAN 전용 상태로 유지되는 두 번째 VLAN 태그가 도입되었습니다.
QinQ를 사용하면 이중 VLAN 태그를 사용하여 중첩된 VLAN을 쉽게 생성할 수 있으므로 네트워크 환경 내에서 트래픽을 세분화하고 격리할 수 있습니다. 이 접근 방식은 공통 인프라를 통해 VLAN 기반 서비스를 여러 고객에게 제공해야 하는 서비스 공급자 네트워크에서 특히 중요하며 트래픽 분리 및 격리를 보장합니다.
다음 다이어그램에서는 OpenShift Container Platform에서 SR-IOV 및 QinQ를 사용하여 컨테이너화된 워크로드의 고급 네트워크 분할 및 격리를 달성하는 방법을 보여줍니다.
					다이어그램에서는 SR-IOV가 지원되는 작업자 노드에서 VLAN 태그 두 개(QinQ)가 작동하는 방법을 보여줍니다. Pod 네임스페이스에 있는 SR-IOV 가상 기능(VF)은 VLAN ID 및 VLAN 프로토콜을 사용하여 SR-IOV CNI(Container Network Interface)에 의해 구성됩니다.  이는 S-tag에 해당합니다. Pod 내부에서 VLAN CNI는 기본 인터페이스 ext0 을 사용하여 하위 인터페이스를 생성합니다. 이 하위 인터페이스는 C-tag에 해당하는 802.1Q 프로토콜을 사용하여 내부 VLAN ID를 추가합니다.
				
이는 QinQ를 사용하여 네트워크 내에서 트래픽 분할 및 격리를 활성화하는 방법을 보여줍니다. 이더넷 프레임 구조는 오른쪽에 자세히 설명되어 있으며 VLAN 태그, EtherType, IP, TCP 및 Payload 섹션의 포함을 강조 표시합니다. QinQ를 사용하면 트래픽 분리 및 격리를 보장하면서 공유 인프라를 통해 VLAN 기반 서비스를 여러 고객에게 제공할 수 있습니다.
					OpenShift Container Platform SR-IOV 솔루션은 이미 SriovNetwork CR(사용자 정의 리소스)에서 VLAN 프로토콜 설정을 지원합니다. VF(가상 기능)는 이 프로토콜을 사용하여 외부 태그라고도 하는 VLAN 태그를 설정할 수 있습니다. 그러면 Pod에서 VLAN CNI 플러그인을 사용하여 내부 태그를 구성할 수 있습니다.
				
| NIC | 802.1ad/802.1Q | 802.1Q/802.1Q | 
|---|---|---|
| Intel X710 | 없음 | 지원됨 | 
| Intel E810 | 지원됨 | 지원됨 | 
| Mellanox | 없음 | 지원됨 | 
18.6.2. SR-IOV 지원 워크로드에 대한 QinQ 지원 구성
사전 요구 사항
- 
							OpenShift CLI(oc)가 설치되어 있습니다.
- 
							cluster-admin역할의 사용자로 클러스터에 액세스할 수 있어야 합니다.
- SR-IOV Network Operator가 설치되어 있습니다.
프로세스
- 다음 콘텐츠를 사용하여 - sriovnetpolicy-810-sriov-node-network.yaml이라는 파일을 생성합니다.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 다음 명령을 실행하여 - SriovNetworkNodePolicy오브젝트를 생성합니다.- oc create -f sriovnetpolicy-810-sriov-node-network.yaml - $ oc create -f sriovnetpolicy-810-sriov-node-network.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 별도의 터미널 창을 열고 다음 명령을 실행하여 - openshift-sriov-network-operator네임스페이스에 지정된 노드에 대한 SR-IOV 네트워크 노드 상태의 동기화 상태를 모니터링합니다.- watch -n 1 'oc get sriovnetworknodestates -n openshift-sriov-network-operator <node_name> -o jsonpath="{.status.syncStatus}"'- $ watch -n 1 'oc get sriovnetworknodestates -n openshift-sriov-network-operator <node_name> -o jsonpath="{.status.syncStatus}"'- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 동기화 상태는 - InProgress에서- Succeeded로 변경되었음을 나타냅니다.
- SriovNetwork오브젝트를 생성하고 인프라에 속하므로 S-tag 또는- Service Tag라는 외부 VLAN을 설정합니다.중요- 스위치의 트렁크 인터페이스에서 VLAN을 구성해야 합니다. 또한 QinQ 태그를 지원하도록 일부 스위치를 추가로 구성해야 할 수도 있습니다. - 다음 콘텐츠를 사용하여 - nad-sriovnetwork-1ad-810.yaml이라는 파일을 생성합니다.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 다음 명령을 실행하여 오브젝트를 생성합니다. - oc create -f nad-sriovnetwork-1ad-810.yaml - $ oc create -f nad-sriovnetwork-1ad-810.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
- 내부 VLAN을 사용하여 - NetworkAttachmentDefinition오브젝트를 생성합니다. 내부 VLAN은 종종 네트워크 기능에 속하므로 C 태그 또는- 고객태그라고 합니다.- 다음 콘텐츠를 사용하여 - nad-cvlan100.yaml이라는 파일을 생성합니다.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 1
- Pod 내부의 VF 인터페이스를 지정합니다. 기본 이름은net1이며 이름은 Pod 주석에 설정되지 않습니다.
 
- 다음 명령을 실행하여 YAML 파일을 적용합니다. - oc apply -f nad-cvlan100.yaml - $ oc apply -f nad-cvlan100.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
 
검증
- 다음 절차에 따라 노드에서 QinQ가 활성화되어 있는지 확인합니다. - 다음 콘텐츠를 사용하여 - test-qinq-pod.yaml이라는 파일을 생성합니다.- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 다음 명령을 실행하여 테스트 Pod를 생성합니다. - oc create -f test-qinq-pod.yaml - $ oc create -f test-qinq-pod.yaml- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- Pod가 있는 대상 노드에서 디버그 세션에 들어가 다음 명령을 실행하여 네트워크 인터페이스 - ens5f0에 대한 정보를 표시합니다.- oc debug node/my-cluster-node -- bash -c "ip link show ens5f0" - $ oc debug node/my-cluster-node -- bash -c "ip link show ens5f0"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 출력 예 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - 출력의 - vlan 프로토콜 802.1adID는 인터페이스가 프로토콜 802.1ad(QinQ)를 사용하여 VLAN 태그 지정을 지원함을 나타냅니다. VLAN ID는 171입니다.
 
