SRX_JUNOSの更新方法

JUNOSのバージョンアップについて記載します。

## 1.はじめに
### 1-1.前提
SRXに関して最低限の知識(オペレーションモードの移行方法等)を有している事を前提に記載しております。

### 1-2.本環境について
- モデル
SRX300

- JUNOS
【更新前】
　　15.1X49-D50.3
【更新後】
　　15.1X49-D120.3

- USBメモリ
SNAPSHOT取得用です。


## 2.事前準備
### 2-1.バージョン確認
- 2-1-1.使用中のJUNOSのバージョン確認

```
root@%cli
root> show version 

Model: srx300
Junos: 15.1X49-D50.3
JUNOS Software Release [15.1X49-D50.3]
```

- 2-1-2.primaryとbackupのバージョンの確認

```
root> show system snapshot media internal
 
Information for snapshot on       internal (/dev/da0s1a) (primary)
Creation date: Jan 10 05:33:03 2018
JUNOS version on snapshot:
  junos  : 15.1X49-D50.3-domestic
Information for snapshot on       internal (/dev/da0s2a) (backup)
Creation date: Oct 3 00:25:06 2016
JUNOS version on snapshot:
  junos  : 15.1X49-D50.3-domestic
```

### 2-2.最新版JUNOSのダウンロード
JUNOSはJuniperの[公式サイト](https://www.juniper.net/support/downloads/group/?f=junos)、もしくは保守ベンダーが提供しているサイトからダウンロードしてください。

###2-3.Configの確認
設定情報をset形式で出力し、Configをバックアップします。

```
root# show | display set |no-more  
  
set version 15.1X49-D50.3
set system autoinstallation delete-upon-commit
set system autoinstallation traceoptions level verbose
set system autoinstallation traceoptions flag all
(以下省略)
```
display setをつけない場合、階層的に出力されます。
階層的に出力した情報は、そのままSRXに投入することは出来ないのでset形式で出力してください。
また、no-moreをつけることで、 ---(more)--- が出力されなくなります。

###2-4.ライセンスの保存
UTMライセンス等を入れている場合はライセンスのバックアップをしてください。
※本環境では追加ライセンスは登録していないため、下記結果が出力されております。

```
root> show system license keys

Possible completions:
  key-content          Display license key contents
  keys                 Show license keys
```

上記コマンドでライセンスが表示されますが、念のためにバックアップを取りたい場合は、下記コマンドでSRX内にライセンスのバックアップが可能です。

```
root> request system license save
```

###2-5.SNAPSHOTの取得
ファイルシステム、JUNOS、コンフィグの構成情報をSNAPSHOTとしてUSBメモリ内にバックアップします。

SRXのUSBポートにUSBメモリを挿入する。
USBメモリがマウントされると下記ログが出力されます。
本環境では自動的にマウントされました。

```
root> umass1: TOSHIBA TransMemory-Mx, rev 3.00/1.10, addr 2
da1 at umass-sim1 bus 1 target 0 lun 0
da1: <TOSHIBA TransMemory-Mx PMAP> Removable Direct Access SCSI-6 device 
da1: 80.000MB/s transfers
da1: 7440MB (15237120 512 byte sectors: 255H 63S/T 948C)
```

マウントされた後に下記コマンドでSNAPSHOTを取得します。

```
root> request system snapshot media usb 
Clearing current label...
Partitioning usb media (/dev/da1) ...
Partitions on snapshot:

  Partition  Mountpoint  Size    Snapshot argument
      s1a    /           2.3G    none
      s2a    /altroot    2.3G    none
      s3e    /config     177M    none
      s3f    /var        2.1G    none
      s4a    /recovery/software 216M none
      s4e    /recovery/state 15M none
Copying '/dev/da0s1a' to '/dev/da1s1a' .. (this may take a few minutes)
Copying '/dev/da0s2a' to '/dev/da1s2a' .. (this may take a few minutes)
Copying '/dev/da0s3e' to '/dev/da1s3e' .. (this may take a few minutes)
Copying '/dev/da0s3f' to '/dev/da1s3f' .. (this may take a few minutes)
Copying '/dev/da0s4e' to '/dev/da1s4e' .. (this may take a few minutes)
Copying '/dev/da0s4a' to '/dev/da1s4a' .. (this may take a few minutes)
The following filesystems were archived: / /altroot /config /var /recovery/state /recovery/software
```

SRXからUSBメモリを抜きます。
USBメモリを抜いた後に下記ログが出力されます。

```
root> umass1: at uhub1 port 2 (addr 2) disconnected
(da1:umass-sim1:1:0:0): lost device
(da1:umass-sim1:1:0:0): removing device entry
umass1: detached
```

##3.更新作業
<font color="Red">以降の作業からConfigの削除及び変更を実施します。</font> 
###3-1.Configの削除
下記コマンドを実行しConfigを削除します。
deleteコマンド実行後にyesと入力してください。

下記コマンドでConfig投入モードに移行し、deleteコマンドを実行します。

```
root> configure 

Entering configuration mode
```

```
root# delete 

This will delete the entire configuration
Delete everything under this level? [yes,no] (no) yes 
```

なお、Configが何も書かれていない状態ではcommit出来ない為、ここではまだcommitしません。

###3-2.Configの削除確認
Configが削除されていることを確認します。

```
root# show | display set |no-more  
```

### 3-3.FTP通信用の仮設定
ファームウェアをFTPサーバ経由でアップロードする為、仮設定を行います。

- 3-3-1.パスワードの設定

```
root# set system root-authentication plain-text-password 

New password:
Retype new password:
```

- 3-3-2.FTP通信の有効化

```
root# system services ftp 
```

- 3-3-3.インタフェース設定

ge-0/0/0を「Trust」ゾーンに割り当て、FTP通信を許可します。

```
root# set security zones security-zone trust interfaces ge-0/0/0.0 host-inbound-traffic system-services ftp
```

root# ge-0/0/0にIPアドレスを設定します。

```
root# set interfaces ge-0/0/0 unit 0 family inet address 192.168.1.1/24
```

- 3-3-4.コミット

ここでコミットです。

```
root# commit

commit complete
```

最後にFTP通信用の設定が反映されていることを[Configの保存] (#1-3configの保存)で使用したコマンドで確認します。

### 3-4.FTPサーバの設定
PCにFTPサーバを立てます。
本環境では簡易なFTPサーバとして[Serva]を利用させていただきました。
「serva 使い方」等で検索すると出てきますので、FTPサーバの立て方は割愛致します。

下記はFTPサーバの設定です。
※PCに対しても下記IPアドレスを設定してください。

```
ip-address:192.168.1.2/24
user:ftp
password:ftpftp
```

### 3-5.ファームウェアの更新
- 3-5-1.Config設定モードの終了

オペレーションモードに移行します。

```
root# exit

root> 
```

- 3-5-2.ファームウェア更新

PCとSRXのge-0/0/0を接続した後、下記コマンドでファームウェアを更新します。

```
root> request system software add no-copy no-validate ftp://ftp:ftpftp@192.168.1.2/junos-srxsme-15.1X49-D120.3-domestic.tgz
    
/var/tmp/incoming-package.68982                       2160 kB 2160 kBps
Package contains junos-15.1X49-D120.3.tgz ; renaming ...
Formatting alternate root (/dev/da0s2a)...
/dev/da0s2a: 2518.0MB (5156848 sectors) block size 16384, fragment size 2048
	using 14 cylinder groups of 183.62MB, 11752 blks, 23552 inodes.
super-block backups (for fsck -b #) at:
 32, 376096, 752160, 1128224, 1504288, 1880352, 2256416, 2632480, 3008544,
 3384608, 3760672, 4136736, 4512800, 4888864
Installing package '/altroot/cf/packages/install-tmp/junos-15.1X49-D120.3-domestic' ...
Verified junos-boot-srxsme-15.1X49-D120.3.tgz signed by PackageProductionEc_2017 method ECDSA256+SHA256
Verified junos-srxsme-15.1X49-D120.3-domestic signed by PackageProductionEc_2017 method ECDSA256+SHA256
JUNOS 15.1X49-D120.3 will become active at next reboot
WARNING: A reboot is required to load this software correctly
WARNING:     Use the 'request system reboot' command
WARNING:         when software installation is complete
cp: cannot overwrite directory /altroot/cf/etc/ssh with non-directory /cf/etc/ssh
Saving state for rollback ...

```

再起動してくださいという内容のWARNINGが出ていますね。

### 3-6.SRXの再起動
SRXの再起動です。

```
root> request system reboot 

Reboot the system ? [yes,no] (no) yes 

Shutdown NOW!
[pid 69570]

                                                                               
*** FINAL System shutdown message from root@ ***                             

System going down IMMEDIATELY                                                  

```

### 3-7.更新後のバージョン確認
再起動直後はシェルコマンドモードの為、オペレーションモードに変更する必要があります。

```
root@% cli

root> 
```

- 3-7-1.実行しているバージョンの確認

```
root> show version

Model: srx300
Junos: 15.1X49-D120.3
JUNOS Software Release [15.1X49-D120.3]

```

- 3-7-2.primaryとbackupのバージョンの確認

```
root> show system snapshot media internal
 
Information for snapshot on       internal (/dev/da0s1a) (backup)
Creation date: Sep 30 04:17:43 2016
JUNOS version on snapshot:
  junos  : 15.1X49-D50.3-domestic
Information for snapshot on       internal (/dev/da0s2a) (primary)
Creation date: Mar 6 09:15:24 2018
JUNOS version on snapshot:
  junos  : 15.1X49-D120.3-domestic

root>
```

更新前は/dev/da0s2aがbackupでしたが、今は/dev/da0s1aがbackupになっています。

## 4.ライセンス投入
### 4-1.ライセンスの投入
[#2-4.ライセンスの保存](#2-4.ライセンスの保存)で確認したライセンスが更新時に消えた場合は、ライセンスを再投入してください。

本環境ではライセンスを追加登録していない為、
下記サイトを参考にして記載しております。
[ライセンスのバックアップ、再インストール方法は?](support.jscom.jp/support/maker/juniper/srx/knowledge/management/s041/)

下記コマンド実行→ライセンスキーの貼り付け→Enterキーの押下→Ctrl+D押下

```
root> request system license add terminal
```

## 5.おわりに

以上でファームウェアの更新は終わりです。
FTP通信用に仮設定を入れているので必要に応じてdeleteの実行と更新前の設定投入を行ってください。