10.3.2. WEBサイト公開におけるファイアウォール/ロードバランサー構成例(ワンアーム)

動作確認バージョン:Brocade 5600vRouter Version4.2R1S1
動作確認バージョン:Netscaler VPX Version11.0 Build67.12 Standard Edition
WEBサーバーを外部に公開するため、以下の方針でファイアウォール(FW)とロードバランサー(LB)を設定します。

ファイアウォール

  • VRRPを使用して2台冗長構成をとります。全てのセグメントでVRRPを構築します。
  • FWルールは外部セグメントからは基本全て拒否し、特定のHTTP/HTTPSアクセスのみ許可します。信頼されたセグメントからは全て許可とします。
  • 外部セグメントからはLBのバーチャルサーバのIPではなく、FWのグローバルIPにアクセスさせ、NAT変換で宛先をバーチャルサーバのIPに変換します。

ロードバランサー

  • VRRPを使用して2台冗長構成をとります。FWセグメントでVRRPを構築します。
  • HTTP/HTTPS 用のバーチャルサーバを立て、2台のWEBサーバーにラウンドロビンで通信を分散します。HTTPSはSSLオフロードを行います。
  • ECL2.0のロードバランサー(NetScalerVPX)では、1つのインターフェースに対して登録可能なVRRP設定(仮想IPアドレスとVRRPグループIDのペア)は1つとなります。従って、複数のVRRPグループの登録は出来ません。代替方法としてVRRP用に登録したVirtual IP とは別のセグメントに、仮想IP アドレスを登録し、それを振り分け対象IPアドレスに設定することで複数VIPを冗長化させることが可能です。本構成はこちらの方法を利用して冗長構成をとっております。

設定概念のイメージ

function_b_0

10.3.2.1. システム構成図

function_b_1

注釈

  • ClientのOSは “Windows Server 2012R2” を使用しております。
  • ServerのOSは “CentOS 7.1.1503” を使用しております。
  • Webサーバは “Apache 2.2.32” を使用しております。

10.3.2.2. ファイアウォール設定の内容

ファイアウォールインタフェース設定

設定内容の確認のためにインタフェース設定を示しておりますが、実際にはインタフェース設定はカスタマポータル上で設定して頂く必要があります。
以下インタフェース設定コマンドを投入するとエラーが返ってきますのでご注意ください。

注釈

  • インタフェース設定はカスタマポータル以外で設定することはできません。
  • FW-01
set interfaces dataplane dp0s4 address '1.X.X.253/24'
set interfaces dataplane dp0s5 address '192.168.100.253/24'
set interfaces dataplane dp0s6 address '192.168.20.253/24'
  • FW-02
set interfaces dataplane dp0s4 address '1.X.X.252/24'
set interfaces dataplane dp0s5 address '192.168.100.252/24'
set interfaces dataplane dp0s6 address '192.168.20.252/24'

VRRP設定

VRRP設定前に、必ずカスタマポータル上でVRRP通信許可設定を実施いただく必要があります。
VRRP用通信設定の登録 をご参照ください。
  • FW-01
