NFX150デバイスでのVNFの構成
NFX150デバイスを使用すると、Junosコントロールプレーン(JCP)から仮想ネットワーク機能(VNF)をインスタンス化して管理できます。JCPは、サードパーティーVNFの作成と管理をサポートします。
VNFを設定するには、JCPにログインし、以下のタスクを実行します。
VNFイメージの読み込み
または、NETCONF コマンド file-putを使用して、VNF イメージをロードすることもできます。
遠隔地からデバイスにVNFイメージを読み込むには、 file-copy コマンドを使用するか、 usb-pass-through コマンドを使用してUSBからイメージをコピーします。
USBからVNFイメージをコピーするには、 NFXシリーズデバイスでのUSBからのファイル転送のサポートを参照してください。
または、NETCONF コマンド file-putを使用して、VNF イメージをロードすることもできます。
VNF イメージは /var/public ディレクトリに保存する必要があります。
ブートストラップ設定の準備
bootstrap-config ISOファイルが含まれる接続されたコンフィグドライブを使用して、VNFをブートストラップできます。コンフィグドライブは仮想ドライブで、設定データとともにVNFに関連付けられたCD-ROM、USBドライブ、またはディスクドライブです。構成データは、仮想 CD-ROM、USB ドライブ、またはディスク ドライブを作成する ISO ファイルにバンドルされているファイルまたはフォルダーです。
ブートストラップ構成ファイルには、外部コントローラからVNFにアクセスできるようにし、外部コントローラからのSSH、HTTP、またはHTTPS接続を受け入れて以降のランタイム設定を行うための初期設定が含まれている必要があります。
コンフィグドライブを接続することで、IPアドレス、サブネットマスク、ゲートウェイなどのネットワーク設定をCLI経由でVNFに渡すことができます。設定入力を受信すると、デバイスはブートストラップ設定ISOファイルを生成し、そのファイルをCD-ROM、USBドライブ、またはディスクドライブとしてVNFに添付します。
コンフィグドライブの設定とアタッチの詳細については、 (オプション)VNFにコンフィグドライブをアタッチするを参照してください。
-
システムは、bootstrap-config ISO ファイルを /var/public フォルダに保存します。ファイルが保存されるのは、フォルダ内の使用可能な領域が、ファイル内のコンテンツの合計サイズの 2 倍を超える場合のみです。フォルダ内の使用可能な領域が十分でない場合、設定をコミットしたときにエラーメッセージが表示されます。
-
システムを再起動すると、システムは新しい bootstrap-config ISO ファイルを生成し、既存の ISO ファイルを VNF 上の新しい ISO ファイルに置き換えます。
-
コンフィグドライブは読み取り専用ドライブです。VNFに基づいて、コンフィグドライブを読み取り専用のCD-ROMドライブ、USBドライブ、またはディスクドライブとして指定できます。
コンフィグドライブは、VNF の以下のデータをサポートします。
-
ファイルとしての静的コンテンツ—デバイスはCLIを介して1つ以上のファイルパスを受け取り、これらのファイルをISOイメージに変換して、VNFに接続します。コンフィグドライブは、VNF 設定で複数の静的ファイルをサポートします。
-
Jinja2 テンプレートとパラメーター — Jinja2 パラメーターはキーと値のペアで構成されます。キーはテンプレートで指定され、テンプレートがレンダリングされるときに値がキーを置き換えます。レンダリングされた出力ファイルが ISO イメージに追加され、VNF にアタッチされます。テンプレートのパラメーターの最大数は 256 のキーと値のペアです。コンフィグドライブは、VNF 設定で複数のテンプレートとそのパラメータをサポートします。
手記:コンフィグドライブは Jinja2 テンプレートのみをサポートしています。
-
ディレクトリ—デバイスは特定のディレクトリの内容を受け取り、指定されたフォルダ内のフォルダ構造をISOイメージに変換して、VNFに接続します。コンフィグドライブは 1 つのフォルダのみを受け入れます。そのフォルダが ISO イメージのルートディレクトリになり、後続のすべてのフォルダとファイルが ISO イメージに追加されます。
-
VNF構成には、複数のソーステンプレートとソースファイルを追加できます。
-
VNF 構成に複数のソース テンプレートと 1 つのソース フォルダーを追加するには、ターゲット テンプレート ファイルがソース フォルダー内にある必要があります。
-
VNF 設定に追加できるソース フォルダーは 1 つだけです。
-
2 つの VNF が同じファイル セットを共有する場合、VNF ごとに個別の bootstrap-config ISO ファイルが生成されます。一方の VNF を削除しても、もう一方の VNF には影響しません。
VNF への CPU の割り当て
表 1 は、NFX150 モデルの VNF で使用できる CPU を示しています。
| モデル |
VNF で使用可能な CPU |
|||
|---|---|---|---|---|
| スループットモード |
ハイブリッドモード |
コンピューティングモード |
カスタムモード(フレックスモード) | |
| NFX150-C-S1 |
0 |
1 |
2 |
1 |
| NFX150-C-S1-AE |
0 |
1 |
2 |
1 |
| NFX150-C-S1-AA |
0 |
1 |
2 |
1 |
| NFX150-C-S1E-AE |
0 |
1 |
2 |
1 |
| NFX150-C-S1E-AA |
0 |
1 |
2 |
1 |
| NFX150-S1 |
0 |
2 |
4 |
4 |
| NFX150-S1E |
0 |
2 |
4 |
4 |
デバイスのパフォーマンス モードを変更する場合は、VNF の CPU の可用性を確認することをお勧めします。
デバイスの現在の動作モードを確認するには:
user@host> show vmhost mode
詳細については、 show vmhost modeを参照してください。
CPU の可用性とそのステータスを確認するには、次の手順を実行します。
user@host> show system visibility cpu
詳細については、「 show system visibility cpu」を参照してください。
VNF に必要な仮想 CPU の数を指定するには、以下のコマンドを使用します。
物理 CPU 番号は、数値または範囲のいずれかです。デフォルトでは、VNF には物理 CPU に固定されていない 1 つの仮想 CPU が割り当てられます。
VNF が 実行 状態のときは、VNF の CPU 構成を変更できません。変更を有効にするには、VNF を再起動します。
Junos OS リリース 22.1 R1 以降では、次のコマンドを使用して、エミュレーターを特定の物理 CPU に固定できます。
user@host# set virtual-network-functions vnf-name emulator physical-cpu cpu-range
エミュレーターのピン留めに CPU 0 またはオフラインの CPU を使用することはできません。エミュレーターを特定の物理 CPU に固定しない場合、QEMU は自動的に仮想 CPU に固定します。エミュレータの固定に対する変更は、実行中のVNFでただちに反映されます。
VNF CPU のハードウェア仮想化またはハードウェア アクセラレーションを有効にするには、次のコマンドを入力します。
user@host# set virtual-network-functions vnf-name virtual-cpu features hardware-virtualization
VNF のメモリ割り当て
Junos OS リリース 18.1R1 を実行する NFX150 デバイスでは、VNF の hugepages の有効化と hugepages の事前予約はサポートされていません。
表 2 は、NFX150 モデルの VNF で使用可能なメモリを示しています。
NFX150-C-S1およびNFX150-C-S1Eモデルでは、巨大なページは必要ありません。
| モデル |
使用可能な合計メモリ | コンピューティングモード、ハイブリッドモード、スループットモードでのVNF使用のためのメモリ/巨大ページの可用性 |
カスタムモード(フレックスモード)でのVNF使用におけるメモリ/膨大なページの可用性 |
|---|---|---|---|
| NFX150-C-S1 |
8 | 1GB |
2GB |
| NFX150-C-S1-AE |
8 | 1GB |
2GB |
| NFX150-C-S1-AA |
8 | 1GB |
2GB |
| NFX150-C-S1E-AE |
16 | 9GB |
10GB |
| NFX150-C-S1E-AA |
16 | 9GB |
10GB |
| NFX150-S1 |
16 | 7 1Gの巨大さ |
8 1Gの巨大なページ |
| NFX150-S1E |
32 | 23 1GのHugepages |
24 1GのHugepages |
VNF が使用できる最大プライマリ メモリを指定するには、以下のコマンドを入力します。
user@host# set virtual-network-functions vnf-name memory size size
VNF が実行状態の場合、VNF のメモリ構成を変更することはできません。変更を有効にするには、VNF を再起動します。
(オプション)VNFにコンフィグドライブを接続する
ファイルとテンプレートをコンフィグドライブに追加します。
コンフィグドライブにディレクトリを追加します。
-
コンフィグドライブに追加するソースディレクトリを指定します。
user@host# set virtual-network-functions vnf-name config-data source directory directory-name
-
コンフィグドライブに追加するデバイス名とタイプを指定します。
user@host# set virtual-network-functions vnf-name config-data target device-name target-device-name
user@host# set virtual-network-functions vnf-name config-data target device-type device-type user@host# set virtual-network-functions vnf-name config-data target device-label device-label
-
設定をコミットします。
user@host# commit
コンフィグドライブが VNF に接続されているかどうかを確認するには、 show system visibility vnf コマンド出力メッセージの VNF Disk Information セクションを参照してください。
VNFのインターフェイスとVLANの設定
VNFインターフェイスを設定し、VNFインターフェイスを仮想機能にマッピングし、インターフェイスを物理NICポート、管理インターフェイス、またはVLANに接続して、VLAN IDを割り当て、トラストモードを有効にすることができます。
Junos OSリリース21.3R1、21.2R2、21.2R1、21.1R2、20.4R3より前は、SR-IOV VNFインターフェイスを設定し、VLAN IDを割り当てる手順は次のとおりです。
user@host# set virtual-network-functions vnf-name interfaces vnf-interface-name mapping interface physical-interface-name virtual-function vlan-id vlan-id
Junos OSリリース21.3R1、21.2R2、21.2R1、21.1R2、20.4R3以降、SR-IOV VNFインターフェイスの設定、VLAN IDの割り当て、トラストモードの有効化の手順は次のとおりです。
VNF インターフェイスを仮想関数にマッピングするには:
user@host# set virtual-network-functions vnf-name interfaces vnf-interface-name mapping interface physical-interface-name
SR-IOV 仮想機能を使用して VNF インターフェイスを物理 NIC ポートに接続し、VLAN ID を割り当てるには、以下を行います。
user@host# set virtual-network-functions vnf-name interfaces vnf-interface-name mapping interface virtual-function vlan-id vlan-id
vlan-id はポートの VLAN ID で、オプションの値です。
信頼モードを有効にするには:
user@host# set virtual-network-functions vnf-name interfaces vnf-interface-name mapping interface virtual-function trust
-
信頼モードは、Junos OSリリース21.3R1、21.2R2、21.2R1、21.1R2、20.4R3のNFXシリーズデバイスでサポートされています。
-
VNF SR-IOV インターフェイスで信頼モードを有効にすると、VNF インターフェイスは無作為検出モードになります。
VNF インターフェイスを VLAN に接続するには:
-
VLANを作成します。
user@host# set vmhost vlan vlan-name
-
VNF インターフェイスを VLAN に接続します。
user@host# set virtual-network-functions vnf-name interfaces interface-name mapping vlan members list-of-vlans [mode trunk|access]
VNFインターフェイスは、1つ以上の物理インターフェイスにマッピングできます。仮想ポートピア(VPP)機能を設定することで、この機能を有効にできます。VNF の OVS インターフェイスと 1 つ以上のフロントパネルインターフェイスの間にマッピングを設定できます。マッピングされたすべての物理インターフェイスが非アクティブの場合、VNFインターフェイスは非アクティブになります。マッピングされた物理インターフェイスの少なくとも1つがアクティブであっても、VNFインターフェイスはアクティブになります。
-
VNFインターフェイスが非アクティブでも、マッピングされた物理インターフェイスは非アクティブになりません。
-
トラストモードをサポートしていないソフトウェアイメージを、トラストモードをサポートするイメージにアップグレードする前に、設定からすべてのVNFインターフェイスから仮想機能へのマッピングを削除することをお勧めします。
-
トラストモードをサポートするソフトウェアイメージを、トラストモードをサポートしないイメージにダウングレードする前に、設定からすべてのVNFインターフェイスから仮想機能へのマッピングを削除する必要があります。それ以外の場合、デバイスはダウングレード後に 記憶喪失 状態になります。
VNF へのインターフェイスは OVS ポートであり、このマッピングは構成で定義されます。アクションをトリガーする前にマッピング ルールで複数の物理ポートを表示できる場合、VPP 機能を構成することで、複数の冗長物理リンクを管理できます。
VNF仮想インターフェイスとJCP物理インターフェイス(ge-0/0/x およびxe-0/0/x)間のマッピングを設定できます。1 つの仮想インターフェイスを 1 つ以上の物理インターフェイスにマッピングできます。VNF仮想インターフェイスをマッピングできる物理インターフェイスの数に制限はありません。VNF 仮想インターフェイスをすべての物理インターフェイスにマッピングすることも、複数の VNF インターフェイスを単一の物理インターフェイスにマッピングすることもできます。
VPP を設定するには、次の手順に従います。
root@host# set virtual-network-functions vnf-name interfaces interface-name mapping peer-interfaces physical-interface-name
例えば:
root@host# set virtual-network-functions centos1 interfaces eth2 mapping peer-interfaces ge-0/0/6
ピア インターフェイスのマッピングを表示するには、 show system visibility vnf vnf-name コマンドを実行します。
-
VNF に接続されているインターフェイスは、VNF が再起動されても維持されます。
-
VNFがホットプラグをサポートしている場合は、VNFの実行中にインターフェイスを接続できます。それ以外の場合は、インターフェイスを追加してから VNF を再起動する必要があります。
-
VNF の実行中に VNF インターフェイスのマッピングを変更することはできません。
deny-forwarding CLI オプションを使用すると、VNF インターフェイスによるトラフィックの送受信を防止できます。
クロスコネクトの一部であるインターフェイスで deny-forwarding オプションが有効になっている場合、クロスコネクトステータスがダウンし、すべてのトラフィックがドロップされます。
set virtual-network-options vnf-name interface interface-name forwarding-options deny-forwarding
VNFインターフェイスのターゲットPCIアドレスを指定するには:
user@host# set virtual-network-functions vnf-name interfaces interface-name pci-address target-pci-address
ターゲットPCIアドレスを使用して、VNF内のインターフェイスの名前を変更したり、再編成したりできます。
たとえば、LinuxベースのVNFでは、VNF内でudevルールを使用して、PCIアドレスに基づいてインターフェイスに名前を付けることができます。
-
ターゲット PCI アドレス文字列は、次の形式にする必要があります。
0000:00:<slot:>:0これは domain:bus:slot:function の値です。slot の値は、VNF インターフェイスごとに異なる必要があります。domain、bus、および function の値は 0 でなければなりません。 -
VNFの実行中に、VNFインターフェイスのターゲットPCIアドレスを変更することはできません。
VNF インターフェイスを削除するには、次の手順を実行します。
user@host# delete virtual-network-functions vnf-name interfaces interface-name user@host# commit
-
VNFインターフェイスを削除するには、VNFを停止し、インターフェイスを削除してから、VNFを再起動する必要があります。
-
仮想機能をアタッチまたはデタッチした後、変更を有効にするには、VNF を再起動する必要があります。
-
eth0 と eth1 は、内部ネットワークとアウトオブバンド管理ネットワークに接続されたデフォルトの VNF インターフェイス用に予約されています。そのため、設定可能なVNFインターフェイス名はeth2から始まります。
-
VNF内では、ゲストOSの命名規則に基づき、インターフェイス名が異なる場合があります。JCPで設定されたVNFインターフェイスは、VNF内で同じ順序で表示されない場合があります。
-
ターゲットPCIアドレスを使用して、JCPで構成されているVNFインターフェイスにマッピングする必要があり、それに応じて名前を付ける必要があります。
VNFストレージデバイスの設定
NFX150は、VNFに対して次のストレージオプションをサポートしています。
-
CD-ROM
-
ディスク
-
USB
仮想 CD を追加したり、仮想 CD のソースファイルを更新するには、次のコマンドを入力します。
user@host# set virtual-network-functions vnf-name storage device-name type cdrom source file file-name
有効なデバイス名は、hdx、sdx、または vdx の形式で指定できます。たとえば、hdb、sdc、vdb などです。
仮想USBストレージデバイスを追加するには、次のコマンドを入力します。
user@host# set virtual-network-functions vnf-name storage device-name type usb source file file-name
追加のハード ディスクを接続するには、次のコマンドを入力します。
user@host# set virtual-network-functions vnf-name storage device-name type disk [bus-type virtio | ide] [file-type raw | qcow2] source file file-name
VNF から仮想 CD、USB ストレージ デバイス、またはハード ディスクを削除するには、以下のコマンドを入力します。
user@host# delete virtual-network-functions vnf-name storage device-name
-
VNF から CD をアタッチまたはデタッチした後、変更を有効にするには、デバイスを再起動する必要があります。デバイスがVNF内で使用中の場合、CDのデタッチ操作は失敗します。
-
VNFは、1つの仮想CD、1つの仮想USBストレージデバイス、複数の仮想ハードディスクをサポートします。
-
VNF が 実行 状態の状態で、CD または USB ストレージ デバイス内のソース ファイルを更新できます。
-
ソースファイルは /var/public ディレクトリに保存し、そのファイルにはすべてのユーザーに対する読み取りおよび書き込み権限が必要です。
VNF のインスタンス化
VNF名を設定し、イメージのパスを指定することで、VNFをインスタンス化できます。
イメージでVNFをインスタンス化すると、デフォルトで2つのVNFインターフェイスが追加されます。これらのインターフェイスは、管理および内部ネットワークに必要です。0000:00:03:0 や 0000:00:04:0 などのターゲットの PCI(Peripheral Component Interconnect)アドレスは、これらのインターフェイス用に予約されています。
-
イメージを使用して VNF をインスタンス化するには、次の手順を実行します。
手記:Qcow2 および Raw イメージタイプのみがサポートされています。
user@host# set virtual-network-functions vnf-name image file-path user@host# set virtual-network-functions vnf-name image image-type image-type user@host# commit
手記:VNFを設定する際、vnf1、vnf2など、vnfn形式のVNF名は使用しないでください。このような名前を含む設定はコミットに失敗します。
-
(オプション)VNF の UUID を指定するには、次の手順を実行します。
user@host# set virtual-network-functions vnf-name [uuid vnf-uuid]
uuidはオプションのパラメータであり、システムがVNFにUUIDを割り当てられるようにすることをお勧めします。
イメージ設定を保存してコミットした後は、イメージ設定を変更することはできません。VNF のイメージを変更するには、VNF を削除してから再度作成する必要があります。
VNFが正常にインスタンス化されたことを確認
次のコマンドを使用して、VNF が正常にインスタンス化されたことを確認します。
user@host> show virtual-network-functions ID Name State Liveliness -------------------------------------------------------------------------------- 1 vjunos0 Running alive 2 centos1 Running alive 3 centos2 Running alive 11057 LTE Running alive
VNF の [Liveliness ] 出力フィールドは、VNF の IP アドレスが内部管理ネットワーク経由で到達可能か不可能かを示します。ライブ性ブリッジのデフォルト IP アドレスは 192.0.2.1/24 です。