5.4. all-multicast 모드 정보


특히 rootless 애플리케이션 컨텍스트에서 모든 멀티 캐스트 모드를 활성화하는 것이 중요합니다. 이 모드를 활성화하지 않으면 Pod의 SCC(보안 컨텍스트 제약 조건)에 NET_ADMIN 기능을 부여해야 합니다. NET_ADMIN 기능을 허용하여 Pod 권한을 부여하여 특정 요구 사항을 초과하는 변경을 수행할 수 있는 경우 보안 취약점을 잠재적으로 노출할 수 있습니다.

튜닝 CNI 플러그인은 all-multicast 모드를 포함하여 여러 인터페이스 속성 변경을 지원합니다. 이 모드를 활성화하면 SR-IOV 네트워크 장치에서 구성된 VF(가상 기능)에서 실행되는 애플리케이션에서 동일한 물리적 기능에 연결된 다른 VF의 애플리케이션에서 멀티 캐스트 트래픽을 수신하도록 허용할 수 있습니다.

5.4.1. SR-IOV 네트워크에서 all-multicast 모드 활성화

다음을 통해 SR-IOV 인터페이스에서 all-multicast 모드를 활성화할 수 있습니다.

  • SriovNetwork 리소스의 metaPlugins 매개변수에 튜닝 구성 추가
  • 튜닝 구성에서 allmulti 필드를 true 로 설정

    참고

    신뢰가 활성화된 VF(가상 기능)를 생성해야 합니다.

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

참고

SR-IOV Network Operator가 관리하는 NetworkAttachmentDefinition 사용자 정의 리소스를 편집하지 마십시오. 편집하면 추가 네트워크의 네트워크 트래픽이 중단될 수 있습니다.

이 지침에 따라 SR-IOV 네트워크에서 all-multicast 모드를 활성화합니다.

사전 요구 사항

  • OpenShift Container Platform CLI(oc)가 설치되어 있습니다.
  • cluster-admin 권한이 있는 사용자로 OpenShift Container Platform 클러스터에 로그인되어 있습니다.
  • SR-IOV Network Operator가 설치되어 있습니다.
  • 적절한 SriovNetworkNodePolicy 오브젝트를 구성했습니다.

프로세스

  1. Mellanox ConnectX-5 장치에 대한 SriovNetworkNodePolicy 오브젝트를 정의하는 다음 설정으로 YAML 파일을 생성합니다. YAML 파일을 sriovnetpolicy-mlx.yaml 로 저장합니다.

    apiVersion: sriovnetwork.openshift.io/v1
    kind: SriovNetworkNodePolicy
    metadata:
      name: sriovnetpolicy-mlx
      namespace: openshift-sriov-network-operator
    spec:
      deviceType: netdevice
      nicSelector:
        deviceID: "1017"
        pfNames:
          - ens8f0np0#0-9
        rootDevices:
          - 0000:d8:00.0
        vendor: "15b3"
      nodeSelector:
        feature.node.kubernetes.io/network-sriov.capable: "true"
      numVfs: 10
      priority: 99
      resourceName: resourcemlx
    Copy to Clipboard Toggle word wrap
  2. 선택 사항: SR-IOV 가능 클러스터 노드에 레이블이 지정되지 않은 경우 SriovNetworkNodePolicy.Spec.NodeSelector 라벨을 추가합니다. 노드 레이블 지정에 대한 자세한 내용은 "노드에서 라벨을 업데이트하는 방법 이해"를 참조하십시오.
  3. 다음 명령을 실행하여 SriovNetworkNodePolicy 오브젝트를 생성합니다.

    $ oc create -f sriovnetpolicy-mlx.yaml
    Copy to Clipboard Toggle word wrap

    구성 업데이트를 적용하면 sriov-network-operator 네임스페이스의 모든 Pod가 Running 상태로 자동으로 이동합니다.

  4. 다음 명령을 실행하여 enable-allmulti-test 네임스페이스를 생성합니다.

    $ oc create namespace enable-allmulti-test
    Copy to Clipboard Toggle word wrap
  5. 추가 SR-IOV 네트워크 연결에 대한 SriovNetwork CR(사용자 정의 리소스)을 생성하고 다음 예제 CR YAML과 같이 metaPlugins 구성을 삽입하고 파일을 sriov-enable-all-multicast.yaml 로 저장합니다.

    apiVersion: sriovnetwork.openshift.io/v1
    kind: SriovNetwork
    metadata:
      name: enableallmulti 
    1
    
      namespace: openshift-sriov-network-operator 
    2
    
    spec:
      resourceName: enableallmulti 
    3
    
      networkNamespace: enable-allmulti-test 
    4
    
      ipam: '{ "type": "static" }' 
    5
    
      capabilities: '{ "mac": true, "ips": true }' 
    6
    
      trust: "on" 
    7
    
      metaPlugins : | 
    8
    
        {
          "type": "tuning",
          "capabilities":{
            "mac":true
          },
          "allmulti": true
          }
        }
    Copy to Clipboard Toggle word wrap
    1
    오브젝트의 이름을 지정합니다. SR-IOV Network Operator는 동일한 이름으로 NetworkAttachmentDefinition 오브젝트를 생성합니다.
    2
    SR-IOV Network Operator가 설치된 네임스페이스를 지정합니다.
    3
    이 추가 네트워크에 대한 SR-IOV 하드웨어를 정의하는 SriovNetworkNodePolicy 오브젝트에서 spec.resourceName 매개변수 값을 지정합니다.
    4
    SriovNetwork 오브젝트의 대상 네임스페이스를 지정합니다. 대상 네임스페이스의 포드만 추가 네트워크에 연결할 수 있습니다.
    5
    IPAM CNI 플러그인의 구성 오브젝트를 YAML 블록 스칼라로 지정합니다. 플러그인은 연결 정의에 대한 IP 주소 할당을 관리합니다.
    6
    선택 사항: 추가 네트워크에 대한 기능을 설정합니다. "{"ips": true}" 를 지정하여 IP 주소 지원을 활성화하거나 "{"mac":true}"를 지정하여 MAC 주소 지원을 활성화할 수 있습니다.
    7
    가상 기능의 신뢰 모드를 지정합니다. 이 값을 "on"으로 설정해야 합니다.
    8
    metaPlugins 매개변수를 사용하여 장치에 더 많은 기능을 추가합니다. 이 사용 사례에서 type 필드를 조정 하도록 설정하고 allmulti 필드를 추가하고 true 로 설정합니다.
  6. 다음 명령을 실행하여 SriovNetwork 리소스를 생성합니다.

    $ oc create -f sriov-enable-all-multicast.yaml
    Copy to Clipboard Toggle word wrap

