タイ バンコク出張記

先月、初めての海外出張でタイ バンコクを訪れました。

現地での作業自体は簡単なものなのですが、これまで非常に苦しみながら進めてきたプロジェクトの成否が問われる内容で、初めての海外出張に高揚した気持ちはなく、不安や緊張感などを抱えながらの渡航となりました。

f:id:komo-jp:20181111000146j:plain:w500

兵庫出張から帰宅した翌日、休む間もなくタイへ向かいました。

f:id:komo-jp:20181111000301j:plain

プロンポン(Phrom Phong)という駅からほど近い、DoubleTree by Hilton Sukhumvit Bangkokというホテルに滞在しました。

仕事自体は若干課題が残りはしたものの、当初の目的を十分に果たし、プロジェクトを大きく前進させる事ができました。

ホッと安堵した翌日は予備日ということで一日フリーとなったので、観光名所であるワット・ポーとバンコク国立博物館を訪れてきました。

ワット・ポー

まず最初に訪れたのは、バンコク最古の寺院であり、横たわった巨大なお釈迦様でも有名なワット・ポーです。

f:id:komo-jp:20181111000355j:plain:w500

金色の大きなお釈迦様が横になっています。

f:id:komo-jp:20181111000426j:plain

全体像はこんな感じ。

f:id:komo-jp:20181111000458j:plain

お釈迦様の足の裏。見事な螺鈿細工が施されています。

f:id:komo-jp:20181111000536j:plain

小さなコインが沢山入ったカップを買って...

f:id:komo-jp:20181111000607j:plain

108つ並んでいる鉢にコインを入れていきます。煩悩を消滅させるそうです。

f:id:komo-jp:20181111000642j:plain

寺院内には仏塔が立ち並びます。

バンコク国立博物館

f:id:komo-jp:20181111000720j:plain

トゥクトゥクバンコク国立博物館まで移動しました。

f:id:komo-jp:20181111000748j:plain:w500

結構飛ばすし、外が近いし、ちょっと怖い...。

f:id:komo-jp:20181111000821j:plain:w500

タイの至宝を鑑賞。

f:id:komo-jp:20181111000849j:plain

豪華な王様専用の車。説明にはチャリオット(Chariot)と書いてあったと思います。輿のようなイメージを抱いていましたが、戦車のイメージの方が近いのでしょうか。

f:id:komo-jp:20181111000923j:plain

カッコいい守り神。帰国後、調べたのですが、なんという生き物なのか分かりませんでした。館内に説明があったのですが、全く覚えてない...。

食事

せっかくタイに来たのだから、屋台で現地の料理でも食べたかったのですが、いまいち一歩を踏み出すことできずに終わってしまいました...。

日本企業の進出著しいタイ、中でも私が滞在したプロンポン周辺は、日本人のバンコク駐在者が多く住んでいるそうで、街には至るところに日本語の看板を目にすることができました。食事も困らず、結局、日本に居る時と同じようなものばかり食べていました。

f:id:komo-jp:20181111000958j:plain:w500

ホテルでの朝食。美味しい!

f:id:komo-jp:20181111001016j:plain:w500

ホテルの室内にある無料のミネラルウォーター。とても重宝しました。

f:id:komo-jp:20181111001042j:plain:w500

味は日本で食べるものと遜色がありません。

f:id:komo-jp:20181111001122j:plain:w500

たぬきうどんと揚げ出し豆腐。

f:id:komo-jp:20181111001140j:plain:w500

これはセブン-イレブンで買った、タイ米のちょっと辛めのピラフ。気に入って、毎日夜食に食べていました。

帰国して

タイはフィリピンのように英語が通じるイメージを持っていたのですが、日常的に英語が使われている社会ではないという印象でした。とはいえ、ホテルなどの外国人が多く訪れる場所では英語が使われています。海外に行くと、もっとコミュニケーションを取れるように英語の勉強を頑張ろう、という気になりますね。

正直、この出張は億劫に感じていたのですが、現地に着いてからは気力が沸いて、せっかくなので色々と見聞を広めてこようと前向きに臨むことができ、振り返ってみるととても充実した出張となりました。

Hurricane ElectricよりIPv6アドレス割り当て

IHANetでは、BGP4+を用いて、IPv6アドレスでeBGPピアを確立し、相互にIPv6の経路広報を行います。この為、参加者各自が独自にIPv6アドレスの割り当てを受けている必要があります。

色々と情報収集をしたところ、Hurricane ElectricというISPが無償でIPv6アドレスの割り当てを行うIPv6 Tunnel Brokerというサービスを提供していることを知り、さっそく利用してみることにしました。

IPv6 Tunnel Brokerサービスについて

サービスのイメージは、下図の通りです。

IPv4ネットワーク上で、自身のネットワーク(ここではさくらVPS上のVyOS)とHurricane Electricとの間でTunnel(IPv6 over IPv4 )を確立することにより、Hurricane ElectricがIPv6アドレスの割り当てとIPv6ネットワークへの到達性を提供してくれます。