dp0s4側
set interfaces dataplane dp0s4 vrrp vrrp-group 11 advertise-interval '20'
set interfaces dataplane dp0s4 vrrp vrrp-group 11 preempt 'true'
set interfaces dataplane dp0s4 vrrp vrrp-group 11 priority '150'
set interfaces dataplane dp0s4 vrrp vrrp-group 11 'rfc-compatibility'
set interfaces dataplane dp0s4 vrrp vrrp-group 11 sync-group 'test-b'
set interfaces dataplane dp0s4 vrrp vrrp-group 11 virtual-address '1.X.X.254'
dp0s5側
set interfaces dataplane dp0s5 vrrp vrrp-group 21 advertise-interval '20'
set interfaces dataplane dp0s5 vrrp vrrp-group 21 preempt 'true'
set interfaces dataplane dp0s5 vrrp vrrp-group 21 priority '150'
set interfaces dataplane dp0s5 vrrp vrrp-group 21 'rfc-compatibility'
set interfaces dataplane dp0s5 vrrp vrrp-group 21 sync-group 'test-b'
set interfaces dataplane dp0s5 vrrp vrrp-group 21 virtual-address '192.168.100.254'
dp0s6側
set interfaces dataplane dp0s6 vrrp vrrp-group 31 advertise-interval '20'
set interfaces dataplane dp0s6 vrrp vrrp-group 31 preempt 'true'
set interfaces dataplane dp0s6 vrrp vrrp-group 31 priority '150'
set interfaces dataplane dp0s6 vrrp vrrp-group 31 'rfc-compatibility'
set interfaces dataplane dp0s6 vrrp vrrp-group 31 sync-group 'test-b'
set interfaces dataplane dp0s6 vrrp vrrp-group 31 virtual-address '192.168.20.254'
  • FW-02
dp0s4側
set interfaces dataplane dp0s4 vrrp vrrp-group 11 advertise-interval '20'
set interfaces dataplane dp0s4 vrrp vrrp-group 11 preempt 'true'
set interfaces dataplane dp0s4 vrrp vrrp-group 11 priority '20'
set interfaces dataplane dp0s4 vrrp vrrp-group 11 'rfc-compatibility'
set interfaces dataplane dp0s4 vrrp vrrp-group 11 sync-group 'test-b'
set interfaces dataplane dp0s4 vrrp vrrp-group 11 virtual-address '1.X.X.254'
dp0s5側
set interfaces dataplane dp0s5 vrrp vrrp-group 21 advertise-interval '20'
set interfaces dataplane dp0s5 vrrp vrrp-group 21 preempt 'true'
set interfaces dataplane dp0s5 vrrp vrrp-group 21 priority '20'
set interfaces dataplane dp0s5 vrrp vrrp-group 21 'rfc-compatibility'
set interfaces dataplane dp0s5 vrrp vrrp-group 21 sync-group 'test-b'
set interfaces dataplane dp0s5 vrrp vrrp-group 21 virtual-address '192.168.100.254'
dp0s6側
set interfaces dataplane dp0s6 vrrp vrrp-group 31 advertise-interval '20'
set interfaces dataplane dp0s6 vrrp vrrp-group 31 preempt 'true'
set interfaces dataplane dp0s6 vrrp vrrp-group 31 priority '20'
set interfaces dataplane dp0s6 vrrp vrrp-group 31 'rfc-compatibility'
set interfaces dataplane dp0s6 vrrp vrrp-group 31 sync-group 'test-b'
set interfaces dataplane dp0s6 vrrp vrrp-group 31 virtual-address '192.168.20.254'

注釈

  • 本構成において非対称通信はサポートしておりません。複数インターフェースでVRRPを利用する際、sync-group設定によりVRRPの切り替わりを同期させてください。
  • VRRPのadvertise intervalは初期設定では基盤側においてVRRP通信が稀に不安定になることが確認されていたため20sec以上を推奨しておりましたが(2016年12月時点)、不安定事象が解消したためお客様のシステム構成に合わせ設計ください(2017年8月時点)。(3回連続でHello Packetを受信しなかった際に断検知します)。なお本設定を変更する場合、Backup側のファイアウォールから変更してください。Master側から変更すると、Backup側へのHelloパケット送信間隔が変わるため、Backup側もMasterに昇格し、両装置がMasterになる可能性があります。

リソースグループの設定

FWルールの許可ポートに使用するポートグループを作成します。
  • FW-01/02 共通
set resources group port-group HTTP-HTTPS port '80'
set resources group port-group HTTP-HTTPS port '443'

FWルールの設定

ステートフルFWを有効化します。
  • FW-01/02 共通
