IDCFクラウドでJunos(vSRX(Firefly))を動かす

IDCFクラウドでvSRX（以前はfireflyという名前でした）を動かす際のインストール、設定方法を記載します。
# 事前準備
## OVAダウンロード
vSRX(firefly)のOVAは[こちら](http://www.juniper.net/support/downloads/?p=junosvfirefly-eval#sw)からダウンロード可能です。（60日間は無償で使うことのできる評価版です）

IDCFクラウドはESXiがベースなので、[vSRX VMware Appliance with IDE virtual disk](https://webdownload.juniper.net/swdl/dl/anon/site/1/record/59833.html)からVMware用OVAをダウンロード

今回は**media-srx-ffp-vsrx-vmdisk-15.1X49-D15.4.ide.ova**を使いました。
（ver12.1くらいのときは200Mbyteちょっとくらいでしたが、最近は2G近くになってますね。。何が入ったんだか、やたらと重いです :confounded: ）

## vSRX各種情報
[Getting Started Guide](http://www.juniper.net/techpubs/en_US/firefly12.1x46-d10/information-products/pathway-pages/pathway-pages-vmware/security-virtual-perimeter-gsg/security-virtual-perimeter-gsg-vmware-pwp.html#overview)
[Firefly Perimeter Configuration Using the CLI Interface](http://www.juniper.net/techpubs/en_US/firefly12.1x46-d10/topics/task/configuration/security-virtual-cli-configuring.html)
[ESXi環境条件](http://www.juniper.net/techpubs/en_US/firefly12.1x46-d10/topics/reference/general/security-virtual-vmware-installation-requirement.html) => 5.0, 5.1, and 5.5
[必要リソース](http://www.juniper.net/techpubs/en_US/firefly12.1x46-d10/topics/reference/general/security-virtual-installation-specification.html)  後述することになるがやはり事前に良く確認しておくことは重要 :persevere: 

## IDCFクラウドの準備
[ここ](https://idcfcloud.com/)からログイン

IDCFクラウドのアカウントを適当に作っておいてください。
イベント、セミナーなどで無料クーポンを良く配っているので、クーポンを活用すれば個人で使う分には大体無料で楽しめると思います :moneybag: 

シンプルさ、使いやすさにはこだわって作っていますが、ちょっと良くわかんねーな、といった際には[めちゃ楽ガイド](http://www.idcf.jp/cloud/pdf/IDCFCloud_installation_guide.pdf)を見たり、あるいは無料で問い合わせできるので、結構便利かと思います。

# vSRXテンプレート作成

vSRXのovaをIDCFクラウドにアップロードするためには、httpでダウンロードできるようにしておく必要があります :sweat: 
httpサーバなど用意するのが面倒くさいという方はオブジェクトストレージを使うと割と簡単に用意できます。
ここら辺を見るとオブジェクトストレージのインストール方法やファイルのアップロード、公開方法などが書いてありますのでご参考まで。
http://www.idcf.jp/cloud/storage/faq/scm_005.html
http://www.idcf.jp/cloud/storage/faq/scm_006.html

実際下記のようなコマンド一つでhttpで公開されます。（使い終わったら消すかpublicを無効にしましょう。）
`s3cmd --acl-public put media-srx-ffp-vsrx-vmdisk-15.1X49-D15.4.ide.ova s3://<bucket>`


IDCFクラウドにテンプレートを登録するには、「テンプレート」⇒「テンプレート作成」を選択
![image](https://qiita-image-store.s3.amazonaws.com/0/53465/f9097808-ec34-3efa-9234-4f684b1e856b.png)


※テンプレート作成時に**ディスクをIDE**に、**NICアダプタをE1000**にしておく必要があります。
ここをミスったらやり直し :sob: 

![image](https://qiita-image-store.s3.amazonaws.com/0/53465/442a75e2-2690-ca4f-b59b-5f416f3974bd.png)


# vSRX仮想マシン作成

このテンプレートを元に仮想マシン(vSRX)を作成します。
作成されたテンプレートを選択すると、そこからすぐに仮想マシン作成画面に進めます。

![image](https://qiita-image-store.s3.amazonaws.com/0/53465/233e2dc4-af8f-5b07-d6d7-0b46fa667b70.png)


ちなみに、古いfireflyだと、root diskのmountができずbootに失敗することがありました :skull: 
（junos-vsrx-12.1検証時）

![image](https://qiita-image-store.s3.amazonaws.com/1225/53465/b7c2e11e-b290-90ee-f31e-2d76eab80191.png)


その際にはmountのパーティションをad1s1aにしてやれば上手くいきました。理由は良く分かりません。。 :construction_worker: 

```
Mountroot> ufs:ad1s1a
```

今回のvSRXでも一つハマりポイントがあります :scream: 
仮想マシンは**『2 CPU』**以上のマシンタイプで作成する必要があります。仮想ルータのインストールくらい1Coreでもいけるだろうとタカをくくっていましたが、上手くいきませんでした :confounded: 
1CPUでも起動はして、設定も入ります。しかしどうやってもNICを認識しないのです :sob: 
私はここでエライハマりました :droplet: 
確かにSpecificationに「vCPUs  2」とは書いてあるのですが、CPU数が足りなくてNICを認識しないという考えにはいきつかなかったです :astonished: 
![image](https://qiita-image-store.s3.amazonaws.com/1225/53465/f98b4024-8949-5775-0755-447755e82976.png)

『2 CPU』でマシン作成して、Config設定して、何故か数分待つと正常にNICが認識され、通信もできるようになります。

# vSRX設定

初期状態では**root**でログインできます。
cli, configureと叩くと、いわゆるJunosな設定ができます。

![image](https://qiita-image-store.s3.amazonaws.com/0/53465/51f0d77c-8392-acfe-20ff-275501ab7a42.png)

vSRXは本来はFirewallなので、routerとして検証する際にはジャマな設定は消して純粋にJunosルータとしての検証を楽しみましょう。

```
delete security
set security forwarding-options family inet6 mode packet-based
set security forwarding-options family mpls mode packet-based

set system root-authentication plain-text-password
set system login user netops class super-user
set system login user netops authentication plain-text-password
set system services telnet
set system services netconf ssh
set interfaces ge-0/0/0 unit 0 family inet dhcp  ## 追加NICがアサインされる
set interfaces ge-0/0/1 unit 0 family inet dhcp  ## 追加NICがアサインされる
```

*mode packet-based*の設定変更は再起動を求められるので、再起動しちゃいましょう。（ver15.1だからなのか、やたらと長い。。。）

![image](https://qiita-image-store.s3.amazonaws.com/0/53465/f538c8c7-c872-155a-e344-b6bab79f7727.png)

そしてこの隙にremoteからアクセスできるようにしちゃいましょう。（詳しくは上述の[めちゃ楽ガイド参照](http://www.idcf.jp/cloud/pdf/IDCFCloud_installation_guide.pdf)）

ver12.1ではge-0/0/0、ge-0/0/1・・の順でインタフェースがアサインされていましたが、ver15.1だと、2つ目のNICがge-0/0/0、3つ目のNICがge-0/0/1となってました :sweat_drops: 
おそらく一つ目はfxp0にアサインされるはずなんじゃないかと思うのですが、上手く通信できませんでした。時間がが足りなくギブ:astonished: 

とりあえずは、これでクラウド上でJunosルータを自由にいじることができるようになるはずです :satisfied: 

最期に、再起動をやたらとしたり、乱暴な扱いをすると、ロクに起動しなくなることがありました。すなわち作り直しです。。 :tired_face: 
評価版なので、仕様が色々変わったり、安定性も欠けるところはあると思います。
また、古いバージョンのイメージは多分公開されなくなっていくと思うので、お気に入りのバージョンがあったら、ovaファイルはこっそり保管しておくことをお勧めします :sunglasses: