CumulusLinux
ホワイトボックススイッチ
MicroAdDay 16

Cumulus Linuxを使ったネットワーク構築(導入編)


はじめに

この記事は、MicroAd Advent Calendar 2017の16日目の記事です。

MicroAdでは、ホワイトボックススイッチとCumulus Linuxを使ってネットワークの一部を構成しています。

今日から何回かに分けて、構築した際の設定方法などを少し公開します。

今回は、Cumulus Linuxの導入部分を書いていきます。

自動化している箇所も、あえて手動での設定方法を書いてますが、

今後の記事で自動化についても書いていく予定です。


完成予定図

spine-leaf.jpg


  • Spine-Leaf間は、10Gを4本束ねて40Gbpsで接続

  • Spine-Leaf間は、eBGP(unnumberd)で設定

  • メンテナンス性を考慮しLeaf01,02とLeaf03,04でセットとし、サーバのNICをbondingする


必要なもの


  1. ホワイトボックススイッチ(6台)

  2. Cumulus Linuxのライセンス

  3. ネットワークケーブル

  4. 設置する場所


インストール


インストール環境の準備

DHCPサーバを使って、Cumulus Linuxをネットワークインストールする環境の準備します

LinuxをPXEインストールする際には、DHCP+TFTPが必要ですが、

ONIEは後述するDHCPのオプションに従ってOSイメージをHTTPダウンロード可能です。

その為、インストール環境で必要なものはDHCPサーバとHTTPサーバのみです。


HTTPサーバの設定

設定方法は割愛します。この後配置するCumulus Linuxのイメージが

HTTPでダウンロードできるようになっていればOKです。


Cumulus Linuxイメージを配置

Cumulus Linuxのイメージをダウンロードサイトから落としてきます。

※事前にアカウントを作成しておく必要があります。

ONIEでインストールする場合、ファイル名を”onie-installer-x86_64”にして

ファイルをHTTPでダウンロードできる場所に保存します。


配置例

/var/www/html/cumulus/os/onie-installer-x86_64



DHCPサーバの設定

dhcpd.confの設定を行い、Cumulusインストール用のオプションを追記しておきます。


/etc/dhcp/dhcpd.conf

subnet 10.0.0.0 netmask 255.255.255.0 {

pool {
range 10.0.0.10 10.0.0.240;
}
option default-url = "http://10.0.0.1/cumulus/os/onie-installer-x86_64";

}


optionで、default-urlにイメージファイルのURLを指定するだけです。

設定変更後、dhcpdを再起動して反映させます。


Cumulus Linuxのインストール

ここまでの準備ができていればインストールは簡単


  1. スイッチのマネージメントポートをDHCPサーバと同じセグメントのネットワークに接続します

  2. 電源ON!あとは待つだけ!

  3. DHCPサーバからIPを取得して、オプションで設定したURLからOSをダウンロード

  4. インストーラーがイメージを展開(インストール)して、勝手に再起動

インストールが完了すると、デフォルトで”cumulus”ユーザでログイン可能です。

デフォルトのパスワードは”CumulusLinux!”になっています。

管理者権限が必要な場合はsudoで対応できるように初期状態では設定されています。

また、ライセンスを投入するまではフロントのポートは接続できません。


設定


基本的な設定

この部分はDebian系の設定方法と同じです。

設定をスクリプト化して、DHCPのオプション項目でインストール時に読み込ませることも可能です。

スクリプト化と具体的な設定方法は次回以降で記述します。


マネージメントポートの設定

まずはマネージメントポートの設定を行います。

マネージメントポートは、eth0として認識されるので、

/etc/network/interfacesファイルを編集してeth0の記述を行うことで設定できます。

cumulus@cumulus$ sudo vi /etc/network/interfaces


/etc/network/interfaces

auto eth0

iface eth0
address 10.0.0.10/24
gateway 10.0.0.1

設定を反映

cumulus@cumulus$ sudo ifreload -a


ホスト名の設定


ホスト名をspine01に変更

hostnameコマンドと、/etc/hostnameを変更することでホスト名を変更できます。

cumulus@cumulus$ sudo hostname spine01

再起動後も戻らないように/etc/hostnameを変更しておきます。


/etc/hostname

cumulus@spine01$ echo "spine01" > /etc/hostname



Timezone,NTPの設定


TimezoneをAsia/Tokyo(JST)に変更

ログ等の調査時に、時刻がUTCになってると不便なので、

Timezoneを変更します。

cumulus@spine01$ echo "Asia/Tokyo" > /etc/timezone

cumulus@spine01$ sudo dpkg-reconfigure --frontend noninteractive tzdata


NTPの設定

Timezoneの設定同様に、NTPを設定して時刻同期します

/etc/ntp.confを設定して、ntpdを起動します


/etc/ntp.conf

### Cumulus Switch

driftfile /var/lib/ntp/ntp.drift

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

server 10.0.0.1 iburst

restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopper noquery

restrict 127.0.0.1
restrict ::1



CumulusLinux2.5系の場合

cumulus@spine01$ sudo /etc/init.d/ntp restart



CumulusLinux3.3系の場合

cumulus@spine01$ sudo systemctl restart ntp.service



resolv.confの設定

resolv.confにnameserverのIPアドレスを設定します


resolv.conf

cumulus@spine01$ sudo echo "nameserver 10.0.0.1" > /etc/resolv.conf



ライセンスの投入

ライセンスを投入しないと肝となるswitchdが起動できないので、このタイミングで投入します。

なお、switchdが起動できないと、フロントのポートにはアクセスできません。

ここでは、/root/license.txtにライセンス情報を保存してそのファイルを読み込んでいます。

cumulus@spine01$ sudo cl-license -i /root/license.txt

ここまで設定したらスイッチを再起動

cumulus@spine01$ sudo reboot

再起動すると、switchdが起動してフロントのポートにアクセスできるようになります。


今回のまとめ

今回はCumulus Linuxの導入部分を書いてみました。

基本的にはDebianベースなので、ここまでの基本的な導入部分の設定は、

Linuxに慣れている人なら簡単にセットアップができると思います。

次回は、フロントポートの設定とL2のセットアップについての記事を書いていく予定です。