LoginSignup
18
10

More than 5 years have passed since last update.

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

Last updated at Posted at 2017-12-15

はじめに

この記事は、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のセットアップについての記事を書いていく予定です。

18
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
18
10