今回ご紹介するのは、ネットワーク運用自動化です。 運用自動化と一口にいっても、「初期構築」「設定作業」「運用・保守」とそれぞれフェーズがあります。ここでは「初期構築」の自動化をホワイトボックススイッチで試していきます。Zero Touch Provisioning(ZTP)を使用することで、スイッチの管理ポートにケーブルを接続し、電源をONするだけで初期構築が完了します。ZTPを使えば作業時間を大幅に短縮できますね!
ホワイトボックススイッチのOSインストール方法
ホワイトボックススイッチは、ONIEという各Network OSで共通のブートローダーがインストールされた状態で出荷され、Network OSのインストール、ライセンスの有効化は、ユーザー自身で行います。 インストール方法を詳しく知りたい方はこちらへ
ONIEでZTPインストール(Network OS)
ONIEがサポートしているZTPインストールの手順です。各Network OS共通です。OSインストール後の初期セットアップ自動化
各Network OSがサポートしているZTPの機能を使用し、Network OSのライセンスの有効化と初期設定を自動化する手順です。今回は、Cumulus Linuxを例にご紹介します。
実機で確認
構成

- ホワイトボックススイッチはEdgecore Networks社のAS5812-54X
- Network OSはCumulus Linux
- DHCP Server、WEB Serverは、CentOS 7.4(dhcpd、apache)で構築
dhcpd設定ファイル(/etc/dhcp/dhcpd.conf)
MACアドレス毎に下記DHCPオプションを設定- option 114(default-url): OSインストーラーのロケーション情報
- option 239: ZTPスクリプトのロケーション情報
option cumulus-provision-url code 239 = text;
subnet 192.168.20.0 netmask 255.255.255.0 {
range 192.168.20.10 192.168.20.20;
}
host as5812-1 {
hardware ethernet a8:2b:b5:cc:cb:21;
option default-url = "http://192.168.20.1/cumulus-linux-3.6.1-bcm-amd64.bin";
option cumulus-provision-url "http://192.168.20.1/ztp-demo.sh";
}
ZTPスクリプト(ztp-demo.sh)
テスト用に下記内容のスクリプトを用意しました。- ライセンスの適用
- タイムゾーン設定
- ホストネームの設定
- 管理IP(eth0)の設定
#!/bin/bash
#Load license
sudo cl-license -i http://192.168.20.1/cumulus-license.txt
sudo systemctl restart switchd.service
#Timezone
timedatectl set-timezone Asia/Tokyo
#Initail Setting
net add hostname as5812-54T-2
net add interface eth0 ip address 192.168.100.91/24
net commit
# CUMULUS-AUTOPROVISIONING
exit 0
スクリーンログ
装置を起動します。最初はONIEのメニュー画面です。
DHCPで管理IPを取得すると、自動的にDHCP option 114で通知されたOSインストーラーをダウンロードしているのが分かります。

大分省きますが、OSインストーラーのダウンロードが完了すると、Cumulus Linuxのインストールが開始します。

OSインストール後、loginプロンプトが表示されています。ホストネームはデフォルト設定の「cumulus」です。

しばらく待っていると~、おっ、ホストネームがZTPスクリプトでセットアップした「as5812-54T-2」に切り替わりました。ZTPが完了したようです!

ログインしてタイムゾーンと管理IPアドレスを確認してみます。ZTPスクリプトどおりに設定変更されました。

まとめ
汎用のコンポーネント(DHCP Server、WEB Server)を準備するだけで簡単にZTP環境を構築できました。データセンターなど、構築するスイッチの台数が多い場合、是非使いたい機能ですね!
ホワイトボックススイッチに興味ある方はこちらへ