Tunnelインターフェースで利用するIPv6アドレスと、自身のLAN側に割り当てられたIPv6アドレスは、Hurricane Electricより割り当てられたものです(下図の赤字のIPv6アドレス。なお、ここではドキュメント例示用の2001:0db8:を記載している)。IPv6アドレスの/64という広大な空間が個人に対して割り当てられています。

なぜ、無償でIPv6アドレスレンジを提供してくれるのか、それによってHurricane Electricにはどのようなメリットがあるのか等々、どのようなビジネスモデルなのかは不明なのですが、サイトには「Our tunnel service is oriented towards developers and experimenters that want a stable tunnel platform.」との記述があり、IPv6関連の開発者や実験用途向けに無償で提供してくれているようです。

IPv6 Tunnel Brokerの利用手順の詳細は、特に難しい箇所もありませんでしたので割愛します。おおまかな登録手順の流れは、ユーザー登録(名前/住所/電話番号等の情報入力)後、「IPv4 Endpoint (Your side):」という項目に自身のグローバルIPv4アドレスを入力します(今回の例ではさくらVPS上のVyOSに割り当てられたグローバルIPv4アドレス)。以上の必要な情報を入力すると、Tunnelインターフェース及び自身のNWのLAN側で利用できるIPv6アドレスが自動的に割り当てられます。

f:id:komo-jp:20180707162131p:plain

Hurricane Electric Free IPv6 Tunnel Broker

VyOSのIPv6 Tunnel Brokerサービス利用設定

VyOSにてIPv6 Tunnel Brokerサービスを利用する上で必要な設定は、Hurricane Electricと確立するトンネルの設定と、IPv6デフォルトルートを作成したTunnelインターフェース経由とすることのみとなります。

Hurricane Electricでは、利用するNW機器・OS毎に"Example Configurations"を用意してくれています。今回はVyOS用に「Vyatta1 / Ubiquiti EdgeMAX」の"Example Configurations"を利用させて貰う事にします。

以下のコンフィグが"Example Configurations"をそのままコピーしたものです。見ていただくと分かる通り、特に修正すべき箇所はありません。TunnelのローカルIPは自身のさくらVPS上のVyOSに割り当てられたグローバルIPv4アドレスです。リモートIPはHurricane Electricより提示されるグローバルIPv4アドレスです。

configure
edit interfaces tunnel tun0
set encapsulation sit
set local-ip 160.xxx.xxx.xxx
set remote-ip 74.xxx.xxx.xxx
set address 2001:db8:23:4cd::2/64
set description "HE.NET IPv6 Tunnel"
exit
set protocols static interface-route6 ::/0 next-hop-interface tun0
commit

通信確認として、Googleが提供しているIPv6アドレス対応公開DNSサーバ”2001:4860:4860::8888”に対してPingとTracerouteを実行してみた所、今回作成したTunnel0インターフェース経由で無事疎通が取れることを確認できました。

VyOS追加設定

今回、さくらVPS上のVyOSのLAN側セグメントで利用可能なIPv6アドレスがアサインされました(図中の2001:db8:24:4cd::/64)。そのアドレスをVyOSのeth1インターフェースに割り当てることにします。

また、このVyOSはインターネット上に公開されていることから、ログインユーザー名/Password共にデフォルトの"vyos"のままであるのはセキュリティ上、好ましくありません。ログインユーザー名とPasswordも変更することにします。設定完了後、"delete system login user vyos"コマンドで、デフォルトのユーザー"vyos"の削除を忘れずに実行します。

set interfaces ethernet eth1 address 2001:470:24:4cd::1/64

set system login user ユーザー名 authentication plaintext-password パスワード
set system login user ユーザー名 level admin

commit
save

これでIHANet参加の事前準備は完了です。


  1. Vyattaは、Vyatta社によりオープンソースで開発されていたソフトウェアルータです。ブロケードコミュニケーションズシステムによるVyattaの買収後、Vyattaは開発中止となりました。VyOSは、Vyattaの無償版であるVyatta Coreよりフォークされたオープンソースのソフトウェアルータです。

さくらVPSにVyOSインストール

1. さくらのVPS契約

IHANetへの接続形態については色々検討しました。当初、自宅の光回線固定IPアドレスの契約を行い、小型PCを購入しソフトウェアルータを動かす事を考えました。ただ、自宅で小型PC等の機器を24時間365日の連続稼働をさせたくないことや、ひかり電話が使えなくなるという理由で諦めました。

最終的にさくらインターネットVPS(仮想専用サーバー)を契約し、その上でソフトウェアルータを動かす事としました。ちなみにソフトウェアルータとしては、当面の間はVyOSを利用し、その後、CentOS + FRroutingに変えたいと思っています(私のLinuxスキルが向上次第、移行します)。

なお、契約したさくらのVPSは、VyOSが稼働できれば良いので最小構成のモノを選択しました。月額685円で利用できるのでお得感がありますね。

