5장. VRF에 보조 네트워크 할당
클러스터 관리자는 CNI VRF 플러그인을 사용하여 VRF(가상 라우팅 및 전달) 도메인에 대한 보조 네트워크를 구성할 수 있습니다. 이 플러그인이 생성하는 가상 네트워크는 사용자가 지정하는 물리적 인터페이스와 연결됩니다.
VRF 인스턴스에서 보조 네트워크를 사용하면 다음과 같은 이점이 있습니다.
- 워크로드 격리
- 보조 네트워크에 대한 VRF 인스턴스를 구성하여 워크로드 트래픽을 분리합니다.
- 보안 개선
- VRF 도메인의 격리된 네트워크 경로를 통해 보안을 강화합니다.
- 멀티 테넌시 지원
- 각 테넌트에 대해 VRF 도메인의 고유한 라우팅 테이블을 사용하여 네트워크 분할을 통해 멀티 테넌시를 지원합니다.
VRF를 사용하는 애플리케이션은 특정 장치에 바인딩해야 합니다. 일반적인 사용은 소켓에 SO_BINDTODEVICE 옵션을 사용하는 것입니다. SO_BINDTODEVICE 옵션은 소켓을 전달된 인터페이스 이름(예: eth1 )에 지정된 장치에 바인딩합니다. SO_BINDTODEVICE 옵션을 사용하려면 애플리케이션에 CAP_NET_RAW 기능이 있어야 합니다.
OpenShift Container Platform Pod에서는 ip vrf exec 명령을 통해 VRF를 사용할 수 없습니다. VRF를 사용하려면 애플리케이션을 VRF 인터페이스에 직접 바인딩합니다.
5.1. CNI VRF 플러그인으로 보조 네트워크 연결 생성 링크 복사링크가 클립보드에 복사되었습니다!
CNO(Cluster Network Operator)는 보조 네트워크 정의를 관리합니다. 클러스터 범위 네트워크 CR(사용자 정의 리소스)에서 보조 네트워크를 지정하면 CNO가 CR을 자동으로 생성합니다.
Network AttachmentDefinition
CNO가 관리하는 NetworkAttachmentDefinition CR을 편집하지 마십시오. 이렇게 하면 보조 네트워크의 네트워크 트래픽이 중단될 수 있습니다.
사전 요구 사항
-
OpenShift CLI(
oc)를 설치합니다. -
cluster-admin권한이 있는 사용자로 클러스터에 로그인합니다.
프로세스
추가
네트워크연결에 대한 네트워크 CR을 생성하고 보조 네트워크에 대한rawCNIConfig구성을 삽입합니다.additional-network-attachment.yaml파일로 저장합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
plugins- 목록을 지정해야 합니다. 목록의 첫 번째 항목은 VRF 네트워크를 기반으로 하는 보조 네트워크여야 합니다. 목록의 두 번째 항목은 VRF 플러그인 구성입니다.
type-
이 매개변수를
vrf로 설정해야 합니다. vrfname- 인터페이스가 할당된 VRF의 이름입니다. Pod에 VRF가 없으면 CNI에서 VRF를 생성합니다.
표선택적 매개변수입니다. 라우팅 테이블 ID를 지정합니다. 기본적으로
tableid매개변수가 사용됩니다. 테이블 ID를 지정하지 않으면 CNI에서 무료 라우팅 테이블 ID를 VRF에 할당합니다.참고VRF는 리소스의 유형이
netdevice인 경우에만 올바르게 작동합니다.
Network리소스를 생성합니다.oc create -f additional-network-attachment.yaml
$ oc create -f additional-network-attachment.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow CNO가 다음 명령을 실행하여
NetworkAttachmentDefinitionCR을 생성했는지 확인합니다.<namespace>를 네트워크 연결을 구성할 때 지정한 네임스페이스(예:additional-network-1)로 바꿉니다. 예상되는 출력에는 CryostatD CR의 이름과 생성 기간이 분 단위로 표시됩니다.oc get network-attachment-definitions -n <namespace>
$ oc get network-attachment-definitions -n <namespace>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 참고CNO가 CR을 생성하기 전에 지연이 존재할 수 있습니다.
검증
Pod를 생성하고 VRF 플러그인 구성이 포함된 보조 네트워크에 Pod를 할당합니다.
다음
pod-additional-net.yaml파일에 설명된 대로Pod리소스를 정의하는 YAML 파일을 생성합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow 다음과 같습니다.
name- VRF 플러그인 구성을 포함하는 보조 네트워크의 이름을 지정합니다.
다음 명령을 실행하여
Pod리소스를 생성합니다. 예상되는 출력에는Pod리소스의 이름과 생성 기간이 분 단위로 표시됩니다.oc create -f pod-additional-net.yaml
$ oc create -f pod-additional-net.yamlCopy to Clipboard Copied! Toggle word wrap Toggle overflow
pod 네트워크 연결이 VRF 보조 네트워크에 연결되는지 확인합니다. Pod로 원격 세션을 시작하고 다음 명령을 실행합니다. 예상되는 출력에는 라우팅 테이블에 VRF 인터페이스의 이름과 고유 ID가 표시됩니다.
ip vrf show
$ ip vrf showCopy to Clipboard Copied! Toggle word wrap Toggle overflow 다음 명령을 입력하여 VRF 인터페이스가 보조 인터페이스의 컨트롤러인지 확인합니다.
ip link
$ ip linkCopy to Clipboard Copied! Toggle word wrap Toggle overflow 5: net1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master red state UP mode
5: net1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master red state UP modeCopy to Clipboard Copied! Toggle word wrap Toggle overflow