set security firewall global-state-policy 'icmp'
set security firewall global-state-policy 'tcp'
set security firewall global-state-policy 'udp'
外部セグメント側から来る通信のアクセス制御を行うルールを作成します。
- 基本的にすべて拒否
- FW-02 からの通信は許可(VRRPなど管理通信を行うため)
- HTTP(80),HTTPS(443)通信のみ許可
  • FW-01
set security firewall name Untrust-to-HTTP default-action 'drop'
set security firewall name Untrust-to-HTTP rule 1 action 'accept'
set security firewall name Untrust-to-HTTP rule 1 source address '1.X.X.252'
set security firewall name Untrust-to-HTTP rule 10 action 'accept'
set security firewall name Untrust-to-HTTP rule 10 destination address '1.X.X.254'
set security firewall name Untrust-to-HTTP rule 10 destination port 'HTTP-HTTPS'
set security firewall name Untrust-to-HTTP rule 10 protocol 'tcp'
set security firewall name all_accept default-action 'accept'
  • FW-02
set security firewall name Untrust-to-HTTP default-action 'drop'
set security firewall name Untrust-to-HTTP rule 1 action 'accept'
set security firewall name Untrust-to-HTTP rule 1 source address '1.X.X.253'
set security firewall name Untrust-to-HTTP rule 10 action 'accept'
set security firewall name Untrust-to-HTTP rule 10 destination address '1.X.X.254'
set security firewall name Untrust-to-HTTP rule 10 destination port 'HTTP-HTTPS'
set security firewall name Untrust-to-HTTP rule 10 protocol 'tcp'
set security firewall name all_accept default-action 'accept'
作成したFWルールをインタフェースに適用します。
  • FW-01/02 共通
set interfaces dataplane dp0s4 firewall in 'Untrust-to-HTTP'
set interfaces dataplane dp0s6 firewall out 'all_accept'
外部セグメントからFWに対するHTTP、HTTPSアクセスをロードバランサーに設定されているバーチャルサーバーのアドレスへ変更するNAT設定を行います。
  • FW-01/02 共通
set service nat destination rule 10 destination address '1.X.X.254'
set service nat destination rule 10 destination port '80'
set service nat destination rule 10 inbound-interface 'dp0s4'
set service nat destination rule 10 protocol 'tcp'
set service nat destination rule 10 translation address '192.168.200.100'
set service nat destination rule 11 destination address '1.X.X.254'
set service nat destination rule 11 destination port '443'
set service nat destination rule 11 inbound-interface 'dp0s4'
set service nat destination rule 11 protocol 'tcp'
set service nat destination rule 11 translation address '192.168.200.200'
set service nat destination rule 11 translation port '443'
ロードバランサーに設定されている、バーチャルサーバへのルーティングを作成します。
set protocols static route 192.168.200.0/24 next-hop '192.168.20.251'

設定内容の確認

前述の設定が正しく投入されている場合、以下出力が確認できます。
  • FW-01
user-admin@FW-01# show interfaces
interfaces {
       dataplane dp0s4 {
               address 1.X.X.253/24
               firewall {
                       in Untrust-to-HTTP
               }
               vrrp {
                       vrrp-group 11 {
                               advertise-interval 20
                               preempt true
                               priority 150
                               rfc-compatibility
                               sync-group test-b
                               virtual-address 1.X.X.254
                       }
               }
       }
       dataplane dp0s5 {
               address 192.168.100.253/24
               vrrp {
                       vrrp-group 21 {
                               advertise-interval 20
                               preempt true
                               priority 150
                               rfc-compatibility
                               sync-group test-b
                               virtual-address 192.168.100.254
                       }
               }
       }
       dataplane dp0s6 {
               address 192.168.20.253/24
               firewall {
                       out all_accept
               }
               vrrp {
                       vrrp-group 31 {
                               advertise-interval 20
                               preempt true
                               priority 150
                               rfc-compatibility
                               sync-group test-b
                               virtual-address 192.168.20.254
                       }
               }
       }
       loopback lo
}

