8.4. Linux ブリッジネットワークへの仮想マシンの割り当て


デフォルトでは、OpenShift Virtualization は単一の内部 Pod ネットワークとともにインストールされます。

次の手順を実行すると、Linux ブリッジネットワークを作成し、そのネットワークに仮想マシンを接続できます。

  1. Linux ブリッジノードネットワーク設定ポリシー (NNCP) を作成します。
  2. Web コンソール または コマンドライン を使用して、Linux ブリッジネットワークアタッチメント定義 (NAD) を作成します。
  3. Web コンソール または コマンドライン を使用して、NAD を認識するように仮想マシンを設定します。

8.4.1. Linux ブリッジ NNCP の作成

Linux ブリッジネットワークの NodeNetworkConfigurationPolicy (NNCP) マニフェストを作成できます。

前提条件

  • Kubernetes NMState Operator がインストールされている。

手順

  • NodeNetworkConfigurationPolicy マニフェストを作成します。この例には、独自の情報で置き換える必要のあるサンプルの値が含まれます。

    apiVersion: nmstate.io/v1
    kind: NodeNetworkConfigurationPolicy
    metadata:
      name: br1-eth1-policy 1
    spec:
      desiredState:
        interfaces:
          - name: br1 2
            description: Linux bridge with eth1 as a port 3
            type: linux-bridge 4
            state: up 5
            ipv4:
              enabled: false 6
            bridge:
              options:
                stp:
                  enabled: false 7
              port:
                - name: eth1 8
    1
    ポリシーの名前。
    2
    インターフェイスの名前。
    3
    オプション: 人間が判読できるインターフェイスの説明。
    4
    インターフェイスのタイプ。この例では、ブリッジを作成します。
    5
    作成後のインターフェイスの要求された状態。
    6
    この例では IPv4 を無効にします。
    7
    この例では STP を無効にします。
    8
    ブリッジが接続されているノード NIC。

8.4.2. Linux ブリッジ NAD の作成

OpenShift Container Platform Web コンソールまたはコマンドラインを使用して、Linux ブリッジネットワーク接続定義 (NAD) を作成できます。

8.4.2.1. Web コンソールを使用した Linux ブリッジ NAD の作成

OpenShift Container Platform Web コンソールを使用して、ネットワーク接続定義 (NAD) を作成して、Pod および仮想マシンに layer-2 ネットワークを提供できます。

Linux ブリッジネットワーク接続定義は、仮想マシンを VLAN に接続するための最も効率的な方法です。

警告

仮想マシンのネットワークアタッチメント定義での IP アドレス管理 (IPAM) の設定はサポートされていません。

手順

  1. Web コンソールで、Networking NetworkAttachmentDefinitions をクリックします。
  2. Create Network Attachment Definition をクリックします。

    注記

    ネットワーク接続定義は Pod または仮想マシンと同じ namespace にある必要があります。

  3. 一意の Name およびオプションの Description を入力します。
  4. Network Type リストから CNV Linux bridge を選択します。
  5. Bridge Name フィールドにブリッジの名前を入力します。
  6. オプション: リソースに VLAN ID が設定されている場合、VLAN Tag Number フィールドに ID 番号を入力します。
  7. オプション: MAC Spoof Check を選択して、MAC スプーフフィルタリングを有効にします。この機能により、Pod を終了するための MAC アドレスを 1 つだけ許可することで、MAC スプーフィング攻撃に対してセキュリティーを確保します。
  8. Create をクリックします。

8.4.2.2. コマンドラインを使用した Linux ブリッジ NAD の作成

コマンドラインを使用してネットワークアタッチメント定義 (NAD) を作成し、Pod および仮想マシンに layer-2 ネットワークを提供できます。

NAD と仮想マシンは同じ namespace に存在する必要があります。

警告

仮想マシンのネットワークアタッチメント定義での IP アドレス管理 (IPAM) の設定はサポートされていません。

前提条件

  • MAC スプーフィングチェックを有効にするには、ノードが nftables をサポートして、nft バイナリーがデプロイされている必要があります。

