Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Ubuntu KVM および libvirtd サーバー BMS 環境

手順と推奨事項は、 Ubuntu 20.04.x のインストールに有効であり、Ubuntu 22.04.x でも機能する可能性があります。LACP ブリッジのサポートについては、Ubuntu 16.04 は「 Linux ブリッジと VM インターフェイスの VM 作成後の変更」の章で使用されている調整をサポートしていないことがわかっています。

導入前の準備

オプション: KVM/QEMU をまだインストールしていない場合はインストールします

以下のコマンドは、KVM ハイパーバイザーのインストール方法と必要なチェックの実行方法を示しています。ルートディレクトリを使用していることを確認してください。

オプション:DHCPサーバーでbr0-bridgeを作成します

インストールが完了すると、ハイパーバイザーは192.168.122.0/24プレフィックスにデフォルトの virbr0 Linuxブリッジを自動的に作成します。このブリッジは、残りのネットワーク インターフェイスを NAT から発信し、DHCP サーバーのリースを管理します。OOB 管理用に vJunos-switch VM fxp0 インターフェイスを接続できます。このデフォルトのvirbr0 Linuxブリッジの制限は、DHCPリース配布物がランダムで予測できないことです。

ラボ サーバー用に、追加の br0 Linux ブリッジを作成することをお勧めします。このLinuxブリッジは、192.168.10.0/24プレフィックスを使用して同じものをコピーするために、外部インターフェイスをNATする必要があります。

DHCP を使用して fxp0 の vEX スイッチに固定 IP を割り当て、スイッチに SSH 接続できるようにしました。標準の virbr0-bridge は、192.168.122.0/24 の範囲からランダムな IP アドレスを割り当てます。代わりに、単純なDHCPサーバーを作成して、br0 Linuxブリッジ上の既知のMACアドレスに192.168.10.0/24の範囲で静的リースを提供します。次に、最初のインターフェイスの MAC アドレスの 1 つを使用して vJunos-switch 仮想マシンを起動し、定義済みの IP アドレスを fxp0 インターフェイスに割り当てます。

Linuxブリッジを作成してVM間のネットワークリンクをシミュレートする

vJunos スイッチ仮想マシンの fxp0 インターフェイスを接続する場合は、デフォルトの virbr0 または新しい br0 Linux ブリッジを使用します。他のすべてのリンクには新しいブリッジが必要なため、デバイス間に仮想リンクを作成します。この例では、ブリッジ名は Junos OS インターフェイスの命名規則をコピーしようとします。

vJunosスイッチのJunos OSデフォルト設定

次の主な理由により、vJunosスイッチ仮想マシンの起動時に実行されるカスタムJunos OS設定を含める必要がある場合があります。

  • Juniper Apstraなどの管理システムがログインするための既知のパスワードで、root/スーパーバイザーアカウントを作成します。これにより、ローカルのDHCPサーバーがカスタマイズされた設定をプッシュする必要がなくなり、SSHログインをサポートしてデバッグが向上します。
  • Mist Cloudに採用設定を適用して、新しいスイッチがインベントリに表示されるようにします。
  • 新しいラボの開始時に、以前のラボから既存の有効な設定を読み込みます。

カスタマイズされた工場出荷時デフォルト

以下は、以下の構成でファイル juniper.conf を作成する際にロードする最小Junos OS構成の例です。

  • ユーザー名=root
  • パスワード=ABC123
  • fxp.0からDHCPリースを取得する予定です
  • すべてのインターフェイスでLLDPを有効にする

オプション:Mist Cloudに採用するJunos OS設定の追加

このステップでは、Junos OS設定を追加して、スイッチがMist Cloudに自動的に表示されるようにします。

  1. [Organization -> Inventory] に移動します。

    A screenshot of a blue screen Description automatically generated

  2. [スイッチ(Switches)] を選択し、[スイッチの採用(Adopt Switches)] をクリックします。

  3. [ クリップボードにコピー] をクリックします。

    A screenshot of a computer Description automatically generated

  4. 任意のエディターから adopt-template.txt ファイルを開き、収集した情報をこのファイルに貼り付けます。次に、ファイルを保存して閉じます。
    手記:

    同じMist Cloud導入コードを使用して、同じ組織内のすべてのスイッチをオンボーディングすることができます。

  5. テンプレートを使用して情報を変換し、別の Junos OS 設定形式で変更します。まず、bash シェル コマンドを使用して、ファイル adopt-template.txt から 5 つの変数を抽出する必要があります。

このステップでは、set コマンドに依存しない Junos OS 設定を追加し直します。