user-admin@FW-01# show resources
resources {
       group {
               port-group HTTP-HTTPS {
                       port 80
                       port 443
               }
       }
}

user-admin@FW-01# show security firewall
firewall {
       global-state-policy {
               icmp
               tcp
               udp
       }
       name Untrust-to-HTTP {
               default-action drop
               rule 1 {
                       action accept
                       source {
                               address 1.X.X.252
                       }
               }
               rule 10 {
                       action accept
                       destination {
                               address 1.X.X.254
                               port HTTP-HTTPS
                       }
                       protocol tcp
               }
       }
       name all_accept {
               default-action accept
       }
}

user-admin@FW-01# show  service nat destination
destination {
       rule 10 {
               destination {
                       address 1.X.X.254
                       port 80
               }
               inbound-interface dp0s4
               protocol tcp
               translation {
                       address 192.168.200.100
               }
       }
       rule 11 {
               destination {
                       address 1.X.X.254
                       port 443
               }
               inbound-interface dp0s4
               protocol tcp
               translation {
                       address 192.168.200.200
                       port 443
               }
       }
}

user-admin@FW-01# show protocols static
static {
       route 192.168.200.0/24 {
               next-hop 192.168.20.251
       }
}
  • FW-02
user-admin@FW-02# show interfaces
interfaces {
       dataplane dp0s4 {
               address 1.X.X.252/24
               firewall {
                       in Untrust-to-HTTP
               }
               vrrp {
                       vrrp-group 11 {
                               advertise-interval 20
                               preempt true
                               priority 20
                               rfc-compatibility
                               sync-group test-b
                               virtual-address 1.X.X.254
                       }
               }
       }
       dataplane dp0s5 {
               address 192.168.100.252/24
               vrrp {
                       vrrp-group 21 {
                               advertise-interval 20
                               preempt true
                               priority 20
                               rfc-compatibility
                               sync-group test-b
                               virtual-address 192.168.100.254
                       }
               }
       }
       dataplane dp0s6 {
               address 192.168.20.252/24
               firewall {
                       out all_accept
               }
               vrrp {
                       vrrp-group 31 {
                               advertise-interval 20
                               preempt true
                               priority 20
                               rfc-compatibility
                               sync-group test-b
                               virtual-address 192.168.20.254
                       }
               }
       }
       loopback lo
}

user-admin@FW-02# show resources
resources {
       group {
               port-group HTTP-HTTPS {
                       port 80
                       port 443
               }
       }
}

user-admin@FW-02# show security firewall
firewall {
       global-state-policy {
               icmp
               tcp
               udp
       }
       name Untrust-to-HTTP {
               default-action drop
               rule 1 {
                       action accept
                       source {
                               address 1.X.X.253
                       }
               }
               rule 10 {
                       action accept
                       destination {
                               address 1.X.X.254
                               port HTTP-HTTPS
                       }
                       protocol tcp
               }
       }
       name all_accept {
               default-action accept
       }
}

user-admin@FW-02# show service nat destination
destination {
       rule 10 {
               destination {
                       address 1.X.X.254
                       port 80
               }
               inbound-interface dp0s4
               protocol tcp
               translation {
                       address 192.168.200.100
               }
       }
       rule 11 {
               destination {
                       address 1.X.X.254
                       port 443
               }
               inbound-interface dp0s4
               protocol tcp
               translation {
                       address 192.168.200.200
                       port 443
               }
       }
}

user-admin@FW-02# show protocols static
static {
       route 192.168.200.0/24 {
               next-hop 192.168.20.251
       }
}

10.3.2.3. ロードバランサー設定の内容

ロードバランサーインタフェース設定

設定内容の確認のためにインタフェース設定を示しておりますが、実際にはインタフェース設定はカスタマポータル上で設定して頂く必要があります。