NetworkAttachmentDefinition CR 확인

  • SR-IOV Network Operator가 다음 명령을 실행하여 NetworkAttachmentDefinition CR을 생성했는지 확인합니다.

    $ oc get network-attachment-definitions -n <namespace> 
    1
    Copy to Clipboard Toggle word wrap
    1
    & lt;namespace >를 SriovNetwork 오브젝트에 지정한 networkNamespace 값으로 바꿉니다. 이 예제에서는 enable-allmulti-test 입니다. 예상되는 출력에는 CryostatD CR의 이름과 생성 기간이 분 단위로 표시됩니다.
    참고

    SR-IOV Network Operator가 CR을 생성하기 전에 지연이 발생할 수 있습니다.

  • 다음 명령을 실행하여 SR-IOV 네트워크 리소스에 대한 정보를 표시합니다.

    $ oc get sriovnetwork -n openshift-sriov-network-operator
    Copy to Clipboard Toggle word wrap

추가 SR-IOV 네트워크 연결 확인

튜닝 CNI가 올바르게 구성되어 추가 SR-IOV 네트워크 연결이 연결되었는지 확인하려면 다음 단계를 따르십시오.

  1. Pod CR을 생성합니다. 다음 샘플 YAML을 examplepod.yaml 이라는 파일에 저장합니다.

    apiVersion: v1
    kind: Pod
    metadata:
      name: samplepod
      namespace: enable-allmulti-test
      annotations:
        k8s.v1.cni.cncf.io/networks: |-
          [
            {
              "name": "enableallmulti",  
    1
    
              "mac": "0a:56:0a:83:04:0c", 
    2
    
              "ips": ["10.100.100.200/24"] 
    3
    
           }
          ]
    spec:
      containers:
      - name: podexample
        image: centos
        command: ["/bin/bash", "-c", "sleep INF"]
        securityContext:
          runAsUser: 2000
          runAsGroup: 3000
          allowPrivilegeEscalation: false
          capabilities:
            drop: ["ALL"]
      securityContext:
        runAsNonRoot: true
        seccompProfile:
          type: RuntimeDefault
    Copy to Clipboard Toggle word wrap
    1
    SR-IOV 네트워크 연결 정의 CR의 이름을 지정합니다.
    2
    선택 사항: SR-IOV 네트워크 연결 정의 CR에 정의된 리소스 유형에서 할당된 SR-IOV 장치의 MAC 주소를 지정합니다. 이 기능을 사용하려면 SriovNetwork 오브젝트에 {"mac": true} 도 지정해야 합니다.
    3
    선택 사항: SR-IOV 네트워크 연결 정의 CR에 정의된 리소스 유형에서 할당된 SR-IOV 장치의 IP 주소를 지정합니다. IPv4 및 IPv6 주소가 모두 지원됩니다. 이 기능을 사용하려면 SriovNetwork 오브젝트에 { "ips": true }도 지정해야 합니다.
  2. 다음 명령을 실행하여 Pod CR을 생성합니다.

    $ oc apply -f examplepod.yaml
    Copy to Clipboard Toggle word wrap
  3. 다음 명령을 실행하여 Pod가 생성되었는지 확인합니다.

    $ oc get pod -n enable-allmulti-test
    Copy to Clipboard Toggle word wrap

    출력 예

    NAME       READY   STATUS    RESTARTS   AGE
    samplepod  1/1     Running   0          47s
    Copy to Clipboard Toggle word wrap

  4. 다음 명령을 실행하여 Pod에 로그인합니다.

    $ oc rsh -n enable-allmulti-test samplepod
    Copy to Clipboard Toggle word wrap
  5. 다음 명령을 실행하여 Pod와 관련된 모든 인터페이스를 나열합니다.

    sh-4.4# ip link
    Copy to Clipboard Toggle word wrap

    출력 예

    1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    2: eth0@if22: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 8901 qdisc noqueue state UP mode DEFAULT group default
        link/ether 0a:58:0a:83:00:10 brd ff:ff:ff:ff:ff:ff link-netnsid 0 
    1
    
    3: net1@if24: <BROADCAST,MULTICAST,ALLMULTI,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default
        link/ether ee:9b:66:a4:ec:1d brd ff:ff:ff:ff:ff:ff link-netnsid 0 
    2
    Copy to Clipboard Toggle word wrap

    1
    eth0@if22 는 기본 인터페이스입니다.
    2
    net1@if24 는 all-multicast 모드(ALLMULTI 플래그)를 지원하는 network-attachment-definition으로 구성된 보조 인터페이스입니다.
맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

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

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

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

Red Hat 소개

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

Theme

© 2025 Red Hat