初心者でもできるホワイトボックススイッチの構築自動化とその設定方法 ~ZTP x OcNOS~

はじめに
定期的にアップしてきましたOpen Networking(オープンネットワーキング)についての記事も今回で第4回です。本記事ではZero Touch Provisioning(ZTP)について、OcNOSと呼ばれるネットワークOS(NOS)を例に説明します。
他にもOpen Networkingに関わる記事がありますので、以下「記事一覧はこちら」からご興味のある記事をご覧ください。
OcNOSとは?
OcNOSとは、IP Infusion社が提供するホワイトボックススイッチ専用の商用版NOSです。同社がスイッチやルーターなどのネットワーク機器ベンダーに提供する組み込みソフトウェアのZebOSをベースに開発されたものになります。
豊富な機能や品質・信頼性はそのままに、ネットワークエンジニアが使い慣れたコマンド体系をサポートしているため、従来のネットワーク構成や運用を変えずにコストメリット(CAPEX・OPEXの削減)やオープンネットワーキングの自由度・優位性を実現します。
OcNOSはZebOSの基本的なL2/L3機能に加えて、VXLANやMPLS機能などの幅広いプロトコルをサポートしています。エンタープライズからサービスプロバイダーまで様々なネットワーク用途に応じた複数のソフトウェアパッケージを用意しており、ユーザーは用途に応じて最適なパッケージを選択できます。
ZTPとは?
まずはZTPの概要について説明します。
ZTPとは、Switchなどの機器を導入したいネットワークへ接続し、電源を入れるだけで自動的に設定が行われ、使用できるようになるメカニズムを指します。
従来は、Switchなどの機器を利用する場合、管理者がOSを最新版にアップデートし、初期設定や運用環境に合わせた設定作業を行う必要がありました。
ZTPの場合は、管理者がOSや設定データをあらかじめ用意しておき、機器を運用環境に接続すると、自動的に用意したOSのダウンロードと設定データを参照して設定作業が行われます。これによって管理者が各機器に行う設定作業が削減され、時間とコストの削減が見込めます。
ZTP処理の流れ
続いて、ZTPによって設定作業が完了するまでの処理の流れを説明します。
今回は下記の様な簡易的なネットワーク構成を一例に、Switchの設定が完了するまでの流れを説明します。

簡易的なネットワーク構成図
はじめに、SwitchのマネジメントポートにNetwork = 192.168.0.0/24のLANケーブルを接続した状態で起動します。
起動すると、SwitchはDHCP Requestを行います(構成図の①)。
DHCP ServerはSwitchからのDHCP Requestに対してAckを返答します(構成図の②)。
この時にIPアドレスだけでなく、NOS image fileやLicense、Config fileの保存場所をあわせて返答します。
今回の場合は、Web(HTTP) Serverが保存場所となっているため、Web Serverに置かれているNOS image fileやLicenseなどのURLを返答しています。
次にSwitchはWeb Serverへアクセスします(構成図の③)。
そして、Web ServerからNOS image fileやLicense、Config fileをダウンロードします(構成図の④)。
最後にダウンロードした各種ファイルをSwitchに適応し、設定作業が完了します。
ZTPの設定 with OcNOS
それでは、いよいよZTPの設定について、OcNOSを例に説明します。
今回のネットワーク構成図は下記になります。Ubuntu Server(version 16.04)上でDHCPとWeb Serverを統一させて動作させます。今回のWeb ServerはHTTPとして動作させます。SwitchはEdgecore社のWhitebox SwitchであるAS7726-32Xを使用し、ZTPによってOcNOS(version 1.3.9)のダウンロードから初期化までの作業を行わせます。