注釈

  • インタフェース設定はカスタマポータル以外で設定することはできません。
設定項目 設定値(LB01) 設定値(LB02)
Interface 1/1 192.168.20.250/24 192.168.20.249/24

設定確認

メニュー「System」-「Network」-「IPs」へと進み、IPアドレス設定を確認します。
  • LB01
Fig1101
  • LB02
Fig1102

VRRP設定(Interface 1/1側)

冗長ゲートウェイとなるロードバランサーのVRRP設定内容について以下に記載致します。
VRRP設定前に、必ずカスタマポータル上でVRRP通信許可設定を実施いただく必要があります。
詳しくは、 VRRPによる冗長化設定 をご参照ください。

以下のパラメータでVMAC設定を行ってください。
設定項目 設定値(LB01) 設定値(LB02)
VRID 40 40
Priority値 200 100
Preemption チェックします チェックします

続いて Virtual IPを設定し、先ほど作成したVMACにバインドします。
設定項目 設定値(LB01) 設定値(LB02)
VirtualIP 192.168.20.251/24 192.168.20.251/24
Netmask 255.255.255.0 255.255.255.0
IP Type Virtual IP Virtual IP
Virtual Router ID 40 40
Traffic Domain 10 10

設定確認

メニュー「System」-「Network」-「IPs」-「IPV4s」へと進み、VirtualIP設定を確認します。
  • LB01
Fig1105
  • LB02
Fig1106

設定確認

メニュー「System」-「Network」-「VMAC」へと進み、VRRP設定を確認します。
  • LB01
Fig1103
  • LB02
Fig1104

ルーティング設定

ロードバランサーに直接接続されていないネットワークへのルーティングとしてデフォルトゲートウェイを設定します。
ネクストホップはファイアウォールのロードバランサー側のVRRP IPアドレスを指定します。
設定項目 設定値(LB01) 設定値(LB02)
宛先 0.0.0.0 0.0.0.0
サブネットマスク 0.0.0.0 0.0.0.0
ゲートウェイアドレス 192.168.20.254 192.168.20.254
Traffic Domain 10 10

注釈

  • デフォルトゲートウェイ設定はカスタマポータル以外で設定することはできません。

設定確認

メニュー「System」-「Network」-「Routes」へと進み、ルーティング設定を確認します。
  • LB01 LB02 共通設定項目
Fig1105

仮想Webサーバの登録設定

通信の振り分け先となる仮想Webサーバをロードバランサーに登録します。
使用するパラメータは以下の通りです。
設定項目 設定値(LB01,LB02共通) 設定値(LB01,LB02共通)
Name Web-server-01 Web-server-02
IPAddress 192.168.20.11/24 192.168.20.12/24
Traffic Domain 10 10

設定確認

メニュー「Traffic Management」-「Load Balancing」-「Servers」へと進み、仮想Webサーバ設定を確認します。
  • LB01 LB02 共通設定項目
Fig1106

サービスグループ設定

通信の振り分け先となる仮想Webサーバをロードバランサーに登録します。
使用するパラメータは以下の通りです。
設定項目 設定値(LB01) 設定値(LB02)
Service Name HTTP HTTP
EXisting Server
Web-server-01(192.168.20.11)
Web-server-02(192.168.20.12)
Web-server-01(192.168.20.11)
Web-server-02(192.168.20.12)
Protocol HTTP HTTP
Port 80 80
Monitors http http
Traffic Domain 10 10

設定確認

メニュー「Traffic Management」-「Load Balancing」-「Service Group」へと進み、右メニューに表示された登録済みのサービスグループをダブルクリックし、設定を確認します。
  • LB01 LB02 共通設定項目
Fig1107
Service Group Members
上記画像の A をクリックし、振り分け先となるの仮想Webサーバ設定を確認します。
Fig1108
Monitors
上記画像の B をクリックし、Monitorが設定されていることを確認します。
Fig1109