VM の Junos OS 設定による仮想ディスクの作成

  1. vJunos-switchサポートサイトから make-config.sh 元のbashスクリプトを使用して、カスタム設定を読み込むためのHDイメージを作成します。

    A screenshot of a computer Description automatically generated

  2. リンクからイメージをダウンロードします。たとえば、「 https://webdownload.juniper.net/swdl/dl/anon/site/1/record/168885.html」のように入力します。

    画像が見つからない場合は、以下のコピーを使用してください。

  3. make-config.sh を使用して、カスタマイズした構成を含む qcow2-Image を作成します。
  4. KVM VM の最終宛先に構成イメージをコピーします。
  5. 新しい vJunos-switch VM を作成する際は、以下に示す太字の線を VM virt-install 設定に挿入します。例は 、Proxmox仮想環境の章で説明されています。

virt-install CLI を使用した vJunos-switch VM の導入

vJunosスイッチ仮想マシンごとに、システムが書き込むためのベースイメージのコピーが個別に必要です。以下の設定では、KVMバッキングファイル方式を使用して、元のイメージから変更して読み取り、変更してイメージを作成します。この方法では、VM の起動が高速化され、ストレージが節約されます。場合によっては、ファイルを /etc/libvirt/qemu.conf 変更して、自分自身をユーザーおよびグループとして追加する必要があります。次に、 sudo systemctl restart libvirtd を実行してこの機能を使用します。

バックアップ ファイルでは、常に各 VM のイメージをコピーできる必要があります。

最後に、以下の構成で、太字のパラメータを変更せずに、vJunos-switch 仮想マシンを正常に起動できます。VM の最初のイーサネット インターフェイスは常に fxp0 です。MAC アドレスを設定し、静的 DHCP リースとして 192.168.10.201 を割り当てるように DHCP サーバーを構成したら、後でリモート シェルを直接起動できます。

virt-manager GUI を使用した vJunos-switch VM の導入

virt-manager GUI を使用して vJunos-switch をインストールする場合、いくつかの XML ベースの設定ファイルを手動で変更する必要があります。そのため、GUIはこのVMに何のメリットも提供しません。

  1. 次に示すように、ベース VM のコピーを libvirtd イメージディレクトリーに取得します。

  2. [ Edit -> Preferences ] をクリックして、この VM の XML 編集を有効にします

    A screenshot of a computer Description automatically generated

  3. [ XML 編集を有効にする] を選択します。

    A screenshot of a computer Description automatically generated

  4. [File] -> [New Virtual Machine] を選択します。

    A screenshot of a computer Description automatically generated

  5. [インストール用に既存のディスクイメージをインポート]を選択します。

    A screenshot of a computer Description automatically generated

  6. [ 参照] をクリックします。

    A screenshot of a virtual machine Description automatically generated

  7. コピーした画像を選択し、[ ボリュームの選択]をクリックします。

    A screenshot of a computer Description automatically generated

  8. [OS の 一般的なデフォルト ] を選択し、[ 進む] をクリックします。

    A screenshot of a computer Description automatically generated

  9. [+] をクリックして構成します。
    • メモリ=5120
    • CPU=4

    A screenshot of a computer Description automatically generated

  10. 次に、次のように構成します。
    1. 名前=spine1
    2. [ インストール前に構成をカスタマイズする] を選択します。
    3. 今のところ、 [仮想ネットワーク 'br0network': NAT ] を選択します。最初のインターフェイス(fxp0)のネットワーク選択は、NAT ネットワークである必要があります。
    4. 終了」をクリックします。

      A screenshot of a computer Description automatically generated

  11. [ CPU] をクリックします。

    ホストCPUが設定されています。[ XML ] をクリックすると、他のオプションは必要ないため、後で構成を変更できます。

    A screenshot of a computer Description automatically generated

  12. 最初のインターフェイスのデバイスモデルを virtio に変更します。

    A screenshot of a computer Description automatically generated

  13. インターフェイスの add 関数を使用して新しいネットワーク インターフェイスを追加し、次のように構成します。
    • ネットワークソース=Bridge ge000
    • チェックを外す=MAC address
    • デバイスモデル=virtio

    A screenshot of a computer Description automatically generated

  14. ステップ13を繰り返して、ネットワークソースBridge ge001, Bridge ge002Bridge ge003.を追加します

    A computer screen shot of a computer Description automatically generated

    A screenshot of a computer Description automatically generated

    A screenshot of a computer Description automatically generated

  15. 必要に応じて、下図で黄色でハイライトされているデフォルトのインターフェイスとオプションは、vJunosスイッチ仮想マシンに必要ないため、削除できます。

    A screenshot of a computer Description automatically generated

  16. [OS 情報] を選択し、次に [編集する XML] を選択します。以下に示すように、<os></os>の間のすべてを削除し、強調表示された行に置き換えます。置き換えられた構成では、仮想マシンが vMX としてではなく vEX9214 として動作するように、特別な BIOS コマンドが指示されます。

    A screenshot of a computer Description automatically generated

    1. 以下に示すように、次の設定を挿入します。

      置き換えられた設定は、下の図で黄色で強調表示されています。

      A screenshot of a computer Description automatically generated

    2. 上の図に示すように、 <cpu から次の設定を挿入します。

      置き換えられた設定は、下の図で黄色で強調表示されています。

      A screenshot of a computer program Description automatically generated

  17. 「適用」をクリックし、「インストールの開始」をクリックします。