項目 スペック
CPU 仮想1Core
メモリ 512MB
ストレージ 20GB SSD
利用料金 初期費用:1,080円、月額:685円

2. さくらのVPS上でのVyOSインストール

さくらVPSのサイトに記載の案内を読む限りでは、利用可能なOSは事前に用意されている「標準OS」または「カスタムOS」しかないのではないか...と思ったのですが、以下のさくらVPSコントロールパネルの画面イメージの通り、アップロードした任意のISOイメージから仮想サーバを起動してインストールを行うことが可能です。

f:id:komo-jp:20180702224532p:plain

2-1. VyOSインストール

VyOSのサイトからイメージをダウンロードします。検証環境では、VMware用のOVAイメージを利用しましたが、今回はISOイメージをダウンロードします。そのISOイメージをさくらのVPSにSFTPでアップロード後、さくらVPSコントロールパネルからISOインストールを実行します。

起動後、VyOSにログインします。ログインユーザー名/Passwordは、共に"vyos"になります。 ログイン後、下記コマンドを実行します。

install image

2018/07/07:追記

仮想マシンの再起動を行うと、VyOSが正常に起動しないというトラブルに見舞われました。色々とネット上の情報を確認した所、インストール手順でディスクのパーティション指定をしなければならない事が分かりました。

ディスクのパーティションの仕様には、MBR(Master Boot Record)とGPT(GUID Patition Table)があり、さくらVPSではGPTとなっているところを、VyOSがサポートしているMBRに変更する必要があるようです。

  • インストール手順中、"Partition (Auto/Union/Parted/Skip) [Auto]:"と表示されたら、"Parted"と入力する。
  • Parted対象のドライブの選択。デフォルト値のままなのでEnterキーを押下する。
  • プロンプトが(parted)と表示されたら、mklabel msdosと入力する。
  • 対象ドライブのデータが消えること旨の警告が表示される。Enterキーを押下する。

再度、"install image"コマンドでインストールを実行しますが、今度"Partition (Auto/Union/Parted/Skip) [Auto]:"が表示された際は、[Auto]のままで結構ですので、そのままEnterキーを押下して下さい。

2-2. VyOS基本設定

インストール完了後にリブートを行います。起動後、VyOSの初期設定を行っていきます。

VyOSのインターネットに接続しているインターフェースは、eth0になります。eth0インターフェースにグローバルIPアドレスを割り当て、デフォルトゲートウェイDNSタイムゾーンSSH等の基本設定を下記の通り行います。なお、使用するグローバルIPアドレス、ネットマスク、ゲートウェイDNSサーバアドレスは、全てさくらVPSコントロールパネル上で確認できます。

configure

set system host-name VyOS

set interfaces ethernet eth0 address 160.xxx.xxx.xxx/16
set interfaces ethernet eth0 description Internet

set protocols static route 0.0.0.0/0 next-hop 160.xxx.xxx.xxx

set system name-server 210.188.xxx.xxx
set system name-server 210.188.xxx.xxx
set system time-zone Asia/Tokyo
set service ssh port 10022

commit
save
exit

これで基本的な設定は終了です。

VyOSを用いたBGP接続(後編)

VyOSを用いたBGP接続(前編)で、VyOSのインストール、及び物理的な結線を終えましたので、後編ではVyOSのコンフィギュレーションを進めることにします。

1. ネットワーク構成(論理)

1-1. 論理構成図

f:id:komo-jp:20180701102002p:plain

1-1-1. ユニークローカルIPv6ユニキャストアドレス(ULA)

IHANetのBGPネットワークに接続するには、独自にIPv6アドレスの割り当てを受けている必要があります。今回は検証環境ですので、IPv4でいうところのプライベートIPアドレスに相当する、ユニークローカルIPv6ユニキャストアドレスを利用することにします。下記JPNICのサイトに詳しい説明がありますが、fd00::/8で始まるユニークローカルIPv6ユニキャストアドレスは、「いつでも誰でも利用可能なアドレス」として用意されています。

サブネットプレフィックスのグローバル識別子を任意の値に決めて利用すれば良いと思われますが、NTPやMACアドレスなどの情報を基にランダムな値を得る方法も紹介されているようです。

今回の例では、Tunnel-Segment、Site-A-Segment、Site-B-Segmentのそれぞれのセグメント用に、適当に決めた3つのユニークローカルIPv6ユニキャストアドレスを用意しました。

インターネット10分講座:IPv6アドレス~技術解説~ - JPNIC

2. VyOSセットアップ

2-1. VyOS 基本設定

VyOSのログインユーザー名/Passwordは、共に"vyos"になります。

ログイン後、上図の論理構成図に記載のIPアドレスを、各インターフェースに設定します。その他、ホスト名/SSH/Timezoneの設定も行います。