注釈

  • クライアントのIPアドレスは、バランシングされる際にロードバランサーのIPアドレスにSNAT変換されます。この設定はデフォルトで有効です。
  • WebサーバにクライアントのIPアドレスを通知したい場合は X-Forwarded-For機能 をご利用ください。この設定はデフォルトで無効です。

バーチャルサーバ設定

実際に外部から通信する宛先となるバーチャルサーバの設定を行います。

HTTP通信用バーチャルサーバ設定
外部からHTTP通信を行うバーチャルサーバの設定を行います。
使用するパラメータは以下の通りです。
設定項目 設定値(LB01) 設定値(LB02)
Name http-vserver http-vserver
Protocol HTTP HTTP
IP Address Type IP Address IP Address
IP Address 192.168.200.100 192.168.200.100
Port 80 80
Traffic Domain 10 10

設定確認

メニュー「Traffic Management」-「Load Balancing」-「Virtual Server」へと進み、右メニューに表示された登録済みのサービスグループ名「http-vserver」をダブルクリックし、設定を確認します。
  • LB01 LB02 共通設定項目
Fig1110
Load Balancing Virtual Server Service Group Binding
上記画像の赤枠をクリックし、サービスグループが指定されていることを確認します。
Fig1111

SSLオフロード通信用バーチャルサーバ設定
外部からSSL通信を行うバーチャルサーバの設定を行います。今回はSSLオフロードを使用するため、振り分け先の仮想WebサーバにはHTTP通信が届きます。
使用するパラメータは以下の通りです。
設定項目 設定値(LB01) 設定値(LB02)
Name ssl-vserver ssl-vserver
Protocol SSL SSL
IP Address Type IP Address IP Address
IP Address 192.168.200.200 192.168.200.200
Port 443 443
Server Certificate ia-example.jp ia-example.jp
CA Certificate example.jp example.jp
Traffic Domain 10 10

注釈

設定確認

メニュー「Traffic Management」-「Load Balancing」-「Virtual Server」へと進み、右メニューに表示された登録済みのサービスグループ名「ssl-vserver」をダブルクリックし、設定を確認します。
  • LB01 LB02 共通設定項目
Fig1112
Fig1113
Load Balancing Virtual Server Service Group Binding
上記画像の A をクリックし、サービスグループが指定されていることを確認します。
Fig1114
SSL Virtual Server Service Certificate Binding
上記画像の B をクリックし、SSLサーバ証明書が設定されていることを確認します。
Fig1115
SSL Virtual Server CA Certificate Binding
上記画像の C をクリックし、CA証明書が設定されていることを確認します。
Fig1116


サーバ振り分け方式(ROUND ROBIN)の設定

2台のWEBサーバにクライアントからのアクセスをラウンドロビン通信で分散する設定を行います。

注釈


これでロードバランサーの設定が完了しました。

10.3.2.4. 通信の流れ

正常時はFW-01、LB-01を経由して通信を行います。
外部Client、信頼されたClientからWebサーバへアクセスできることを確認します。
function_b_2

正常通信時の状態確認

正常通信時のファイアウォールの状態は以下のように確認できます。
  • VRRPの状態
FW-01 が Master であること。
user-admin@FW-01:~$ show vrrp
                                 RFC        Addr   Last        Sync
Interface         Group  State   Compliant  Owner  Transition  Group
---------         -----  -----   ---------  -----  ----------  -----
dp0s4             11     MASTER  dp0vrrp2   no     2d18h47m32s test-b
dp0s5             21     MASTER  dp0vrrp1   no     2d18h47m32s test-b
dp0s6             31     MASTER  dp0vrrp3   no     2d18h47m32s test-b
FW-02 が Backup であること。
user-admin@FW-02:~$ show vrrp
                                 RFC        Addr   Last        Sync
