はじめに
この記事は、MicroAd Advent Calendar 2017の16日目の記事です。
MicroAdでは、ホワイトボックススイッチとCumulus Linuxを使ってネットワークの一部を構成しています。
今日から何回かに分けて、構築した際の設定方法などを少し公開します。
今回は、Cumulus Linuxの導入部分を書いていきます。
自動化している箇所も、あえて手動での設定方法を書いてますが、
今後の記事で自動化についても書いていく予定です。
完成予定図
- Spine-Leaf間は、10Gを4本束ねて40Gbpsで接続
- Spine-Leaf間は、eBGP(unnumberd)で設定
- メンテナンス性を考慮しLeaf01,02とLeaf03,04でセットとし、サーバのNICをbondingする
必要なもの
- ホワイトボックススイッチ(6台)
- Cumulus Linuxのライセンス
- ネットワークケーブル
- 設置する場所
インストール
インストール環境の準備
DHCPサーバを使って、Cumulus Linuxをネットワークインストールする環境の準備します
LinuxをPXEインストールする際には、DHCP+TFTPが必要ですが、
ONIEは後述するDHCPのオプションに従ってOSイメージをHTTPダウンロード可能です。
その為、インストール環境で必要なものはDHCPサーバとHTTPサーバのみです。
HTTPサーバの設定
設定方法は割愛します。この後配置するCumulus Linuxのイメージが
HTTPでダウンロードできるようになっていればOKです。
Cumulus Linuxイメージを配置
Cumulus Linuxのイメージを[ダウンロードサイト](https://cumulusnetworks.com/downloads/#product=Cumulus Linux)から落としてきます。
※事前にアカウントを作成しておく必要があります。
ONIEでインストールする場合、ファイル名を”onie-installer-x86_64”にして
ファイルをHTTPでダウンロードできる場所に保存します。
/var/www/html/cumulus/os/onie-installer-x86_64
DHCPサーバの設定
dhcpd.confの設定を行い、Cumulusインストール用のオプションを追記しておきます。
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のインストール
ここまでの準備ができていればインストールは簡単
- スイッチのマネージメントポートをDHCPサーバと同じセグメントのネットワークに接続します
- 電源ON!あとは待つだけ!
- DHCPサーバからIPを取得して、オプションで設定したURLからOSをダウンロード
- インストーラーがイメージを展開(インストール)して、勝手に再起動
インストールが完了すると、デフォルトで”cumulus”ユーザでログイン可能です。
デフォルトのパスワードは”CumulusLinux!”になっています。
管理者権限が必要な場合はsudoで対応できるように初期状態では設定されています。
また、ライセンスを投入するまではフロントのポートは接続できません。
設定
基本的な設定
この部分はDebian系の設定方法と同じです。
設定をスクリプト化して、DHCPのオプション項目でインストール時に読み込ませることも可能です。
スクリプト化と具体的な設定方法は次回以降で記述します。
マネージメントポートの設定
まずはマネージメントポートの設定を行います。
マネージメントポートは、eth0として認識されるので、
/etc/network/interfacesファイルを編集してeth0の記述を行うことで設定できます。
cumulus@cumulus$ sudo vi /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を変更しておきます。
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を起動します
### 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
cumulus@spine01$ sudo /etc/init.d/ntp restart
cumulus@spine01$ sudo systemctl restart ntp.service
resolv.confの設定
resolv.confにnameserverのIPアドレスを設定します
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のセットアップについての記事を書いていく予定です。