一点、注意が必要なのは、eth0はデフォルトでDHCPによるアドレス取得を行うように設定されています。この為、eth0にIPアドレスを設定しcommitコマンドで反映すると、"Can't configure static IPv4 address and DHCP on the same interface."というエラーメッセージが表示されます。下記コマンド例の通り、deleteコマンドでDHCPによるアドレス取得設定を削除しておく必要があります。

configure

set system host-name VyOS-A

delete interfaces ethernet eth0 address dhcp
set interfaces ethernet eth0 address 172.16.0.1/16
set interfaces ethernet eth0 description Internet

set interfaces ethernet eth1 address fd5d:c9b2:2451:0::1/64
set interfaces ethernet eth1 description Site-A-Segment

set service ssh port 10022
set system time-zone Asia/Tokyo

commit
save
exit

2-2. GRE/IPIPトンネル確立

トンネリングプロトコルとしてIPIP(IP-in-IP)とGRE(Generic Routing Encapsulation)の二つがありますが、どちらを使うべきでしょうか。IPIPは、カプセル化できるプロトコルとしてIPしか対応していませんが、元のIPパケットを包む形で新規にIPヘッダーのみを付加するシンプルな構成です。対してGREは、4~16バイトのGREヘッダを追加することにより、他のレイヤ3プロトコルカプセル化に対応していることや、オプションでチェックサムやTunnelキーの追加などの機能を備えているようです。

基本的にGREの付加機能は不要であり、シンプルでオーバーヘッドの少ない、IPIPが良いように思います。ただ、どうもVyOSではIPIPの設定がうまくいきませんでした。今回の要件はIPv6パケットをIPv4で包むIPv6 over IPv4となります。VyOSで用意されているIPIPのカプセル化タイプは以下の通りです。色々と試したのですが、うまく設定の反映、Tun0 I/Fに対する疎通確認ができませんでした。今回の要件はIPv6 over IPv4であり、VyOSがサポートしているIPIPタイプでは対応できないのかもしれません。結局、カプセル化タイプとしてGREを採用することにしました。

※2018/07/02:追記 IPv6 over IPv4のトンネリングプロトコルとしてSITというものがあり、このタイプはVyOSでサポートされている。

Eencapsulation Type 説明
ipip IP in IP encapsulation
ipip6 IP in IP6 encapsulation
ip6ip6 IP6 in IP6 encapsulation
set interfaces tunnel tun0 address fdce:3feb:5e29:0::1/64
set interfaces tunnel tun0 description Tunnel-Segment
set interfaces tunnel tun0 encapsulation gre
set interfaces tunnel tun0 local-ip 172.16.0.1
set interfaces tunnel tun0 remote-ip 172.16.0.2

2-3. BGP設定

AS番号は、上図論理構成図の通り、プライベートAS番号から採番しています。ピアのアドレスとして指定するアドレスは、ピアのtun0インターフェースに割り当てたIPv6アドレスになります。また広報するアドレスとして、自身のLAN側インターフェースであるeth1インターフェースに割り当てたIPv6アドレスセグメントを指定します。

set protocols bgp 65001 neighbor fdce:3feb:5e29::2 remote-as 65002
set protocols bgp 65001 neighbor fdce:3feb:5e29::2 address-family ipv6-unicast
set protocols bgp 65001 address-family ipv6-unicast network fd5d:c9b2:2451::/64

3. 動作確認

  • インターフェースのステータス確認

    全てのインターフェースのステータスがUpとなっていることを確認。

vyos@VyOS-A:~$ show interfaces
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface        IP Address                        S/L  Description
---------        ----------                        ---  -----------
eth0             172.16.0.1/16                     u/u  Internet
eth1             fd5d:c9b2:2451::1/64              u/u  Site-A-Segment
lo               127.0.0.1/8                       u/u
                 ::1/128
tun0             fdce:3feb:5e29::1/64              u/u  Tunnel-Segment
vyos@VyOS-A:~$
  • BGP セッションステータス

    BGPピアが確立できていることを確認。IPv6でBGPピアを張る為、show ipv6 bgp summaryである事に注意。"State/PfxRcd"フィールドが、"1"となっている。

vyos@VyOS-A:~$ show ipv6 bgp summary
BGP router identifier 172.20.30.1, local AS number 65001
RIB entries 3, using 288 bytes of memory
Peers 1, using 4560 bytes of memory

Neighbor        V    AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
fdce:3feb:5e29::2
                4 65002      28      31        0    0    0 00:26:44        1

Total number of neighbors 1
vyos@VyOS-A:~$
  • ルーティングテーブルの確認

    対向拠点のLAN側IPv6アドレスセグメントがルーティングテーブル上に乗っていることを確認。

vyos@VyOS-A:~$ show ip route
Codes: K - kernel route, C - connected, S - static, R - RIP, O - OSPF,
       I - ISIS, B - BGP, > - selected route, * - FIB route

C>* 127.0.0.0/8 is directly connected, lo
C>* 172.16.0.0/16 is directly connected, eth0
vyos@VyOS-A:~$
vyos@VyOS-A:~$ show ipv6 route
Codes: K - kernel route, C - connected, S - static, R - RIPng, O - OSPFv3,
       I - ISIS, B - BGP, * - FIB route.

