21.10. 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 인터페이스에 직접 바인딩합니다.

21.10.1. CNI VRF 플러그인으로 추가 네트워크 연결 생성

CNO(Cluster Network Operator)는 추가 네트워크 정의를 관리합니다. 생성할 추가 네트워크를 지정하면 CNO가 NetworkAttachmentDefinition CR(사용자 정의 리소스)을 자동으로 생성합니다.

참고

CNO가 관리하는 NetworkAttachmentDefinition CR을 편집하지 마십시오. 편집하면 추가 네트워크의 네트워크 트래픽이 중단될 수 있습니다.

CNI VRF 플러그인으로 추가 네트워크 연결을 생성하려면 다음 절차를 수행합니다.

사전 요구 사항

  • OpenShift Container Platform CLI, oc를 설치합니다.
  • cluster-admin 권한이 있는 사용자로 OpenShift 클러스터에 로그인합니다.

프로세스

  1. 추가 Network 연결에 사용할 네트워크 CR(사용자 정의 리소스)을 생성하고 다음 예제 CR과 같이 추가 네트워크의 rawCNIConfig 구성을 삽입합니다. YAML을 additional-network-attachment.yaml 파일로 저장합니다.

    apiVersion: operator.openshift.io/v1
    kind: Network
    metadata:
      name: cluster
    spec:
      additionalNetworks:
        - name: test-network-1
          namespace: additional-network-1
          type: Raw
          rawCNIConfig: '{
            "cniVersion": "0.3.1",
            "name": "macvlan-vrf",
            "plugins": [  1
            {
              "type": "macvlan",
              "master": "eth1",
              "ipam": {
                  "type": "static",
                  "addresses": [
                  {
                      "address": "191.168.1.23/24"
                  }
                  ]
              }
            },
            {
              "type": "vrf", 2
              "vrfname": "vrf-1",  3
              "table": 1001   4
            }]
          }'
    1
    plugins는 목록이어야 합니다. 목록의 첫 번째 항목은 VRF 네트워크를 기반으로 하는 보조 네트워크여야 합니다. 목록의 두 번째 항목은 VRF 플러그인 구성입니다.
    2
    typevrf로 설정해야 합니다.
    3
    vrfname은 인터페이스가 할당된 VRF의 이름입니다. 포드에 없는 경우 생성됩니다.
    4
    선택 사항: table은 라우팅 테이블 ID입니다. 기본적으로 tableid 매개변수가 사용됩니다. 지정하지 않으면 CNI에서 무료 라우팅 테이블 ID를 VRF에 할당합니다.
    참고

    VRF는 리소스의 유형이 netdevice인 경우에만 올바르게 작동합니다.

  2. Network 리소스를 생성합니다.

    $ oc create -f additional-network-attachment.yaml
  3. CNO가 다음 명령을 실행하여 NetworkAttachmentDefinition CR을 생성했는지 확인합니다. <namespace>를 네트워크 연결을 구성할 때 지정한 네임스페이스(예: additional-network-1)로 바꿉니다.

    $ oc get network-attachment-definitions -n <namespace>

    출력 예

    NAME                       AGE
    additional-network-1       14m

    참고

    CNO가 CR을 생성하기 전에 지연이 발생할 수 있습니다.

검증

  1. pod를 생성하고 VRF 인스턴스를 사용하여 추가 네트워크에 할당합니다.

    1. Pod 리소스를 정의하는 YAML 파일을 생성합니다.

      pod-additional-net.yaml 파일 예

      apiVersion: v1
      kind: Pod
      metadata:
       name: pod-additional-net
       annotations:
         k8s.v1.cni.cncf.io/networks: '[
             {
                     "name": "test-network-1" 1
             }
       ]'
      spec:
       containers:
       - name: example-pod-1
         command: ["/bin/bash", "-c", "sleep 9000000"]
         image: centos:8

      1
      VRF 인스턴스를 사용하여 추가 네트워크의 이름을 지정합니다.
    2. 다음 명령을 실행하여 Pod 리소스를 생성합니다.

      $ oc create -f pod-additional-net.yaml

      출력 예

      pod/test-pod created

  2. 포드 네트워크 연결이 VRF 추가 네트워크에 연결되어 있는지 확인합니다. Pod로 원격 세션을 시작하고 다음 명령을 실행합니다.

    $ ip vrf show

    출력 예

    Name              Table
    -----------------------
    vrf-1             1001

  3. VRF 인터페이스가 추가 인터페이스의 컨트롤러인지 확인합니다.

    $ ip link

    출력 예

    5: net1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master red state UP mode

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.