インストール プロセスには 3 分かかる場合があり、VM のログインを求められます。

A screenshot of a computer Description automatically generated

LinuxブリッジとVMインターフェイス VM作成後の変更

VM の起動後、インターフェイスと Linux ブリッジの構成を変更する必要があります。「 展開前の準備」の章のデフォルト設定で作成したブリッジは、EVPN VXLAN ファブリックに適用できます。

デフォルトのLinuxブリッジは以下をサポートしていません。

  • LLDPメッセージトランスポート、つまり、リンクネイバーは表示されません。
  • LACP 802.3ad メッセージ転送のため、LAG の構築ができません。
  • MTU が大きいため、VXLAN メッセージのフラグメント化が発生する。VXLAN を使用する場合、ファブリックの MTU は、接続されているクライアントよりも 50 バイト以上大きい必要があります。接続されているデスクトップ仮想マシンとすべてのファブリック リンクを、同じデフォルト MTU が 1500 で、トランスポート リンクは常に 50 バイトを追加します。ICMP Pingなどの小さなパケットはうまく機能しますが、クライアントが1500バイトの完全なMTUを使用する場合は機能しません。
  • 802.1X 有線クライアント認証はブロックされます。

そのため、これらの機能をサポートするには、VM の作成後に仮想インターフェイスと Linux ブリッジを変更する必要があります。この変更により、仮想EVPN VXLANファブリックをスムーズに構築できます。

  1. 次のコマンドを使用して bash スクリプトを作成し、必要なすべての機能を実行します。
  2. 以下の設定をコピーしてエディターに貼り付けます。次に、保存して閉じます。
  3. このスクリプトをデモ VM で実行すると、変更の適用に必要なコマンドを監視できます。

特定のインターフェイスでアップグレードされていないMTUについて、意図的に警告を発しています。この警告は、Linux ブリッジの MTU が、接続されているネットワーク インターフェイスの中で常に最小であることを意味します。したがって、単一のブリッジに接続されているすべてのインターフェイスをアップグレードしてください。それ以外の場合、MTUの変更は実装されません。

手記:

このスクリプトは、VM の最初のインターフェイス (通常は fxp0) を意図的にアップグレードしません。このインターフェースを含める場合は、2 行目を「virsh domiflist $1 |tail -n +3 > /tmp/vmbridgelist.txt" です。

手記:

Linuxブリッジの調整は、Ubuntu20.04以降でのみ機能します。

オプション: KVM サーバーの最適化

Ultra Kernel Samepage マージ カーネル

ウルトラカーネルをサポートするカーネルを使用すると、複数のvJunosスイッチ仮想マシンを起動するときに、標準のKSMサポートと比較して30〜40%のメモリを節約できます。これは、ラボや、デフォルトでこのカーネルを含むEVE-NGなどのシステムにとって有益です。上位カーネルをサポートしていないUbuntu 20.04.xでシステムが動作している場合は、次の構成を使用して、公式のGitHubリポジトリからそのようなカーネルをビルドできます。

手記:

BIOSでセキュアブートが無効になっていることを確認します。そうでない場合、署名されていないカーネルはロードされません。

  1. ブラウザに 「https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/focal/refs/ 」と入力します。
    1. 通常の 5.4.x カーネルがサーバーにインストールされている場合は、次のコマンドを実行します。

    2. ハードウェア使用可能スタック (HWE) をサポートする 5.15.x などの新しいカーネルがサーバーにインストールされている場合は、次のコマンドを実行します。
  2. カーネルのバージョンに関係なく、次の構成に進み、USKM カーネルをビルドしてインストールします。
  3. サーバーが再び起動したら、新しいカーネルで実行されているかどうかを確認します。

セキュリティの緩和策をオフにする

手記:

サーバーが運用環境にある場合、またはインターネット経由でアクセス可能な場合は、これらの手順は避けてください。セキュリティ チェックを修正して、ラボの CPU パフォーマンスを向上させることができます。警告が表示されます。

CPU パフォーマンスの 20% の損失を回避するには、メルトダウン/スペクターの脆弱性に対するすべての軽減策を無効にします。このサーバーは、異なるユーザーからの VM をホストしません。ラボ内のすべての VM を管理し、それが一般に提供されている実稼働グレードのシステムではないため、セキュリティよりもパフォーマンスが優先されます。