C>* ::1/128 is directly connected, lo
B>* fd58:cbd2:b752::/64 [20/0] via fe80::5efe:ac14:1e02, tun0, 00:04:46
C>* fd5d:c9b2:2451::/64 is directly connected, eth1
C>* fdce:3feb:5e29::/64 is directly connected, tun0
C * fe80::/64 is directly connected, eth1
C * fe80::/64 is directly connected, eth0
C>* fe80::/64 is directly connected, tun0
vyos@VyOS-A:~$
  • 疎通確認

    対向ピアのTun0/eth0/eth1の各アドレスに対して、Pingで疎通が取れることを確認。

vyos@VyOS-A:~$ ping fdce:3feb:5e29::2 count 3
PING fdce:3feb:5e29::2(fdce:3feb:5e29::2) 56 data bytes
64 bytes from fdce:3feb:5e29::2: icmp_seq=1 ttl=64 time=0.240 ms
64 bytes from fdce:3feb:5e29::2: icmp_seq=2 ttl=64 time=0.354 ms
64 bytes from fdce:3feb:5e29::2: icmp_seq=3 ttl=64 time=0.432 ms

--- fdce:3feb:5e29::2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.240/0.342/0.432/0.078 ms
vyos@VyOS-A:~$
vyos@VyOS-A:~$ ping 172.16.0.2 count 3
PING 172.16.0.2 (172.16.0.2) 56(84) bytes of data.
64 bytes from 172.16.0.2: icmp_req=1 ttl=64 time=0.201 ms
64 bytes from 172.16.0.2: icmp_req=2 ttl=64 time=0.360 ms
64 bytes from 172.16.0.2: icmp_req=3 ttl=64 time=0.382 ms

--- 172.16.0.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.201/0.314/0.382/0.081 ms
vyos@VyOS-A:~$
vyos@VyOS-A:~$ ping  fd58:cbd2:b752::1 interface eth1 count 3
PING fd58:cbd2:b752::1(fd58:cbd2:b752::1) from fdce:3feb:5e29::1 eth1: 56 data bytes
64 bytes from fd58:cbd2:b752::1: icmp_seq=1 ttl=64 time=0.264 ms
64 bytes from fd58:cbd2:b752::1: icmp_seq=2 ttl=64 time=0.263 ms
64 bytes from fd58:cbd2:b752::1: icmp_seq=3 ttl=64 time=0.301 ms

--- fd58:cbd2:b752::1 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.263/0.276/0.301/0.017 ms
vyos@VyOS-A:~$

今回、初めてVyOSを利用しましたが、昔、JUNOSをそこそこ使い込んでいた経験が活きて、違和感なく利用することができました。

動作検証も想定通りに進み成功しました。次のステップは、さくらインターネットVPS上でのVyOS稼働、及びIPv6アドレスの調達になります。

VyOSを用いたBGP接続(前編)

1. 検証目的

以前、「ネットワークエンジニアのためのプロキシサーバの教科書」という記事が読みたくて、Software Design 2014年3月号を購入しました。そこで何気なく目にした「自宅ラックのススメ」というコラムで、IHANetというユーザーグループが紹介されていました。

IHANetでは、参加者がプライベートAS番号を用いてBGP4+を使用し、相互に接続してIPv6アドレスの経路交換を行うBGPネットワークを運用しています。

常々、書籍を読み込む勉強だけではなく、実際に手を動かして機器/ソフトウェアを設定・運用していく事が重要だと感じていたことや、得られた知識や知見を論理的で分かりやすい文章にまとめて公表・プレゼンするアウトプット活動やエンジニア同士の交流・意見交換等を進めていきたいと考えていた事もあり、それらの実践の場としてIHANetの活動はとても魅力的に思えました。

接続形態・使用機材については色々検討した結果、さくらのVPSでVyOSというオープンソースのルーティングソフトウェアを利用する事を想定しています(将来的にはCentOS + FRRoutingを採用したい)。

ここではIHANetの活動に参加する前に、自宅の検証環境(ESXi)を利用して、VyOSを利用したIPIP/GREトンネル、BGP接続、IPv6経路広報の動作検証を行う事にします。

2. ネットワーク構成(物理)

2-1. 物理構成図

f:id:komo-jp:20180629230018p:plain

構成は見ての通り非常にシンプルで、特に説明は不要かと思います。

3. VyOSインストール

ESXiの操作は、GUIにて特に迷うことなく見たなりに進めていくことができました。この為、詳細な手順の紹介は省略し、以下にポイントだけ記載します。

3-1. vSwitch ・ポートグループの作成

デフォルトで存在するvSwitch0に加えて、Site-A用のvSwitch1と、Site-B用のvSwitch2を作成します。その後、下表のようにポートグループを作成して、vSwitchと関係付けます。

