メモのページ - チラシの裏メモ 3枚目

通信技術や気になった事を黙々とメモし続ける

Juniper vRRをVirtualBoxで動かす

2016/11/26初稿、2021/9/23修正、2021/12/19再修正
VirutalBoxのゲスト機の設定を少し修正しただけで"普通に"デプロイ出来るようになった為、当記事の内容を大幅に修正。ただし、ゲスト機のJuniper vRRは最新版ではなく初稿当時2016年11月に利用していたバージョン14.2R7.5をそのまま使用した。


Juniper vRRとは
Juniper Networks社製のルータの仮想アプライアンス版。
Juniper MXシリーズルータなど通信キャリアに導入されているルータのOSであるJunos OSからハードウェア依存な機能を省き、VMware ESXiなど仮想化プラットフォームをサポートするx86なサーバ上で動作する、ソフトウェアルータである。
Juniper vRRはその名のとおりBGPのルートリフレクタに特化した(事になっている)Junos OSの仮想ルータであるが、Juniperのルータとして一応ではあるが一通りの機能は設定や動作が可能である。
Juniper vRRはコントロールプレーン(ネットワークの制御するルーティングエンジン)と最小限のデータプレーン(パケットの転送を制御)が実装されている。

Juniper vRRを導入する事により、以下の効果が期待出来る。
①ネットワーク内の複数の場所でvRRを使用した、低コストなBGPネットワークのスケーラビリティ。
②物理ルータではなくサーバーを使用した、高速で柔軟な展開。
③物理ルータの排除によるラック内のスペースの節約。
④Junos OS搭載ルータおよびJunos OSの検証用環境、教育用環境の低コストな導入。
...とは言うものの、Route Reflector自体はJuniper MX/vMXでも動作可能な上、余程の大規模なネットワークでない限りBGPネットワークのスケーラビリティの恩恵は然程大きくはない為、上記の効果で最も期待出来るのはRoute Reflectorとは縁が薄い④ではないかと思われる。


練習台として最適
ホスト機側の要求スペックが高くなっただけでなく、VCPやVFPに分かれてしまいデプロイが面倒になった最近のJuniper vMXとは異なり、古いバージョンであれば10年程前のPCでもそこそこ軽快に動作するJuniper vRRは、Junos OSのコマンドの学習用環境としては最適ではなかろうか。
vRRという名称であるものの、Juniper MシリーズルータやMXシリーズルータで動かせる基本的な機能は一通り設定および動作は可能なようである。自分の環境ではBGPやOSPF、Firewall Filter、ポリシーの設定や動作が出来ている。HW依存な機能やMXシリーズルータ特有の機能を除き、Juniperルータの入門用や、認定試験JNCIA-Junosの練習用としては充分な物と思われる。
ただし、MPLSや高度なCoSの設定はJuniper vMXの方がサポートしている為、これらの機能の学習も含めるのであればJuniper vMXがお勧めである。

当方の環境
ホストOS:macOS 10.13.6 / MacBook Air 2011 / RAM: 4GB / CPU: Intel Core i7 1.8GHz
Oracle VirtualBox:6.1.24
ゲストOS:Juniper vRR 14.2R7.5
※ダウンロードしたファイルを.img形式から.vmdk形式に変換する為、Windows機も使用した。


Juniper vRRの入手
Juniper Networksのダウンロードサイトにて入手可能。
当記事を書いた2021年9月23日の段階では、最新版は21.2R1である。
ホスト機のスペックが低い、特定の機器の機能ではなくJunos OSのコマンドの検証や練習程度でよい...であれば、動作が軽快なバージョン14.2でも良い。
バージョン15.1以降であれば.vmdkフォーマットのファイルの入手が可能であるが、14.2では.imgフォーマットのファイルしか入手出来ない為、.img形式から.vmdk形式への変換が必要となる。
Windowsの場合、NHCというツールで.vmdkファイルや.vhdファイルに変換し、VBoxManage.exeコマンドでUUIDを付与する必要が有る。
また、VBoxManageコマンドでUUIDを付与する必要が有る。VBoxManageコマンドはVirtualBoxがインストールされていれば、macOSでもWindowsでも実行可能。

