FortiADC 100F(ロードバランサ) 設定メモ

## 参考

* [マニュアル (英語)](http://docs.fortinet.com/fortiadc-d-series/admin-guides)
* [トラブルシューティング](https://blog.webernetz.net/2015/12/21/cli-commands-for-troubleshooting-fortigate-firewalls/)
* [機種ごとの性能一覧](http://www.avfirewalls.com.au/FortiADC-200F.asp) Specificationsタブにあり。
* FortiADC : http://docs.fortinet.com/fortiadc-d-series/release-information
* [Fortinet – it-tech-knowledge](http://techknowit.info/category/fortinet/)

|バージョン| リリース日 |
|--:|:--|
| 4.7.3 | 2017/5/24  |
| 4.8.0 | 2017/7/28  |
| 4.8.1 | 2017/10/2  |
| 4.8.2 | 2017/11/2  |
| 4.8.3 | 2017/12/18 |
| 4.8.4 | 2018/1/19 |
| 5.0.0 | 2018/2/2 |
| 5.1.0 | 2018/7/10 |
| 5.2.0 | 2018/12/14 |

## IP設定

* [FortiADC D Series - Hardware Manuals](http://docs.fortinet.com/fortiadc-d-series/hardware)

開封時の初期設定方法が記載されている。

* http://192.168.1.99
    * admin : passなし
* ssh 192.168.1.99
    * admin : passなし
* シリアル接続: 9600 bps
    * admin : passなし

## 電源ONからの起動速度

* 電源ONからping応答まで55秒くらい。
* GUI画面から再起動をかけてping応答なしから応答ありに戻るまでも55秒くらい。


## GUI

### ログイン

http://192.168.1.99

![login.png](https://qiita-image-store.s3.amazonaws.com/0/25728/c19a7257-1f75-2ff5-4056-94e4e32e6f4b.png)

admin : パスワードなし

### 言語

![lang.png](https://qiita-image-store.s3.amazonaws.com/0/25728/6364594f-dd65-8b9a-2557-28683fb445e7.png)

### portのIP設定

* HAノードIPアドレス (192.168.1.99, 192.168.100.99)
    * マスター/スレーブで同じIPアドレスを使うため、スレーブにGUIログインできないので注意。(次のHAの項目にも記載)
* ハートビート、データ用に指定したport6はIPアドレス不要。

![interface.png](https://qiita-image-store.s3.amazonaws.com/0/25728/76032bca-e049-36de-5c59-1ee4bfe1631e.png)

### default gateway

* コンソールから`execute ping 8.8.8.8`が通ることを確認。

![gw.png](https://qiita-image-store.s3.amazonaws.com/0/25728/1d6602ac-f34b-5556-1bf9-6d3161647583.png)

* port3に繋がっているPCも`ping 8.8.8.8`が通るようにするには、次のNAT設定を行う。

### NAT

```bash:構成
  インターネット
      |
   192.168.1.1
      |
   192.168.1.99 (port1)
      |
   192.168.100.99 (port3)
      |
   192.168.100.98 (インターネットに出たいPC)
```

* `translatlon to Address`はport1に設定したIPアドレスを指定。

![port3to1.png](https://qiita-image-store.s3.amazonaws.com/0/25728/fa33423d-b2ad-b240-4092-fdb0c52b9fb3.png)


### 1-to-1-NAT

* [fortiadc-5.0.0-cli-reference.pdf](https://s3.amazonaws.com/fortinetweb/docs.fortinet.com/v2/attachments/8524b15b-2436-11e9-b20a-f8bc1258b856/fortiadc-5.0.0-cli-reference.pdf) 48p

![1-1nat.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/e9068de0-855d-bc10-b020-ff091350445b.png)


### HA

* Monitor : このportが1つでもケーブル抜けると、マスター/スレーブが切り替わる。
    * 以下の例では、マスターの port1 もしくは port3 を抜くと、セカンダリとマスターが切り替わります。

![ha.png](https://qiita-image-store.s3.amazonaws.com/0/25728/1b4e778d-a332-0cd7-5a17-fee2afb72df6.png)

* HA設定した後はスレーブにGUIログインできない。
    * シリアルケーブルでのログインは可能
    * もしくはGUI -> コンソール -> `execute ha manage 0`にてシリアルと同じ操作ができる

### Server Load Balance - Virtual Server

* Persistence
    * click to select : 同じサーバーに再接続するかを考慮しない。
    * LB_PERSIS_SIP : 最後の接続から300秒以内であれば、同じサーバーに再接続する。

![persistence.png](https://qiita-image-store.s3.amazonaws.com/0/25728/39ff335f-c244-3f1c-4438-94fa7a416679.png)

* Dashboard - Session Monitoring - Persist Table に表示されている Expires の値(秒)。0になったら消える
    * もしくは、`Clear`ボタンを押すと強制的に消すことができる。

![expires.png](https://qiita-image-store.s3.amazonaws.com/0/25728/4a7f1b79-01ee-e07c-2ec2-e6a757571624.png)

* timeout値を変更するには、cloneして保存する必要がある。

![timeout.png](https://qiita-image-store.s3.amazonaws.com/0/25728/def703f0-3b70-5225-e66d-0160eb90b207.png)

* 仮想IP一覧は ダッシュボード - HA Status - Traffic Status で確認できる。

![HAStatus.png](https://qiita-image-store.s3.amazonaws.com/0/25728/7dde1aee-1f72-1c3a-5eae-4a70d80b4071.png)


### Server Load Balance - Application Resources

L7の場合、接続元のIPアドレスがport3のIPアドレスで記録される問題

1. Application Resources - Add - Type から HTTPを選択
2. 送信元アドレス - 有効にチェック
3. HTTPモードはキープアライブにするとセッション数が増えすぎる可能性がある。
Once OnlyかServer Closeを選択。
4. Save
5. Virtual Server - L7 のものの pofile にて、先程作成したものを選択。

これで接続元のグローバルIPでwebサーバーのaccess_logに記録されるようになる。

![スクリーンショット_2017-05-22_11-52-02.png](https://qiita-image-store.s3.amazonaws.com/0/25728/22123025-9049-411b-16ac-59418da7e7c1.png)

![スクリーンショット_2017-05-23_10-35-05.png](https://qiita-image-store.s3.amazonaws.com/0/25728/4a74739d-5500-ba68-ed4b-529870655630.png)


### backup / restore

HA構成でのバックアップは、片方のバックアップだけで良い。
リストア時にホスト名だけ修正。

![スクリーンショット_2017-05-15_11-31-47.png](https://qiita-image-store.s3.amazonaws.com/0/25728/41a5a633-d1a1-0c93-9794-285381a513a1.png)

### 工場出荷状態に戻す

![スクリーンショット_2017-05-15_11-32-45.png](https://qiita-image-store.s3.amazonaws.com/0/25728/3379bf5d-472f-e08a-f3b7-54396cafaf4f.png)

### アラートメール

![スクリーンショット_2017-05-15_11-36-57.png](https://qiita-image-store.s3.amazonaws.com/0/25728/1daa6708-ac2a-9b48-4d72-1ab40f380a77.png)

### firewall

* 出荷時: 全許可

![fw.png](https://qiita-image-store.s3.amazonaws.com/0/25728/74e2fc7a-260b-fd27-38cb-8745389e37ba.png)

----


## cli設定

* 1台目

```rb
config system interface
edit port3
set ip 192.168.100.99/24
set allowaccess http https ping snmp ssh telnet
end
```


* 2台目

```rb
config system interface
edit port1
set ip 192.168.1.98/24
set allowaccess http https ping snmp ssh telnet
end

config system interface
edit port3
set ip 192.168.100.98/24
set allowaccess http https ping snmp ssh telnet
end
```

----

### default gateway

```
config router static
edit 1
set gateway <gateway_ipv4>
end
```

### interface settings

```
config system interface
edit <interface_name>
set ip <ip&netmask>
set allowaccess {http https ping snmp ssh telnet}
end
```

* [FortiADC Handbook 4.7.1 - Configuring network interfaces](http://help.fortinet.com/fadc/4-7-1/olh/index.html#FortiADC/handbook/interface.htm%3FTocPath%3DChapter%252011%253A%2520Basic%2520Networking%7C_____1)

```rb
config system interface
edit port3
set ha-node-secondary-ip enable
config ha-node-secondary-ip-list
edit 1
set ip 192.168.1.100
set allowaccess ping
end
```

### change password

* [FortiADC Handbook 4.7.1 - Enable password policies](http://help.fortinet.com/fadc/4-7-1/olh/index.html#FortiADC/handbook/admin_password_policy.htm%3FTocPath%3DChapter%252012%253A%2520System%2520Management%7C_____12)

> 最短8文字

```rb
config system admin
edit admin
set password <string>
end
```


### network test

```
execute ping <destination_ip4>
execute traceroute <destination_ipv4> 
```

----

## Server Load Balancing

* [Using real server pools](http://help.fortinet.com/fadc/4-7-1/olh/index.html#FortiADC/handbook/real_server_pool.htm%3FTocPath%3DChapter%25204%253A%2520Server%2520Load%2520Balancing%7C_____6)
* [dashboard](http://help.fortinet.com/fadc/4-7-1/olh/index.html#FortiADC/handbook/db_server_load_balance.htm%3FTocPath%3DChapter%252020%253A%2520System%2520Dashboard%7C_____3)


## 再起動や初期化

* [FortiADC Handbook 4.7.1 - Rebooting, resetting, and shutting down the system](http://help.fortinet.com/fadc/4-7-1/olh/index.html#FortiADC/handbook/Rebooting__resetting__and_shutting_down_the_system.htm%3FTocPath%3DChapter%252012%253A%2520System%2520Management%7C_____8)

```
execute reboot
execute factoryreset 
execute shutdown 
```

## HA settings

* [FortiADC Handbook 4.7.1 - Configuring HA settings](http://help.fortinet.com/fadc/4-7-1/olh/index.html#FortiADC/handbook/high_availability.htm%3FTocPath%3DChapter%252014%253A%2520High%2520Availability%2520Deployments%7C_____4)

## 状態確認

```sh
# OSのversion確認
get system status

# もう片方の本体にログイン
execute ha manage 0
```

## LBの下のWEBサーバーがアクセス元のIPをログに残すには「spoof」を有効にする必要がある

「スプーフ」

> (5) HTTPS通信の際にアクセス元のソースIPアドレスが判別出来る
Spoof機能がないロードバランサではHTTPS通信時のソースIPアドレスが検知できず、ロードバランサのIPとなってしますので、アクセス元制限やログ解析、調査などに支障があります。 

* [ロードバランサの導入メリットについて : makoto_fujimotoのblog](http://blog.shinkaku.co.jp/archives/42596262.html)



## 性能比較

* [FortiADC__2.5_20180709.pdf](https://www.networld.co.jp/files/3015/3110/3493/FortiADC__2.5_20180709.pdf) 5p

![スクリーンショット_2019-07-12_07-53-17.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/25728/30614844-efeb-7600-9ea2-3bf8ff331c96.png)