vSwitch名 ポートグループ VLAN ID
vSwitch0 Internet 0
vSwitch1 Site-A-Segment 0
vSwitch2 Site-B-Segment 0

f:id:komo-jp:20180630194514p:plain

3-2. VyOSのデプロイ

VyOSのサイトにVMware用のOVAイメージが用意されています。最新バージョンの1.1.8をダウンロードします。ESXiにて、[仮想マシンの登録] → [OVFファイルまたはOVAファイルから仮想マシンをデプロイ]とクリックし、ダウンロードしたOVAイメージを選択します。

インストール先のデータストアを選択した後、[デプロイのオプション] - [ネットワークのマッピング]という項目に進みますが、ここでは、[public]に先ほど作成したポートグループである"Internet"を選択し、[internal]には同じく先ほど作成したポートグループである"Site-A-Segment(またはSite-B-Segment)"を選択します。この後、[完了]ボタンをクリックすると、VyOSのデプロイを行うことができます。

f:id:komo-jp:20180630001938p:plain

1台のVyOSに、デフォルトで割り当てられるハードウェアリソースは以下の通りです。

ハードウェア構成
CPU 1vCPU
メモリ 512MB
ハードディスク 10GB
NIC 2個

週末を利用し、後半でVyOSのコンフィギュレーションを進めていきたいと思います。

Intel NUCへのESXiインストール

Intel NUCとESXiの相性について

前回の記事「Intel NUC(NUC7i7DNHE)セットアップ」でも言及したように、「ESXi標準のISOイメージでは、PCのNICSATAコントローラを認識できない」という問題が往々にしてあるようです。Intel NUCも意外と高額なので、相性問題が起こらないという導入事例の確認、もしくは問題を解決する方法の目途が立たない限り、購入までには踏み切れませんでした。

事前の情報収集で参考にさせて貰ったVirten.netでは、これまでリリースされてきた歴代Intel NUCへのESXiインストール方法を紹介しています。リリースされたばかりのNUC7i7DNHEについても、早速、ESXiのインストールレポートをアップしてくれました。それによると、ESXi 6.5 Update 2とESXi 6.7であれば、NICやストレージ周りのトラブルは起こらず、特別なカスタマイズをせずにインストールが可能という事でした。

導入ESXiのバージョン

2018年4月にESXiの最新リリース バージョン6.7がリリースされました。ただ、今回は広く使われており、業務でも関係があるバージョン6.5 Update 2を利用する事にします。

ESXiインストールメディア作成

Intel NUCにESXiをインストールするには、別途外付けのDVDドライブ等を用意する必要があります。前述のVirten.netでは、フリーソフトウェアRufusを使用したUSBインストールメディアの作成・インストールを簡単な方法として紹介しています。早速、Rufusを利用して、ESXiのUSBインストールメディアを作成してみる事にします。

  1. Rufusをダウンロードします。

  2. VMware vSphere Hypervisor (ESXi) 6.5 U2をダウンロードします。初めてVMware製品のダウンロードを行う場合、「My VMware」にアカウントが必要ですので登録手続きを行って下さい。

  3. ダウンロードした"rufus-3.0.exe"をクリックすると以下の画面が表示されます。

    1. [デバイス]に用意したUSBメモリが表示されている事を確認します。
    2. [選択]ボタンをクリックしてESXi 6.5 Update 2のISOイメージファイルを選択します。[ブートの種類]に選択したファイル"VMware-VMvisor-Installer-6.5.0.update02-8294253.x86_64.iso"が表示されている事を確認します。
    3. その他の項目については、既定値で問題ありません。
    4. 準備が整いましたので、[スタート]ボタンをクリックします。 f:id:komo-jp:20180619103434p:plain
  4. 「menu.c32を置き換えますか?」との画面が表示されるので、[はい(Y)]をクリックします。 f:id:komo-jp:20180619103838p:plain

  5. USBメモリーのデータが消去される警告メッセージが表示されます。[OK]をクリックします。 f:id:komo-jp:20180619103842p:plain

  6. ISOファイルのコピーが始まります。 f:id:komo-jp:20180619103852p:plain

ESXi 6.5 Update 2のISOイメージファイルのサイズは337.94MBとさほど大きくはないのですが、上記[スタート]をクリックしてからUSBインストールメディアの作成完了まで30分ほどかかりました。