手順

  1. 次の例のように、仮想マシンを NetworkAttachmentDefinition 設定に追加します。

    apiVersion: "k8s.cni.cncf.io/v1"
    kind: NetworkAttachmentDefinition
    metadata:
      name: bridge-network 1
      annotations:
        k8s.v1.cni.cncf.io/resourceName: bridge.network.kubevirt.io/bridge-interface 2
    spec:
      config: |
        {
          "cniVersion": "0.3.1",
          "name": "bridge-network", 3
          "type": "bridge", 4
          "bridge": "bridge-interface", 5
          "macspoofchk": false, 6
          "vlan": 100, 7
          "preserveDefaultVlan": false 8
        }
    1
    NetworkAttachmentDefinition オブジェクトの名前。
    2
    オプション: ノード選択のアノテーションのキーと値のペア。bridge-interface は一部のノードに設定されるブリッジの名前に一致する必要があります。このアノテーションをネットワーク接続定義に追加する場合、仮想マシンインスタンスは bridge-interface ブリッジが接続されているノードでのみ実行されます。
    3
    設定の名前。設定名をネットワーク接続定義の name 値に一致させることが推奨されます。
    4
    このネットワーク接続定義のネットワークを提供する Container Network Interface (CNI) プラグインの実際の名前。異なる CNI を使用するのでない限り、このフィールドは変更しないでください。
    5
    ノードに設定される Linux ブリッジの名前。
    6
    オプション: MAC スプーフィングチェックを有効にするフラグ。true に設定すると、Pod またはゲストインターフェイスの MAC アドレスを変更できません。この属性により、Pod から出ることができる MAC アドレスは 1 つだけになり、MAC スプーフィング攻撃に対するセキュリティーが確保されます。
    7
    オプション: VLAN タグ。ノードのネットワーク設定ポリシーでは、追加の VLAN 設定は必要ありません。
    8
    オプション: 仮想マシンがデフォルト VLAN 経由でブリッジに接続するかどうかを示します。デフォルト値は true です。
    注記

    Linux ブリッジネットワーク接続定義は、仮想マシンを VLAN に接続するための最も効率的な方法です。

  2. ネットワーク接続定義を作成します。

    $ oc create -f network-attachment-definition.yaml 1
    1
    ここで、network-attachment-definition.yaml はネットワーク接続定義マニフェストのファイル名です。

検証

  • 次のコマンドを実行して、ネットワーク接続定義が作成されたことを確認します。

    $ oc get network-attachment-definition bridge-network

8.4.3. 仮想マシンネットワークインターフェイスの設定

OpenShift Container Platform Web コンソールまたはコマンドラインを使用して、仮想マシンネットワークインターフェイスを設定できます。

8.4.3.1. Web コンソールを使用した仮想マシンネットワークインターフェイスの設定

OpenShift Container Platform Web コンソールを使用して、仮想マシンのネットワークインターフェイスを設定できます。

前提条件

  • ネットワークのネットワーク接続定義を作成しました。

手順

  1. Virtualization VirtualMachines に移動します。
  2. 仮想マシンをクリックして、VirtualMachine details ページを表示します。
  3. Configuration タブで、Network interfaces タブをクリックします。
  4. Add network interface をクリックします。
  5. インターフェイス名を入力し、Network リストからネットワーク接続定義を選択します。
  6. Save をクリックします。
  7. 仮想マシンを再起動して変更を適用します。
ネットワークフィールド
Name説明

Name

ネットワークインターフェイスコントローラーの名前。

モデル

ネットワークインターフェイスコントローラーのモデルを示します。サポートされる値は e1000e および virtio です。

Network

利用可能なネットワーク接続定義のリスト。

利用可能なバインディングメソッドの一覧。ネットワークインターフェイスに適したバインド方法を選択します。

  • デフォルトの Pod ネットワーク: masquerade
  • Linux ブリッジネットワーク: bridge
  • SR-IOV ネットワーク: SR-IOV

MAC Address

ネットワークインターフェイスコントローラーの MAC アドレス。MAC アドレスが指定されていない場合、これは自動的に割り当てられます。

8.4.3.2. コマンドラインを使用した仮想マシンネットワークインターフェイスの設定

コマンドラインを使用して、ブリッジネットワークの仮想マシンネットワークインターフェイスを設定できます。

前提条件

  • 設定を編集する前に仮想マシンをシャットダウンします。実行中の仮想マシンを編集する場合は、変更を有効にするために仮想マシンを再起動する必要があります。

手順

  1. 次の例のように、ブリッジインターフェイスとネットワークアタッチメント定義を仮想マシン設定に追加します。

    apiVersion: kubevirt.io/v1
    kind: VirtualMachine
    metadata:
      name: example-vm
    spec:
      template:
        spec:
          domain:
            devices:
              interfaces:
                - masquerade: {}
                  name: default
                - bridge: {}
                  name: bridge-net 1
    # ...
          networks:
            - name: default
              pod: {}
            - name: bridge-net 2
              multus:
                networkName: a-bridge-network 3
    1
    ブリッジインターフェイスの名前。
    2
    ネットワークの名前。この値は、対応する spec.template.spec.domain.devices.interfaces エントリーの name 値と一致する必要があります。
    3
    ネットワーク接続定義の名前。
  2. 設定を適用します。

    $ oc apply -f example-vm.yaml
  3. オプション: 実行中の仮想マシンを編集している場合は、変更を有効にするためにこれを再起動する必要があります。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.