eve-ngをサーバにBare Installしてみる

# 自己紹介

こんにちは。hiratairaと申します。
現在インフラエンジニアをしておりますが、将来のためにネットワークの勉強をしております。
今回、大規模なネットワークのラボ環境を作る目的でeve-ngのBare Installを試してみました。

※2020/4時点の内容となります。今後バージョン変更等で有効な情報でなくなる可能性があります。

# Bare Installとは

eve-ngを利用する際のインストール方式が大きく分けて３種類ある。
Bare Installとは物理サーバにUbuntuをインストールした後、eve-ngのソフトウェアをインストールする方法。

（eve-ngで使用する主なインストール方式)
①VMwareなどのハイパーバイザー上のゲストOSとしてインストールして使用する
②GCP（Google Cloud Platform）上に構築し使用する
③Bare Install　→今回の方式

#Bare Installにした理由

今回の要件は下記
・個人利用
・極力サーバの全リソースをeve-ng向けに使いたい
・なるべく安くあげたい

上記①〜③のどれにするか検討

①について
ESXiの無償版（vSphere Hypervisor）はゲストOSに割り当て可能なメモリ、CPUの最大リソースが貧弱なため要件を満たさない。
有償版（VMware vSphere ESXi）はライセンスが高額、無償期間が60日間利用できるが腰を据えて使うことを考えるとどうかと思い断念。

②について
敷居が高そうなので断念。お金がどのくらいかかるかわからないし。

結果、③Bare Installでやってみることにしました。

#準備したもの

・HPE DL360pGen8 (8C Xeon E5-2690 2.90GHz×2/128GB/300G×1/RAID (P420i))
　SSD 400GB x 2
　2世代前の中古、ヤフオクで購入
・eve-ng Professional Edition（有償版)
　【参照】 https://www.eve-ng.net/
　今回は有償版を使用しましたが、基本的な機能は無償版(Community Edition)と相違ない模様
・インターネット接続環境
　（Ubuntuのアップグレードはインターネット経由で実施）

#表示画面例
・eve-ngのサンプル画面（適当にマシンを並べました）と、右下にはhtopコマンドのCPU,メモリの使用状況を示したものを紹介。
　htopコマンドの結果から32CPUと128GBのメモリの負荷状況が確認できる。
　限界まで試していないが、かなりの台数を使った検証が可能。

<img width="1439" alt="sample2.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158956/554a0379-882b-6535-fd2a-603a3747054e.png">

#インストール手順

・eve-ngの公式サイトの手順を元にインストールを行う。
　https://www.eve-ng.net/index.php/documentation/installation/bare-install/
　英語でしたが、Google Chromeの画面右クリックで「日本語に翻訳」など使って乗り切る。

　現時点のeve-ngインストールは下記のような流れで実施
　Phase 1. Ubuntu 16.04.6 をインストール
　Phase 2. Ubuntu上にてeve-ng向けの事前設定
　Phase ３と4. eve-ngインストール

#インストール時、想定外だったこと

【想定外１】
　使用したサーバ(DL360p Gen8)はUbuntu 16を正式サポートしておらず、しかも普通にUbuntu 16をインストールすると正常にブートしないという複数の事例があるらしい（ネット調べ）。
　結果的に古いバージョンのUbuntu14をインストールした後、Ubuntu16にアップグレードすることで問題なくインストールできた。
　使用するサーバが、Ubuntu 16をサポートしているのか、メーカサイトなどで予め確認することを推奨。

　HPE社の「システム構成図」「Support and Certification Matrix」を見ると、 DL360p Gen8がサポートしているUbuntuはバージョン12および14のみと書いている。
　　https://www.hpe.com/content/dam/hpe/shared-publishing/images-norend/jp/pdf/system/dl360pgen8.pdf
　　https://techlibrary.hpe.com/us/en/enterprise/servers/supportmatrix/ubuntu.aspx

　Ubuntu 14.04LTSから16.04LTSにアップデートする手順
　https://robonostone.blogspot.jp/2016/05/ubuntu1604lts.html

【想定外２】
　下記のように物理IFがethXXのインターフェイス名で存在し、pnet0にIPアドレスが割り当てられて、pnet0のIPアドレスあてにWebアクセスすることで、eve-ngへの操作ができるようになるが、インストール直後は、ethXXのインターフェイスが存在せず、代わりに「emXX」というインターフェイスが表示されその上、pnet0のIPアドレスが何も割り当てられていない状態になっていた。
<img width="894" alt="pnet0.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158956/8fc91fc0-590e-0965-7fc8-a1a98d3635cf.png">
これは最近のUbuntuの仕様で、デフォルトではethXX以外の不明な名称が割り当てられるようになったことが原因。

/etc/default/grubの設定変更にて従来のethXXの表示に戻すことが可能。
<img width="322" alt="etcdefaultgrub.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158956/41bf8460-cc98-2a05-1318-74e3ccd28861.png">
GRUB_CMDLINE_LINUXの行を探す。
![before.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158956/b72f0599-ec5d-4255-3814-7619e8ae341a.png)
下記のように「net.ifnames=0 biosdevname=0」を追加する。
![after.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/158956/37dc3247-8d59-fb98-e6f4-a966acaefdbe.png)
その後再起動を行うとインターフェイスのステータスが想定通りに戻り、eve-ngへのアクセスが可能となった。

# 終わりに

クライアントPCにeve-ngをインストールして使っていた時は常にPCの性能の限界が気になっていたのですが、サーバにインストールすることで、気にする必要がなくなり、様々な環境の検証ができるようになりました。
学習用に会社で使わなくなった中古のサーバに入れてみるとか、在宅での検証用として使用するなどで有効活用できそうな気がします。