ESXiインストール

  1. 「ESXiインストールメディア作成」で作成したUSBインストールメディアをIntel NUCに刺してから電源を入れます。ESXiインストーラーのロードが始まります。

  2. イメージのロードが完了すると、「Welcome to the VMware ESXi 6.5.0 Installation」という画面が表示されます。「Enter」キーを押下し、[Continue]を選択します。

  3. 「End User License Agreement (EULA)」画面が表示されます。内容を確認し、「F11」キーを押下し、[Accept and Continue]を選択します。

  4. 「Select a Disk to Install or Upgrade」画面が表示されますので、インストールするSSDを選択します。今回の私の環境では、内臓SSDが「Local: NVMe INTEL SSDPEKKW51 // 省略 // 476.94 GiB」と表示されていました。ハイライト表示がされている事を確認の上「Enter」キーを押下し、[Continue]を選択します。

  5. 「Please select a keyboard layout」画面が表示されます。[Japanese]を選択の上、「Enter」キーを押下し、[Continue]を選択します。

  6. 「Enter a root password」画面が表示されます。Root passwordを入力の上、「Enter」キーを押下し、[Continue]を選択します。

  7. 「Confirm Install」画面で[Warning: This disk will be repartitioned.]の警告が表示されます。「F11」キーを押下し、[Install]を選択します。

  8. インストールが行われ、しばらくすると「Installation Complete」画面が表示されます。無事、ESXiのインストールが成功しました。Intel NUCを再起動する為、「Enter」キーを押下し、[Reboot]を選択します。USBインストールメディアは抜いて下さい。

ESXi初期セットアップ

  1. Intel NUCを起動すると、VMware ESXi 6.5.0のコンソール画面が表示されます。コンソール画面の表示を見ると、ESXiにはDHCPIPアドレスが割り当てられており、別のPCからWebブラウザでアクセスできるようです。サーバ用途ですので、固定IPアドレスを割り当てることにします。「F2」キーを押下し、[Customize System/View Logs]を選択します。

  2. 「Authentication Required」画面が表示されます。[Login Name:]に「root」、[Password:]にインストール時に設定したパスワードを入力し、「Enter」キーを押下し、[OK]を選択します。

  3. IPアドレスを設定します。

    1. 「System Customization」画面で、[Configure Management Network]を選択し、「Enter」キーを押下し、[More]を選択します。
    2. 「Configure Management Network」画面で、[IPv4 Configuration]を選択し、「Enter」キーを押下し、[Change]を選択します。
    3. IPv4 Configuration」画面で、[Set static IPv4 address and network configuration:]を選択し、「Space」キーを押下し、[Mark Selected]を選択します。
    4. [IPv4 Address]、[Subnet Mask]、[Default Gateway]それぞれに適切な値を入力し、「Enter」キーを押下し、[OK]を選択します。
    5. 「Configure Management Network」画面に戻ります。「Esc」キーを押下し、[Exit]を選択します。
    6. 「Configure Management Network: Confirm」画面が表示されます。「Y」キーを押下し、[Yes]を選択します。
  4. ESXi Shell、及びSSHを有効にします。

    1. 「System Customization」画面で、[Troubleshooting Options]を選択し、「Enter」キーを押下し、[More]を選択します。
    2. [Troubleshooting Mode Options]画面が表示されます。[Enable ESXi Shell]を選択し、「Enter」キーを押下し、[Change]を選択します。画面右側で、[ESXi Shell is Enabled]と表示されていることを確認します。
    3. 続けて、同画面で[Enable SSH]を選択し、「Enter」キーを押下し、[Change]を選択します。画面右側で、[SSH is Enabled]と表示されていることを確認します。
    4. 「Esc」キーを押下し、[Exit]を選択します。
  5. 設定終了後、「Esc」キーを押下し、[Log Out]を選択します。

VMware Host Client

ESXiの管理は、インストールしたESXiホストに対して、他のPCからWebブラウザでアクセスして行います。ESXi 6.5では、1台のESXiホストを管理するツールをVMware Host Clientと呼びます。VMware Host Clientは、WebブラウザでESXiに接続する事でアクセスできます。

  1. Webブラウザで以下のようにESXiに割り当てたIPアドレスを指定して接続します。

    • https://ESXiホストのFQDNまたはIPアドレス/ui
    • 初回アクセス時、「安全な接続ではありません」(Firefox利用時)というエラーメッセージが表示されますので、該当アドレスについて「セキュリティ例外の追加」を行いました。
  2. VMware Host Clientのログイン画面が表示されます。[ユーザ名]に"root"、[パスワード]にインストール時に設定したパスワードを入力し、[ログイン]ボタンをクリックします。 f:id:komo-jp:20180619103856p:plain

  3. VMware Host Clientの画面が表示されます。画面の通り、ESXiホストのステータス確認の他、仮想マシン、ネットワーク、ストレージの各設定が行えるようになります。 f:id:komo-jp:20180619103900p:plain

最初から最後まで全くトラブルもなく、インストール作業を完了することができました。VMware Host ClientでESXiホストのステータスを確認しても、Intel NUCのCPU・メモリ・ストレージが正常に認識されている事を確認できました。

VMware vSphere Hypervisor (ESXi)の動作概念は頭では理解しているのですが、実際に仮想マシンの作成や管理等の操作を行ってみないと見えてこない事もあるかと思います。また、感覚的な理解も進むでしょう。これで仮想化基盤が整いましたので、仮想マシンを活用した様々な検証に挑戦していきたいと思います。

参考サイト・書籍

Intel NUC(NUC7i7DNHE)セットアップ

導入目的

