第5章 VRF へのセカンダリーネットワークの割り当て


クラスター管理者は、CNI VRF プラグインを使用して、Virtual Routing and Forwarding (VRF) ドメインのセカンダリーネットワークを設定できます。このプラグインが作成する仮想ネットワークは、指定した物理インターフェイスに関連付けられます。

VRF インスタンスでセカンダリーネットワークを使用すると、次の利点があります。

ワークロードの分離
セカンダリーネットワークの VRF インスタンスを設定して、ワークロードトラフィックを分離します。
セキュリティーの向上
VRF ドメイン内の分離されたネットワークパスを通じて、セキュリティーを向上させます。
マルチテナンシーのサポート
各テナントの VRF ドメイン内で、一意のルーティングテーブルを使用したネットワークセグメンテーションを通じて、マルチテナントをサポートします。
注記

VRF を使用するアプリケーションは、特定のデバイスに対してバインドする必要があります。一般的な使用方法として、ソケットに SO_BINDTODEVICE オプションを使用できます。SO_BINDTODEVICE オプションは、渡されたインターフェイス名 (例: eth1) で指定されたデバイスにソケットをバインドします。SO_BINDTODEVICE オプションを使用するには、アプリケーションに CAP_NET_RAW 機能が必要です。

ip vrf exec コマンドを使用した VRF の使用は、OpenShift Container Platform Pod ではサポートされません。VRF を使用するには、アプリケーションを VRF インターフェイスに直接バインドします。

5.1. CNI VRF プラグインを使用してセカンダリーネットワークアタッチメントを作成する

Cluster Network Operator (CNO) は、セカンダリーネットワークの定義を管理します。クラスタースコープの Network カスタムリソース(CR)でセカンダリーネットワークを指定する場合、CNO は NetworkAttachmentDefinition CR を自動的に作成します。

注記

Cluster Network Operator が管理する NetworkAttachmentDefinition CR は編集しないでください。これを行うと、セカンダリーネットワーク上のネットワークトラフィックが中断される可能性があります。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてクラスターにログインしている。

手順

  1. 追加のネットワーク割り当て用の Network CR を作成し、セカンダリーネットワークの rawCNIConfig 設定を挿入します。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": [
            {
              "type": "macvlan",
              "master": "eth1",
              "ipam": {
                  "type": "static",
                  "addresses": [
                  {
                      "address": "191.168.1.23/24"
                  }
                  ]
              }
            },
            {
              "type": "vrf",
              "vrfname": "vrf-1",
              "table": 1001
            }]
          }'
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    plugins
    リストを指定する必要があります。リストの最初の項目は、VRF ネットワークのベースとなるセカンダリーネットワークである必要があります。一覧の 2 つ目の項目は、VRF プラグイン設定です。
    type
    このパラメーターは、vrf に設定する必要があります。
    vrfname
    インターフェイスが割り当てられている VRF の名前。VRF が Pod に存在しない場合は、CNI は VRF を作成します。
    table

    オプションのパラメーター。ルーティングテーブル ID を指定します。デフォルトで、tableid パラメーターが使用されます。テーブル ID を指定しない場合、CNI は空きルーティングテーブル ID を VRF に割り当てます。

    注記

    VRF は、リソースが netdevice タイプの場合にのみ正常に機能します。

  2. Network リソースを作成します。

    $ oc create -f additional-network-attachment.yaml
    Copy to Clipboard Toggle word wrap
  3. 以下のコマンドを実行して、CNO が NetworkAttachmentDefinition CR を作成していることを確認します。<namespace> を、ネットワーク割り当ての設定時に指定した namespace に置き換えます (例: additional-network-1)。予想される出力には、NAD CR の名前と作成後の経過時間 (分) が表示されます。

    $ oc get network-attachment-definitions -n <namespace>
    Copy to Clipboard Toggle word wrap
    注記

    CNO が CR を作成する前に、遅延が存在する可能性があります。

検証

  1. Pod を作成し、VRF プラグイン設定を含むセカンダリーネットワークに Pod を割り当てます。

    1. 以下の pod-additional-net.yaml ファイルに示されるように、Pod リソースを定義する 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
      Copy to Clipboard Toggle word wrap

      ここでは、以下のようになります。

      name
      VRF プラグイン設定を含むセカンダリーネットワークの名前を指定します。
    2. 次のコマンドを実行して、Pod リソースを作成します。予想される出力には、Pod リソースの名前と作成期間 (分) が表示されます。

      $ oc create -f pod-additional-net.yaml
      Copy to Clipboard Toggle word wrap
  2. Pod のネットワーク割り当てが VRF セカンダリーネットワークに接続されていることを確認します。Pod とのリモートセッションを開始し、次のコマンドを実行します。予想される出力には、VRF インターフェイスの名前とルーティングテーブル内の一意の ID が表示されます。

    $ ip vrf show
    Copy to Clipboard Toggle word wrap
  3. 次のコマンドを入力して、VRF インターフェイスがセカンダリーインターフェイスのコントローラーであることを確認します。

    $ ip link
    Copy to Clipboard Toggle word wrap
    5: net1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master red state UP mode
    Copy to Clipboard Toggle word wrap
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

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

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

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

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

会社概要

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

Theme

© 2025 Red Hat