【環境構築】vSRXでHAを組んでみる

# はじめに
私は2021年に新卒でインフラエンジニアとして働いています。
その中で、個人的な学習としてESXiのサーバを構築しました。
自分専用のESXiがあると、何かと勉強の幅が広がるので、初級インフラエンジニアの方は持っておくことをおすすめします！

話がそれましたが、ファイヤーウォールであるJuniperのvSRXを、<b>自由</b>に<b>壊れることを気にせず</b>、<b>いじりまくれる</b>VM環境の作成手順をまとめました。

VM作成はすぐに終わるため、作成後HAを組みます。

VM作成とvSRXでのHAの組み方について、参考にしてみてください。

VM作成手順は下記サイトへ移動しました。

https://tatsuya-k.net/network/juniper/srx-setup/


# 初期コンフィグ
[Juniperのサイト](https://www.juniper.net/documentation/jp/ja/software/vsrx/vsrx-consolidated-deployment-guide/vsrx-vmware/topics/concept/security-vsrx-vmware-overview.html "https://www.juniper.net/documentation/jp/ja/software/vsrx/vsrx-consolidated-deployment-guide/vsrx-vmware/topics/concept/security-vsrx-vmware-overview.html")からデフォルト設定値を探すのが苦労します。
そのため、実際に取得した初期コンフィグを張り付けます。
参考程度にしてみてください。

非常に長いので、見たい方は開いてみてください。
<details><summary>vSRX22.4R1 初期コンフィグ</summary><div>

```markdown
## Last commit: yyyy-mm-dd HH:MM:SS UTC by root
version 22.4R1.10;
system {
    root-authentication {
        delete-upon-commit; ## Deletes [system autoinstallation] upon change/commit
        traceoptions {
            level verbose;
            flag {
                all;
            }
        }
    }
    services {
        ssh;
        web-management {
            http {
                interface fxp0.0;
            }
            https {
                system-generated-certificate;
                interface fxp0.0;
            }
        }
    }
    syslog {
        file interactive-commands {
            interactive-commands any;
        }
        file messages {
            any any;
            authorization info;
        }
    }
    license {
        autoupdate {
            url https://ae1.juniper.net/junos/key_retrieval;
        }
    }
}
security {
    pki {
        ca-profile ISRG_Root_X1 {
            ca-identity ISRG_Root_X1;
            pre-load;
        }
        ca-profile Lets_Encrypt {
            ca-identity Lets_Encrypt;
            enrollment {
                url https://acme-v02.api.letsencrypt.org/directory;
            }
        }
    }
    screen {
        ids-option untrust-screen {
            icmp {
                ping-death;
            }
            ip {
                source-route-option;
                tear-drop;
            }
            tcp {
                syn-flood {
                    alarm-threshold 1024;
                    attack-threshold 200;
                    source-threshold 1024;
                    destination-threshold 2048;
                    queue-size 2000; ## Warning: 'queue-size' is deprecated
                    timeout 20;
                }
                land;
            }
        }
    }
    policies {
        from-zone trust to-zone trust {
            policy default-permit {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permit;
                }
            }
        }
        from-zone trust to-zone untrust {
            policy default-permit {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permit;
                }
            }
        }
        pre-id-default-policy {
            then {
                log {
                    session-close;
                }
            }
        }
    }
    zones {
        security-zone trust {
            tcp-rst;
        }
        security-zone untrust {
            screen untrust-screen;
        }
    }
}
interfaces {
    fxp0 {
        unit 0;
    }
}
```
</div></details>
<details><summary>vSRX20.4R3 初期コンフィグ</summary><div>

```markdown
## Last commit: yyyy-mm-dd HH:MM:SS UTC by root
version 20.4R3.8;
system {
    root-authentication {
        delete-upon-commit; ## Deletes [system autoinstallation] upon change/commit
        traceoptions {
            level verbose;
            flag {
                all;
            }
        }
    }
    services {
        ssh;
        web-management {
            http {
                interface fxp0.0;
            }
            https {
                system-generated-certificate;
                interface fxp0.0;
            }
        }
    }
    syslog {
        file messages {
            any any;
            authorization info;
        }
        file interactive-commands {
            interactive-commands any;
        }
    }
    license {
        autoupdate {
            url https://ae1.juniper.net/junos/key_retrieval;
        }
    }
    ## Warning: missing mandatory statement(s): 'root-authentication'
}
security {
    screen {
        ids-option untrust-screen {
            icmp {
                ping-death;
            }
            ip {
                source-route-option;
                tear-drop;
            }
            tcp {
                syn-flood {
                    alarm-threshold 1024;
                    attack-threshold 200;
                    source-threshold 1024;
                    destination-threshold 2048;
                    queue-size 2000; ## Warning: 'queue-size' is deprecated
                    timeout 20;
                }
                land;
            }
        }
    }
    policies {
        from-zone trust to-zone trust {
            policy default-permit {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permit;
                }
            }
        }
        from-zone trust to-zone untrust {
            policy default-permit {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permit;
                }
            }
        }
        pre-id-default-policy {
            then {
                log {
                    session-close;
                }
            }
        }
    }
    zones {
        security-zone trust {
            tcp-rst;
        }
        security-zone untrust {
            screen untrust-screen;
        }
    }
}
interfaces {
    fxp0 {
        unit 0;
    }
}
```

</div></details>

# HA設定
本記事で作成するHA構成は以下である。
![HA構成図2.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/748917/320a3c35-5227-7c50-de2d-8e2a6dca6fed.png)


手順について、以下記載していく。

https://tatsuya-k.ml/network/juniper/vsrx-chassis_cluster/

## 10. ポリシー設定
ポリシーの設定には主に以下の要素があります。
* from-zone（送信元ゾーン）
* to-zone（宛先ゾーン）
* policy（ポリシー名）
* match source-address（送信元アドレス/アドレスセット）
* match destination-address（宛先アドレス/アドレスセット）
* match application（プロトコルやアプリケーション）
* then permit/deny/reject（行う処理）

以下、詳細を説明していきます。
### アドレス設定
アドレスは主に、アドレスブック>>アドレスセット>>アドレスをいう階層に分かれています。

* アドレスとは
名前の通り、IPアドレスやNWアドレスのオブジェクトを作成することができます。

* アドレスセットとは
アドレスを束ねたものがアドレスセットです。また、アドレスセットを束ねたアドレスセットを作成することもできます。

* アドレスブックとは
アドレスやアドレスセットを束ねたものがアドレスブックといいます。
アドレスブックには、ゾーン内で作成する「ゾーンアドレスブック」と、グローバルで作成してゾーンにアタッチをする「グローバルアドレスブック」の２種類があります。
「ゾーンアドレスブック」と「グローバルアドレスブック」は共存することができません。
また、NATで使用できるのはグローバルアドレスブックであるなどの理由から、推奨はグローバルアドレスブックのようです。
ソース：https://csps.hitachi-solutions.co.jp/juniper/faq/srx/fw/policy_06.html

以下はアドレス、アドレスセットおよびアドレスブック作成コマンドです。
```markdown
# 172.16.0.2/32のアドレス（172_16_0_2_32）をアドレスブック（untrust_address-book）に作成
set security address-book untrust_address-book address 172_16_0_2_32 172.16.0.2/32
# 172.16.0.1/32のアドレス（172_16_0_1_32）をアドレスブック（untrust_address-book）に作成
set security address-book untrust_address-book address 172_16_0_1_32 172.16.0.1/32
# アドレスブック名（untrust_address-book）で上記で作成したアドレスをもつアドレスセット（untrust_NW）を作成
set security address-book untrust_address-book address-set untrust_NW address 172_16_0_1_32
set security address-book untrust_address-book address-set untrust_NW address 172_16_0_2_32
# アドレスブック名（untrust_address-book）でゾーン（untrust）にアタッチ
set security address-book untrust_address-book attach zone untrust

# 以下はtrust側の設定　※詳細は省略
set security address-book trust_address-book address 192_168_2_2_32 192.168.2.2/32
set security address-book trust_address-book address 192_168_2_1_32 192.168.2.1/32
set security address-book trust_address-book address-set trust_NW address 192_168_2_1_32
set security address-book trust_address-book address-set trust_NW address 192_168_2_2_32
set security address-book trust_address-book attach zone trust
```

### ポリシー
以下条件のポリシー設定コマンドです。
* 送信元ゾーン：trust
* 宛先ゾーン：untrust
* 送信元アドレス：192_168_2_2_32（=192.168.2.2/32）
* 宛先アドレス：untrust_NW（=172.20.0.1/32, 172.20.0.2/32）
* プロトコル：ping
```markdown
set security policies from-zone trust to-zone untrust policy trusttountrust-1 match source-address 192_168_2_2_32
set security policies from-zone trust to-zone untrust policy trusttountrust-1 match destination-address untrust_NW
set security policies from-zone trust to-zone untrust policy trusttountrust-1 match application junos-ping
set security policies from-zone trust to-zone untrust policy trusttountrust-1 then permit
```
* 送信元ゾーン：untrust
* 宛先ゾーン：trust
* 送信元アドレス：172_16_0_2_32（=172.20.0.2/32）
* 宛先アドレス：trust_NW（=192.168.2.1/32, 192.168.2.2/32）
* プロトコル：ping
```markdown
set security policies from-zone untrust to-zone trust policy untrusttotrust-1 match source-address 172_16_0_2_32
set security policies from-zone untrust to-zone trust policy untrusttotrust-1 match destination-address trust_NW
set security policies from-zone untrust to-zone trust policy untrusttotrust-1 match application junos-ping
set security policies from-zone untrust to-zone trust policy untrusttotrust-1 then permit
```

## 11. commit
```markdown
root@SRX01# commit
node0:
configuration check succeeds
node1:
commit complete
node0:
commit complete
```

## 設定後確認
### CLI
<details><summary>show configuration</summary><div>

```markdown
root@SRX01> show configuration | no-more
## Last commit: yyyy-mm-dd HH:MM:SS UTC by root
version 20.4R3.8;
groups {
    node0 {
        system {
            host-name SRX01;
        }
        interfaces {
            fxp0 {
                unit 0 {
                    family inet {
                        address 192.168.1.121/24;
                    }
                }
            }
        }
    }
    node1 {
        system {
            host-name SRX02;
        }
        interfaces {
            fxp0 {
                unit 0 {
                    family inet {
                        address 192.168.1.122/24;
                    }
                }
            }
        }
    }
}
apply-groups "${node}";
system {
    root-authentication {
        encrypted-password "$6$nbdy9U7T$KWHRnGd4GGFodF/ygIjdLviQZGprIcb2OdkAos2sRfR1L2YO5CjcwqbJjXJO5tKj0Fx0RYfR6DBKSShq8xwdo1"; ## SECRET-DATA
    }
    services {
        ssh {
            root-login allow;
        }
        web-management {
            http {
                interface fxp0.0;
            }
            https {
                system-generated-certificate;
                interface fxp0.0;
            }
        }
    }
    syslog {
        file messages {
            any any;
            authorization info;
        }
        file interactive-commands {
            interactive-commands any;
        }
    }
    license {
        autoupdate {
            url https://ae1.juniper.net/junos/key_retrieval;
        }
    }
}
chassis {
    cluster {
        reth-count 2;
        redundancy-group 0 {
            node 0 priority 100;
            node 1 priority 1;
        }
        redundancy-group 1 {
            node 0 priority 100;
            node 1 priority 1;
            interface-monitor {
                ge-0/0/2 weight 255;
                ge-0/0/3 weight 255;
                ge-7/0/2 weight 255;
                ge-7/0/3 weight 255;
            }
        }
    }
}
security {
    screen {
        ids-option untrust-screen {
            icmp {
                ping-death;
            }
            ip {
                source-route-option;
                tear-drop;
            }
            tcp {
                syn-flood {
                    alarm-threshold 1024;
                    attack-threshold 200;
                    source-threshold 1024;
                    destination-threshold 2048;
                    queue-size 2000; ## Warning: 'queue-size' is deprecated
                    timeout 20;
                }
                land;
            }
        }
    }
    policies {
        from-zone trust to-zone trust {
            policy default-permit {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permit;
                }
            }
        }
        from-zone trust to-zone untrust {
            policy default-permit {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    permit;
                }
            }
        }
        pre-id-default-policy {
            then {
                log {
                    session-close;
                }
            }
        }
    }
    zones {
        security-zone trust {
            tcp-rst;
            interfaces {
                reth0.0;
            }
        }
        security-zone untrust {
            screen untrust-screen;
            interfaces {
                reth1.0;
            }
        }
    }
}
interfaces {
    ge-0/0/2 {
        gigether-options {
            redundant-parent reth0;
        }
    }
    ge-0/0/3 {
        gigether-options {
            redundant-parent reth1;
        }
    }
    ge-7/0/2 {
        gigether-options {
            redundant-parent reth0;
        }
    }
    ge-7/0/3 {
        gigether-options {
            redundant-parent reth1;
        }
    }
    fab0 {
        fabric-options {
            member-interfaces {
                ge-0/0/0;
                ge-0/0/1;
            }
        }
    }
    fab1 {
        fabric-options {
            member-interfaces {
                ge-7/0/0;
                ge-7/0/1;
            }
        }
    }
    fxp0 {
        unit 0;
    }
    reth0 {
        vlan-tagging;
        redundant-ether-options {
            redundancy-group 1;
        }
        unit 0 {
            vlan-id 10;
            family inet {
                address 192.168.2.1/24;
            }
        }
    }
    reth1 {
        vlan-tagging;
        redundant-ether-options {
            redundancy-group 1;
        }
        unit 0 {
            vlan-id 20;
            family inet {
                address 172.16.0.1/24;
            }
        }
    }
}
```

</div></details>

<details><summary>show chassis cluster status  ※クラスタ全体のステータス確認</summary><div>

```markdown
root@SRX01> show chassis cluster status
Monitor Failure codes:
    CS  Cold Sync monitoring        FL  Fabric Connection monitoring
    GR  GRES monitoring             HW  Hardware monitoring
    IF  Interface monitoring        IP  IP monitoring
    LB  Loopback monitoring         MB  Mbuf monitoring
    NH  Nexthop monitoring          NP  NPC monitoring
    SP  SPU monitoring              SM  Schedule monitoring
    CF  Config Sync monitoring      RE  Relinquish monitoring
    IS  IRQ storm

Cluster ID: 1
Node   Priority Status               Preempt Manual   Monitor-failures

Redundancy group: 0 , Failover count: 1
node0  100      primary              no      no       None
node1  0        secondary            no      no       FL

Redundancy group: 1 , Failover count: 1
node0  100      primary              no      no       None
node1  0        secondary            no      no       IF CS FL
```

</div></details>

<details><summary>show chassis cluster interfaces ※クラスタインタフェースの確認</summary><div>

```markdown
root@SRX01> show chassis cluster interfaces
Control link status: Up

Control interfaces:
    Index   Interface   Monitored-Status   Internal-SA   Security
    0       em0         Up                 Disabled      Disabled

Fabric link status: Down

Fabric interfaces:
    Name    Child-interface    Status                    Security
                               (Physical/Monitored)
    fab0    ge-0/0/0           Up   / Down               Disabled
    fab0    ge-0/0/1           Up   / Down               Disabled
    fab1    ge-7/0/0           Up   / Down               Disabled
    fab1    ge-7/0/1           Up   / Down               Disabled

Redundant-ethernet Information:
    Name         Status      Redundancy-group
    reth0        Up          1
    reth1        Up          1

Redundant-pseudo-interface Information:
    Name         Status      Redundancy-group
    lo0          Up          0

Interface Monitoring:
    Interface         Weight    Status                    Redundancy-group
                                (Physical/Monitored)
    ge-7/0/3          255       Up  /  Up                 1
    ge-7/0/2          255       Up  /  Up                 1
    ge-0/0/3          255       Up  /  Up                 1
    ge-0/0/2          255       Up  /  Up                 1
```
</div></details>

### GUI
`http://プライマリのIPアドレス`にブラウザからアクセスをする。
本記事では`http://192.168.1.122`にアクセスをする。
<details><summary>アクセス後の確認方法</summary><div>
1. ログインをする

![0.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/748917/b870ce99-c176-6362-dd6b-5832f868106b.png)

2. [デバイス管理] > [クラスタ管理] > [クラスター設定]へアクセスをすると、下図のようなクラスタ設定の詳細を確認できます。

Node設定
![1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/748917/0023430d-f87f-e037-fdd0-bebd556e7fc7.png)
インターフェースやRG設定
![2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/748917/e1b7d77b-c92a-196e-f2df-c81cd1854f6b.png)
RGのインターフェースモニター設定
![3.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/748917/e53101c0-7999-dff8-7383-f2c15b96a83b.png)


</div></details>

# 他設定
他の設定については、随時追加していこうと思います。

下記サイトで追加情報があります。

https://tatsuya-k.net/network/juniper/basic-setting/

## ter len 0
以下を実行することでCisco機器のter len 0と同様に、セッション中に実行したshowコマンドで全てを一括表示することができます。

設定コマンドは以下です。
```markdown
> set cli screen-length 0
Screen length set to 0
```

## ユーザ作成
クラスは以下３種類あります。
|  クラス名  |  権限  |
| ---- | ---- |
|  super-user  |  全部  |
|  operator  |  権限のクリア、ネットワーク、リセット、トレース、および表示  |
|  read-only  |  読み取り  |
|  unauthorized  |  権限なし  |

設定コマンドは以下です。
```markdown
set system login user <ユーザ名> class <クラス名> authentication plain-text-password

## 例：ユーザ名「TEST」、読み取り専用権限
set system login user TEST class read-only authentication plain-text-password
```

## スタティックルーティング
```markdown
# 設定コマンド
set routing-options static route 宛先NW/サブネットマスク next-hop ネクストホップIP
## 例
root# set routing-options static route 0.0.0.0/0 next-hop 192.168.2.254

# 確認
root# show | compare 
+  routing-options {
+      static {
+          route 0.0.0.0/0 next-hop 192.168.2.254;
+      }
+  }

# ルーティングテーブル確認
root> show route 
0.0.0.0/0          *[Static/5] 00:00:13
                    >  to 192.168.2.254 via fxp0.0
```

## NTPサーバ
私の環境ではNTPサーバを別途用意しているので、NTPサーバから取得するように設定しようと思います。

設定コマンドは以下です。
```markdown
# 設定コマンド
set system time-zone Asia/Tokyo
set system ntp server 192.168.1.201 prefer

# show | compare
time-zone Asia/Tokyo;
ntp {
    server 192.168.1.201 prefer;
}
```

## SNMP
SNMPは、SNMPサーバからSRX向けへのポーリング監視と、SRXからSNMPサーバ向けへのSNMPトラップ監視があります。
それぞれの設定を記載します。

### SNMPポーリング
```markdown
# 設定コマンド
set snmp community <コミュニティ名> authorization <権限>
## 権限：読み書き＝read-write / 読み取り専用＝read-only

# SNMPに関する受信を許可する
## 例：ゾーンtrustに所属するインターフェースではSNMP受信を許可
set security zones security-zone trust host-inbound-traffic system-services snmp

# SNMPアクセス制限
set snmp community public clients <許可するIPアドレス>
set snmp community public clients <拒否するIPアドレス> restrict
## 基本的に、許可するIPアドレスを設定して、拒否するIPアドレスは0.0.0.0/0を設定すればOK
set snmp community public clients 192.168.1.1/32
set snmp community public clients 0.0.0.0/0 restrict
```

### SNMPトラップ
```markdown
# 設定コマンド
set snmp trap-group <トラップグループ名> version v2
set snmp trap-group <トラップグループ名> targets <SNMNP管理サーバIPアドレス>
set snmp trap-group <トラップグループ名> categories <トラップ内容>
## 送信するトラップ内容の一例
set snmp trap-group <トラップグループ名> categories authentication
set snmp trap-group <トラップグループ名> categories chassis
set snmp trap-group <トラップグループ名> categories link
set snmp trap-group <トラップグループ名> categories remote-operations
set snmp trap-group <トラップグループ名> categories routing
set snmp trap-group <トラップグループ名> categories startup
set snmp trap-group <トラップグループ名> categories rmon-alarm
set snmp trap-group <トラップグループ名> categories vrrp-events
set snmp trap-group <トラップグループ名> categories configuration
```

## インターフェースにPing疎通
デフォルトで全インターフェースにPingを飛ばすことができない設定になっています。
そのため、疎通確認が必要なインターフェースでPingの許可をする必要があります。

```markdown
# 設定コマンド
set security zones security-zone <ゾーン> interfaces <物理インターフェース> host-inbound-traffic system-services ping

# 例：reth0.0のIPにPingを飛ばせるようにする
set security zones security-zone Untrust interfaces reth0 host-inbound-traffic system-services ping
```

## シャットダウン
シャットダウンは設定ではありませんが、終了する際に必ず使うコマンドなので記載します。

```markdown
> request system power-off
Power Off the system ? [yes,no] (no) yes
```

## Rollback
Rollbackは設定ではありませんが、設定を戻したいときに使用するコマンドなので記載します。

```markdown
# 確認
root# rollback ?
Possible completions:
  <[Enter]>            Execute this command
  0                    2023-01-01 03:12:31 JST by root via cli 
  1                    2022-12-24 14:48:29 JST by root via cli 
  2                    2022-12-24 14:45:13 JST by root via cli 
  3                    2022-12-24 14:19:00 JST by root via other 
  revision             Rollback to given configuration revision
  |                    Pipe through a command

# Rollback
root# rollback 1 
load complete

# Commitで設定反映
root# commit 
commit complete
```

## 管理用ルーティングテーブル分離

https://tatsuya-k.ml/network/juniper/juniper-vsrx_vrf/

## トラフィックログ設定
トラフィックログをローカルログへ保存する・syslogサーバに転送する方法です。

### モードの設定
eventまたはstreamのモードがあります。

デフォルトでは、eventが設定されています。
基本的にeventモードを使用することで、トラフィックログをローカルファイルに保存したり、syslogサーバに送信することができます。

streamモードは高負荷なトラフィック環境でセキュリティログの取得が必要な場合に推奨されます。
syslogサーバに転送することは可能ですが、ローカルファイルには保存されません。
```markdown
# モード設定（eventまたはstream）
set security log event
set security log stream
```

### ポリシー内のログアクション設定
```markdown
set security policies from-zone <zone名> to-zone <zone名> policy <policy名> then log <session-init/session-close>
# session-init：セッションが開始したと同時にログに保存される
# session-close：セッションが終了したと同時にログに保存される
## 上記をともに設定すると、開始と終了時にログ保存されます。
```

### eventモード設定
```markdown:event
# ************** log設定 **************
## 1秒あたりにログをストリーミングする速度を制限(default:1500)
set security log event-rate <0~1500>
## ログフォーマット(default:Syslog)
set security log format <binary/sd-syslog/syslog>

# ************** ログファイルを指定する **************
set system syslog file <ファイル名> <facility> <severity>
set system syslog file <ファイル名> match <ログファイル内の文字列>
## 例：ファイル名「policy_session」
## ※RT_FLOWはトラフィックログに含まれる文字であるため、基本的に同じで問題ないです。
set system syslog file policy_session any any
set system syslog file policy_session match RT_FLOW

# ************** Syslogサーバーに送信する **************
set system syslog host <syslogサーバのIP> <facility> <severity>
user@srx# set system syslog host <syslogサーバのIP> match <ログファイル内の文字列>

# ************** ログの確認 **************
## ポリシーを使用した通信を発生させた後に、ログを確認します。
> show log <ファイル名>
Jan XX HH:MM:SS  ホスト名 RT_FLOW: RT_FLOW_SESSION_CREATE: session created IPアドレス①/40829->IPアドレス② 0x0 icmp IPアドレス①/40829->IPアドレス②/3 0x0 N/A N/A N/A N/A 1 policy名 from-zone to-zone 316 N/A(N/A) reth0.0 UNKNOWN UNKNOWN UNKNOWN N/A N/A -1 N/A N/A N/A Off root
Jan XX HH:MM:SS  ホスト RT_FLOW: RT_FLOW_SESSION_CLOSE: session closed response received: IPアドレス①/40829->IPアドレス②/1 0x0 icmp IPアドレス①/40829->IPアドレス②/1 0x0 N/A N/A N/A N/A 1 policy名 from-zone to-zone 314 1(84) 1(84) 3 UNKNOWN UNKNOWN N/A(N/A) reth0.0 UNKNOWN N/A N/A -1 N/A NA 0 0.0.0.0/0->0.0.0.0/0 NA NA N/A N/A Off root
```

### streamモード設定
```markdown
# ************** 送信元アドレスを指定 **************
set security log source-address <IP>

# ************** syslog送信設定 **************
set security log stream <ファイル名> format <binary/sd-syslog/syslog>
set security log stream <ファイル名> host <syslogサーバのIP>
```

## HA切替・切戻
```markdown
# RGのプライマリNodeをプライオリティを強制的に255にしてフェールオーバーさせます
request chassis cluster failover redundancy-group <プライマリを変更するRG番号> node <プライマリにするノード番号>

## RG0/1でNode0がプライマリである状態から、Node1をプライマリに変更します
request chassis cluster failover redundancy-group 0 node 1
request chassis cluster failover redundancy-group 1 node 1

# 上記コマンドでプライオリティ255にするフェイルオーバーをした後に、再度フェイルオーバー・バックをする際はプライオリティのリセットをする必要があります
## リセットをすると、設定値に戻ります
request chassis cluster failover reset
```


# 参考にしたリンク集
- [vSRXで遊ぶ](https://qiita.com/Shakapon/items/7ddb2be6e890c3e16984)
- [7. Chassis Cluster（冗長構成）の CLI 設定](https://www.juniper.net/content/dam/www/assets/additional-resources/jp/ja/chassis-cluster.pdf)
- [SRX - Chassis Cluster （冗長化機能）](https://www.infraeye.com/study/srx7.html)
- [SRX シャーシクラスター《ブランチ編》](https://www.juniper.net/assets/jp/jp/local/pdf/others/br_chassis-clustering.pdf)
- [デバイスのvSRX シャーシ クラスタを設定Junos OS](https://www.juniper.net/documentation/jp/ja/software/vsrx/vsrx-consolidated-deployment-guide/vsrx-hyper-v/topics/task/security-vsrx-chassis-cluster-configuring.html)