長らくネットワークエンジニアとしてキャリアを積み重ねてきましたが、いまやルータ・スイッチだけしか分からないエンジニアが通用する時代ではなくなってきています。業界の潮流として、ネットワークだけではなく、仮想化やサーバなどインフラ全般について統合的な知識・スキルが求められており、ネットワークエンジニアからいわゆるインフラエンジニアとして技術領域を広げていく必要性を感じていました。

仮想化基盤としてデファクトスタンダードとなっているVMware vSphere Hypervisor(ESXi)と、Windows Server(特にAcitveDirectory)及びLinux(Web、DNS、Mail、etc.)の技術習得を目的に、学習用プラットホームとしてPCサーバを導入する事としました。

当初、Mini-ITXベースでPCを組み上げるつもりでしたが、よくよく調べてみると、ESXi標準のISOイメージでは、PCのNICSATAコントローラを認識できない問題が起こりえるという事が分かりました。ESXi-Customizer-PSというツールを利用して、ISOイメージにドライバを追加する、という手法で解決できるらしいのですが、なんだか手間だし少しハードルも高いです…。結局、自作PCは諦め、ネット上でESXi稼働の実績や導入事例の紹介が少なからず見つかったIntelのNUC(Next Unit of Computing)というベアボーンキットを採用する事にしました。

Intel NUC(NUC7i7DNHE)スペック

Intel NUCは数多くのモデルがありますが、今回購入したのは2018年5月頃に発売されたNUC7i7DNHEというモデルです。CPUに4コア/8スレッドを実現した、いわゆる第8世代Coreプロセッサーを搭載し、それまでの2コア/4スレッドだった従来モデルより大幅に性能を高めています。

学習の主要テーマの一つが仮想化である以上、コア/スレッド数が増えて仮想マシンに割り当てられるCPUリソースに余裕ができることは重要なポイントです。

ただ、Core i7を搭載し性能が良くなった分、価格は高めとなっています。同じ4コア/8スレッドを実現しているCore i5 8250U / 8350Uを搭載したモデルがあれば良かったのですが、2018年6月時点ではラインナップにありません。今後、4コア/8スレッドのCore i5を搭載した手頃な価格帯のモデルも登場することでしょう。

  • CPU Intel Core i7 8650U(4コア/8スレッド)
  • TDP 15.0W
  • Memory DDR4-2400 SO-DIMM
  • 最大メモリサイズ 32GB
  • NIC Intel i219-LM
  • VT-x対応
  • I/O USBポート x 4 , HDMI2.0a x 2
  • サイズ 115(W)×111(L)×52(H)mm

追加購入パーツ類

Intel NUCはベアボーンキットですので、SSD、メモリ等の追加パーツが必要となります。今回、追加で用意したパーツは以下になります。

品目 型番 品名
SSD SSDPEKKW512G8XT Intel SSD 760p M.2 PCIEx4 512GB
メモリ CT16G4SFD824A Crucial DDR4 16GB (PC4-19200/SODIMM) x 2
電源コード GR-PZ005 ACケーブル

Intel NUC(NUC7i7DNHE)セットアップ

同梱されているのは本体に加えて、ACアダプタ、VESAマウント、簡単な説明書。ACアダプタはありますが、コンセントに刺す方のACケーブルは別途購入する必要があります。小さいとは思っていましたが、実物を見ると思っていたよりも小さいです。

f:id:komo-jp:20180616204249j:plain

前面は電源スイッチに、USBポートが2つ。

f:id:komo-jp:20180616205114j:plain

背面は、USBポート x 2、HDMI x 2、LANポート、電源INPUTが並びます。

f:id:komo-jp:20180616205117j:plain

底面のゴム足にあるネジ4か所を緩めると開けることができます。

f:id:komo-jp:20180616204631j:plain

用意したM.2 SSDSATA接続の2.5インチSSDをイメージしていたので、小ささに驚きました。ガム程度の大きさ、薄さです。写真の通り、モジュール上には放熱に役立てる為かシートが貼ってあります。

f:id:komo-jp:20180616204639j:plain

仮想マシンを多数立ち上げる事を想定して、メモリは最大の32GBを用意しました(Cisco VIRLで多数の仮想ルータを立ち上げて検証を行った経験から、メモリは最大限積んでおきたかった)。

f:id:komo-jp:20180616204642j:plain

マザーボードSSDとメモリを刺したところ。用意されているスロットに刺し込むだけなので、特段難しいことはありません。

f:id:komo-jp:20180616204645j:plain

底板は2.5インチスロットを兼ねています。右側のSSDと接するところに、金属製のシャーシに熱を逃がすサーマルパッドが張り付けてあります。PCI Express/NVMeに対応したSSDは高速だが発熱が激しいと聞いており気になっていたのですが、このように対策はとられているようです。

f:id:komo-jp:20180616204649j:plain

Intel NUCのセットアップはこれで完了です。後編で、VMware vSphere Hypervisor(ESXi)のインストールを紹介します。