まずは、Windows PCにてNHCというツールで.vmdkファイルや.vhdファイルに変換。
次に、VBoxManageコマンドでUUIDの付与。
Windows環境にてVBoxManage.exeコマンドを実行する際は以下のとおり。xxxxxの部分は適宜書き換える。

"C:/VBoxManage保存フォルダへのパス/VBoxManage.exe" internalcommands sethduuid "C:/vmdkファイルの保存フォルダへのパス/xxxxx.vmdk"

macOSの環境にてVBoxManageコマンドを実行する際は以下のとおり。vmdkファイルの保存先のパス以外は、Windows環境と同じである。

$ VBoxManage internalcommands sethduuid "/vmdkファイルの保存ディレクトリへのパス/xxxxx.vmdk"

NHCというツールはmacOS版も有るがWindows版の方が不具合が少ないようで、自分の場合はWindows PCにて変換、UUIDを上記のコマンドで付与し、.vmdkファイルをMacBook Airに移した。
https://euee.web.fc2.com/tool/nhc.html#nhc


VirtualBoxの設定
上記にて変換した.vmdkファイルを使用する。
今回も前記事と同じjinstall64-vrr-14.2R7.5-domestic.vmdkを使用。
Junos OSのバージョンが14.x等のように古いのであれば、仮想RAMは2GB程度確保すれば充分なようだ。
VirtuaoBoxで動かす際は仮想シリアルポートは使用しないが必ず設定する。設定しないとJuniper vRRの起動が完了しない。

[General]
Operating System
Type:BSD
Version:FreeBSD (64-bit)

[System]
Base Memory:2048MB
Processors:2
Boot Order:Hard Disk
Acceleration:VT-x/AMD-V, Nested Paging, PAE/NX

[Display]
Video Memory:16MB
Graphics Controller:VMSVGA
Remote Desktop Server:Disabled
Recording:Disabled

[Storage]
Controller:IDE
IDE Primary Device 0:jinstall64-vrr-14.2R7.5-domestic.vmdk

[Audio]
Disabled

[Network]
Adapter 1:Paravirtualised Network (Bridged Adapter, en0: Wi-Fi (AirPort))
Adapter 2:Paravirtualised Network (Internal Network, 'intnet01')
Adapter 3:Paravirtualised Network (Internal Network, 'intnet02')
Adapter 4:Paravirtualised Network (Internal Network, 'intnet03')
Adapter 1はJuniper vRRのem0インタフェースに、Adapter 2はem1、Adapter 3はem2にそれぞれ割り当てられる。
em0インタフェースは管理用、em1やem2インタフェースはデータネットワーク用に使用される。Juniper vMXやvSRX等に実装されているge-0/0/0等のインタフェースは無い。
VirtualBoxでもう1台の仮想アプライアンス、例えばVyOSをデプロイしBGPの設定をする事により、同一ホスト機の中で、Juniper vRRとVyOSとの間でBGPピアを貼る事が出来る。
その際は、BGPピアを貼るインタフェースの設定はJuniper vRRとVyOSとの間で合わせる。例えば上記の設定でJuniper vRR側でAdapter 2を使用しVyOSとの間でBGPピアを貼りたい場合は、VyOS側もAttached toはInternal Network(日本語版の場合は内部ネットワーク)を選択し、Nameはintnet01に書き換える。

[Ports]
Serial Port
Enable Serial Portにチェックを入れる
Port Number:COM1
Port Mode:TCP
Connect to existing pipe/socketにチェックを入れない
Path/Address:10001
上記で述べたとおり、仮想シリアルポートは使用しないものの必ず設定する。
Port ModeはTCPを選択。Path/Address欄のポート番号は何でも良いが、何かしらの値を入れないと起動が完了しない。