Interface         Group  State   Compliant  Owner  Transition  Group
---------         -----  -----   ---------  -----  ----------  -----
dp0s4             11     BACKUP  dp0vrrp3   no     2d18h48m34s test-b
dp0s5             21     BACKUP  dp0vrrp2   no     2d18h48m34s test-b
dp0s6             31     BACKUP  dp0vrrp1   no     2d18h48m34s test-b
正常通信時のロードバランサーの状態は以下のように確認できます。
  • VRRPの状態
メニュー「System」-「Network」-「VMAC」へと進み、VRRP設定を確認します。
LB-01 が Master であること。
fun-b_lb01
LB-02 が Backup であること。
fun-b_lb02
  • バーチャルサーバの状態
メニュー「Traffic Management」-「Load Balancing」-「Virtual Servers」-「statistics」へと進み、バーチャルサーバの状態がそれぞれUPであることを確認します。
fun-b_lb03

Clientの接続確認

外部Clientから HTTP、HTTPSアクセスを行います。
  • HTTP/HTTPSアクセス(それぞれ2回アクセス)[OK]
バーチャルサーバ「http-vserver」「ssl-vserver」へヒットし「web-server01,02」 に振り分けられていることを確認できます。
fun-b_lb04
外部Clientのブラウザ画面(HTTPアクセス)
fun-b_untrustnw_http_sv01_02
外部Clientのブラウザ画面(HTTPSアクセス)
function-b_untrustnw_https_sv01_02.png
信頼されたClientから HTTP、HTTPSアクセスを行います。
  • HTTP/HTTPSアクセス(それぞれ2回アクセス)[OK]
バーチャルサーバ「http-vserver」「ssl-vserver」へヒットし「web-server01,02」 に振り分けられていることを確認できます。
fun-b_lb04
信頼されたClientのブラウザ画面(HTTPアクセス)
function-b_trustnw_http_sv01_02
信頼されたClientのブラウザ画面(HTTPSアクセス)
function-b_trustnw_https_sv01_02
以上で正常時の確認を終了します。

10.3.2.5. ファイアウォール障害発生時の通信の流れ

障害発生時は FW-02 にルートが切替わります。
B_3

注釈

 インスタンス障害を想定した試験方法として、本動作確認ではFW-01でVRRPを設定しているdp0s5とdp0s6の両方の
 「VRRP を一時的に無効化」する手法を採用しております。
 同等の障害を想定した試験方法としてFW-01に対し「ファイアウォールの再起動」を実施する手法がございます。
 FW-01が起動した際にVRRPのMASTERがFW-01に戻るため切り替わり状態を長時間確認したい場合には適していないため、
 本動作確認では採用しておりません。

 任意の vrrp-group を停止/再開するコマンドは以下の通りです。
 # 停止
 set interfaces dataplane [INTERFACE NAME] vrrp vrrp-group [GROUP ID] disable
 # 再開
 delete interfaces dataplane [INTERFACE NAME] vrrp vrrp-group [GROUP ID] disable

障害発生時の状態確認

障害発生時のファイアウォールの状態は以下のように確認できます。
  • VRRPの状態
FW-01 の VRRP が起動していないこと。
user-admin@FW-01:~$ show vrrp
                                 RFC        Addr   Last        Sync
Interface         Group  State   Compliant  Owner  Transition  Group
---------         -----  -----   ---------  -----  ----------  -----

注釈

  • FW-01 のVRRPは停止中のため、状態は表示されません。
FW-02 が Master であること。
user-admin@FW-02:~$ show vrrp
                                RFC        Addr   Last        Sync
Interface         Group  State   Compliant  Owner  Transition  Group
---------         -----  -----   ---------  -----  ----------  -----
dp0s4             11     MASTER  dp0vrrp3   no     3m0s        test-b
dp0s5             21     MASTER  dp0vrrp2   no     4m1s        test-b
dp0s6             31     MASTER  dp0vrrp1   no     3m57s       test-b