ZTPを使用するネットワーク構成図
DHCP Serverの設定
はじめに、DHCP Serverの設定について説明します。
DHCP ServerはOcNOSのNOS image fileやLicense、Config fileの保存場所(URL)を設定する必要があります。
DHCPパッケージのダウンロード
まずは、DHCP Serverを立てるために、”sudo apt install isc-dhcp-server”コマンドでServerにDHCPのパッケージをダウンロードします。
dhcpd.confの編集(配布するIPアドレス範囲)
次にダウンロードしたパッケージに含まれている/etc/dhcp/dhcpd.confを編集します。
今回、Ubuntu Serverが所属するネットワークは192.168.0.0/24とします。DHCPで配布したいIPアドレスの範囲が192.168.0.41 – 192.168.0.49になるように設定する場合、下記の様に編集します。
subnet 192.168.0.0 netmask 255.255.255.0 {
range 192.168.0.41 192.168.0.49; #割り当てるIPアドレスの範囲
default-lease-time 21600; #クライアントが期限を求めない場合の割り当て期間(秒)
max-lease-time 43200; #クライアントが期限を求めた場合の割り当て期間(秒)
}
dhcpd.confの編集(ファイルの保存場所の記載)
各種ファイルの保存場所の記載については下記の様に編集します。
DHCPのオプションを利用して、HTTP Serverの/var/www/html/配下をURLとして記載します。
default-urlがNOS image file、ocnos-license-urlがLicense、ocnos-provision-urlがConfig fileのURLになります。
ホスト名はユーザーが自由に設定し、hardware ethernetにAS7726-32XのEth0のMACアドレス、fixed-addressにAS7726-32XのEth0に設定したいIPアドレスを記載します。
option ocnos-license-url code 251 = text; #DHCPオプション
option ocnos-provision-url code 250 = text; #DHCPオプション
host AS7726-A { #ホスト名
hardware ethernet 04:f8:f8:XX:XX:XX; #Eth0のMACアドレス
fixed-address 192.168.0.70; #Eth0に設定したいIPアドレス
option default-url = "http://192.168.0.80/ocnos/OcNOS-installer"; #NOS image fileの保存場所
option ocnos-license-url = "http://192.168.0.80/ocnos/license.tar"; #Licenseの保存場所
option ocnos-provision-url = "http://192.168.0.80/ocnos/AS7726-A.conf"; #Config fileの保存場所
}
DHCP Serverの再起動
最後に下記コマンドでisc-dhcp-serverを再起動すれば、DHCP Serverの設定は完了です。
sudo systemctl enable isc-dhcp-server
sudo systemctl restart isc-dhcp-server
HTTP Serverの設定
次に、HTTP Serverの設定を説明します。
Apache2パッケージのダウンロード
まずは、”sudo apt install apache2”コマンドでApache2のパッケージをダウンロードします。
ファイヤーウォールの設定
次に外部からWebポートへのアクセスを許可する必要がありますので、”sudo ufw allow ‘apach’”コマンドでファイヤーウォール設定を行います。
HTTP Serverの再起動
そして、DHCPと同様に下記コマンドでApache2を再起動します。
sudo systemctl enable apache2.service
sudo systemctl restart apache2.service
HTTP Serverへのアクセス確認
最後に再起動したHTTP Server(http://192.168.0.80)にアクセスできるかどうかを確認します。この時、アクセス確認に用いる機器(PCやServerなど)をHTTP Serverと同じネットワークに接続する必要があるので、注意して下さい。
アクセス可能であれば下記のようなApache2の画像が表示されます。

HTTP Serverとして動作していると表示されるApache2
無事にHTTP Serverが動作していることを確認できたら、/var/www/html配下にocnosディレクトリーを作成します。
そして、ocnosディレクトリーにNOS image fileやLicense、Config fileを格納すれば、HTTP Serverの設定は完了です。
Switchの設定
最後にAS7726-32Xの設定についてです。
AS7726-32Xには、ONIEと呼ばれるBootloader兼NOS Install機構が用意されています。AS7726-32Xを起動すると、下記の画像の様な表示が表れて、ONIEが立ち上がります。

ONIEの立ち上がる様子
このONIEがDHCP Serverを探し始め、DHCP ServerへRequestを送信するとZTPを実行し始めるため、ユーザーはAS7726-32Xのマネジメントポートを接続して起動するだけで、設定作業が完了します。
下記の図はONIEがDHCP ServerからLicenseやConfig fileを取得している部分のログになります。

ONIEがDHCP Serverから取得する様子
そのため、AS7726-32Xのマネジメントポート(Eth0)を192.168.0.0/24のネットワークに接続し、AS7726-32Xを起動すれば、あとはZTPによってOcNOS(version 1.3.9)のダウンロードから初期化までの作業が完了します。
また、第2回、第3回にてご紹介しましたAnsibleと組み合わせることが可能です。
ZTPのみではAS7726-32Xの設定を変更したい場合、HTTP Server上のConfigを編集し、AS7726-32Xへ編集したConfigをダウンロードした後に再起動する必要があります。ZTPとAnsibleを組み合わせることでダウンロードと再起動は必要なくなり、リアルタイムでの設定変更が可能になります。
こちらは第7回に詳細な説明が御座いますので、宜しければご参照下さい。
以上がZTPの設定方法になります。次回は本記事でも触れたNOSの一種であるecSONiCについて説明します。
最後に
マクニカではオープンネットワーキングを実際に体験し、試験や検証をおこなえる環境をリモートで提供するサービスのご用意があります。
本サービスでは、ネットワークOSの操作性の検証、様々なメーカーのネットワークOSやホワイトボックススイッチ、光トランシーバーを組み合わせた試験をおこなえます。

リモート検証サービス イメージ図
気軽にオープンネットワーキングの検証をおこなえるサービスとなっており、基本構成での利用は無償になっています。
ご利用可能なネットワークOSやホワイトボックススイッチについて、具体的なユースケース、またお申し込み方法はダウンロード資料よりご確認いただけます。資料は下記「マクニカ ネットワークOS リモート検証サービス」よりアンケートにご回答いただきますとご案内メールに記載されているURLよりダウンロードができます。
こんな方がリモート検証サービスを利用しています。

実際に利用いただいた方の声をご紹介します。
古河ネットワークソリューション株式会社 様
「昨今リモートのサービス環境が増えていますが、その中でも評価機材へのアクセス性が良く好印象でした。
ご提供頂いた資料も分かり易く、目的とした検証を円滑に進めることができました。」
資料一覧はこちら
マクニカが取り扱う製品のご紹介のほか、
BGPクロスネットワーク自動構築ファイルやネットワーク運用試験評価レポートなど、オープンネットワーキングに関する資料を掲載しております。
詳細はこちら
製品ページTopへ
IP Infusion
オープンネットワーキングプロバイダのマーケットリーダーとして、キャリア、サービスプロバイダ、データセンターなど600社以上のお客様に信頼性の高いネットワークソリューションを提供しています。
お問い合わせ・資料請求
株式会社マクニカ Edgecore Networks 担当
- TEL:045-470-9831
- E-mail:projectmonstar@macnica.co.jp
平日 9:00~17:00