はじめに

定期的にアップしてきましたOpen Networking(オープンネットワーキング)についての記事も今回で第4回です。本記事ではZero Touch Provisioning(ZTP)について、OcNOSと呼ばれるネットワークOS(NOS)を例に説明します。

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について説明します。

最後に

今回記事で紹介した設定ファイルは、下記お問い合わせフォームよりご連絡いただければ提供しています。また、もしオープンネットワーキングご興味がありましたら、マクニカではオープンネットワーキングを実際に体験し、試験や検証を行える環境をリモートで提供するサービスのご用意もあります。基本構成での検証では無償でご利用可能となっています。より詳細は以下に記載していますので、もしご興味があればご覧ください。

お問い合わせ

ZTPとAnsibleの組み合わせやZTP完了までの全ログなど、本記事に関してご質問などありましたら、以下より問い合わせください。

他のOpen Networking記事

以下「Open Networking Blog 記事一覧」より、Open Networkingに関わる他の記事をご覧いただけます。

Open Networking Blogとは?

さまざまなOpen Networking(オープンネットワーキング)に関わるトピックを分かりやすく説明している技術情報ページです。