注釈

  • ロードバランサーの状態確認は正常時と変わりありませんので省略させていただきます。

Clientの接続確認

ファイアウォール障害発生時でも問題なくアクセスが可能なことを確認しております。
外部Clientから HTTP、HTTPSアクセスを行います。
  • HTTP/HTTPSアクセス(それぞれ2回アクセス)[OK]
バーチャルサーバ「http-vserver」「ssl-vserver」へヒットし「web-server01,02」 に振り分けられていることを確認できます。
fun-b_lb04
外部Clientのブラウザ画面(HTTPアクセス)
function-b_untrustnw_http_sv01_02
外部Clientのブラウザ画面(HTTPSアクセス)
function-b_untrustnw_https_sv01_02
信頼されたClientから HTTP、HTTPSアクセスを行います。
  • HTTP/HTTPSアクセス(それぞれ2回アクセス)[OK]
バーチャルサーバ「http-vserver」「ssl-vserver」へヒットし「web-server01,02」 に振り分けられていることを確認できます。
fun-b_lb04
信頼されたClientのブラウザ画面(HTTPアクセス)
function-b_trustnw_http_sv01_02.png
信頼されたClientのブラウザ画面(HTTPSアクセス)
function-b_trustnw_https_sv01_02.png

以上で、ファイアウォール障害発生時の確認を終了します。

10.3.2.6. ロードバランサー障害発生時の通信の流れ

障害発生時は LB-02 にルートが切替わります。
function_b_4

注釈

 ロードバランサーはファイアウォールとは異なり製品仕様として手動でVRRPを無効化することができません。そのため、今回はPriority値変更にてインスタンス障害を再現しております。
 その他、強制的にVRRP切り替わりを行う方法としては以下がございます。
  • すべてのVirtual IPをdisableにし、VMAC設定を削除する。
  • インスタンスの再起動(Preemptionを有効にしている場合はPriorityに従い切戻りが発生いたします)
  ※VMAC削除でVRRPを停止し全IPリソースを停止させておくことで確実に切替り先で応答可能。

障害発生時の状態確認

障害発生時のLBの状態は以下のように確認できます。
※VRRPの切り替えのためLB01のPriority値を200から90へ変更しています。
  • VRRPの状態
メニュー「System」-「Network」-「VMAC」へと進み、VRRP設定を確認します。
LB-01 が Backup であること。
fun-a_lb06
LB-02 が Master であること。
fun-b_lb05
  • バーチャルサーバの状態
メニュー「Traffic Management」-「Load Balancing」-「Virtual Servers」-「statistics」へと進み、バーチャルサーバの状態がそれぞれUPであることを確認します。
fun-b_lb03

Clientの接続確認

ロードバランサー障害発生時でも問題なくアクセスが可能なことを確認しております。
外部Clientから HTTP、HTTPSアクセスを行います。
  • HTTP/HTTPSアクセス(それぞれ2回アクセス)[OK]
バーチャルサーバ「http-vserver」「ssl-vserver」へヒットし「web-server01,02」 に振り分けられていることを確認できます。
fun-b_lb04
外部Clientのブラウザ画面(HTTPアクセス)
fun-b_untrustnw_http_sv01_02
外部Clientのブラウザ画面(HTTPSアクセス)
fun-b_untrustnw_https_sv01_02
信頼されたClientから HTTP、HTTPSアクセスを行います。
  • HTTP/HTTPSアクセス(それぞれ2回アクセス)[OK]
バーチャルサーバ「http-vserver」「ssl-vserver」へヒットし「web-server01,02」 に振り分けられていることを確認できます。
fun-b_lb04
信頼されたClientのブラウザ画面(HTTPアクセス)
fun-b_trustnw_http_sv01_02
信頼されたClientのブラウザ画面(HTTPSアクセス)
fun-b_trustnw_https_sv01_02
以上でロードバランサー障害発生時の確認を終了します。