デプロイ開始
VirtualBox Managerウインドウ内上側の緑色の三角印をクリックし、Juniper vRRのデプロイを開始。
起動ログは出力されないが、デプロイ開始後6〜7分程度でいきなりポツンとログインプロンプトが出力される。ここでJuniper vRRの起動が完了した事が分かる。
次回以降は、3分程度で起動が完了する。
デプロイ完了後、rootでログインする。
cliコマンドを打ってJunos OSのCLIに移行し、続いてconfigureコマンドを打って設定モードに入る。
そこでユーザアカウントの作成、em0インタフェースにIPアドレスの設定、sshを有効にすれば、iTerm2等のターミナルツールからsshでログインする事が可能になる。

以下は、SSHログイン後に実行したshow versionとshow chassis hardwareコマンドの出力内容である。
ログインユーザhogehogeとホスト名juniperは、テキトーに付けたものである。

hogehoge@juniper> show version
Hostname: juniper
Model: vrr
Junos: 14.2R7.5
JUNOS Base OS Software Suite [14.2R7.5]
JUNOS Base OS boot [14.2R7.5]
JUNOS Crypto Software Suite [14.2R7.5]
JUNOS Online Documentation [14.2R7.5]
JUNOS 64-bit Kernel Software Suite [14.2R7.5]
JUNOS platform Software Suite [14.2R7.5]
JUNOS Routing Software Suite [14.2R7.5]
JUNOS Runtime Software Suite [14.2R7.5]
JUNOS 64-bit Runtime Software Suite [14.2R7.5]

hogehoge@juniper>

hogehoge@juniper> show chassis hardware
Hardware inventory:
Item             Version  Part number  Serial number     Description
Chassis                                ************      VRR
Midplane
Routing Engine                                           RE-VRR

hogehoge@juniper>



その他
・Juniper vRRはGNS3やEVE-NG等の環境で動作させる事が一般的なようでVirtualBoxで動作させている事に言及しているブログやサイトをあまり見ない為、当記事にて書き残した。
・入手しやすい上に日本語で書かれた導入手順や設定手順等の資料が多いJuniper vSRXをJunos OSの入門用として使用している例が多いようだが、通信キャリアのバックボーンルータやルートリフレクタ等の学習目的であれば、Juniper vRRは選択肢としては最適かと思われる。
・下記に挙げた参考書は全て所有しているが、取り掛かりは「Junos 設定&管理 完全Bible」で詳細はオライリーの「Juniper MX Series」が無難かと思われる。
しかし今はJuniperのサイト内のドキュメントが充実している。下記のリンク先「Virtual Route Reflector (vRR) Documentation」に載っている資料で充分かも。補完資料としてはオライリーの「Juniper MX Series」推し。


参照サイト
https://www.juniper.net/us/en.html Juniper Networks
https://www.juniper.net/documentation/product/us/en/virtual-route-reflector Virtual Route Reflector (vRR) Documentation
https://support.juniper.net/support/downloads/?p=vrr Juniper vRR Download
https://www.juniper.net/documentation/jp/ja/software/junos/bgp/index.html BGPユーザーガイド(JP)
https://www.juniper.net/documentation/jnbooks/us/en/day-one-books#cat=all_books Day One Books
https://www.infraeye.com/study/studyz12.html Juniper - JUNOS BGPの設定 (ネットワークエンジニアとして)

参考書一覧
https://www.amazon.co.jp/dp/1491932724/ Juniper MX Series
https://www.amazon.co.jp/dp/4774146064/ Junos 設定&管理 完全Bible
https://www.amazon.co.jp/dp/4822212807/ はじめてのJUNOS
https://www.amazon.co.jp/dp/0782140718/ JNCIA: Juniper Networks Certified Internet Associate Study Guide