1.2. ファイアウォール/ロードバランサー構成例(ワンアーム)

1.2.1. 前提条件

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を冗長化させることが可能です。本構成はこちらの方法を利用して冗長構成をとっております。

設定概念のイメージ

vsrx_usecase2_fig1

1.2.2. システム構成図

システムの全体構成図になります。外部セグメントはインターネットからのアクセスを想定しており、ファイアウォールのゾーンでuntrust設定にしています。 その他のファイアウォールインターフェイスは全て組織内のネットワークを想定していますのでtrustゾーンに設定しています。

vsrx_usecase2_fig2

注釈

その他のコンポーネントの利用OSやVersionは以下のとおりです。

  • WebServer01,02  CentOS7.3.1611
  • Webサーバ Apache 2.4.6
  • Client端末 Windows Server 2012R2

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

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

注釈

vSRXへのインターフェイスへのIPアドレス設定前に、カスタマポータル画面で利用インターフェイスとIPアドレス設定をお願いします。

  • インターフェイス(ge-0/0/3)は「FWセグメント」に接続するインターフェイスとして設定します。
  • インターフェイス(ge-0/0/1)は「信頼されたセグメント」に接続するインターフェイスとして設定します。
  • インターフェイス(ge-0/0/2)は「外部セグメント」に接続するインターフェイスとして設定します。
  • FW-01
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.253/24
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.253/24
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.253/24
  • FW-02
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.252/24
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.252/24
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.252/24

ファイアウォールインターフェイスをゾーンに割り当て

「FWセグメント」ならびに「信頼されたセグメント」に接続するインターフェイス(ge-0/0/1.0,ge-0/0/3.0)は「trust」ゾーンに設定します。 「外部セグメント」に接続するインターフェイス(ge-0/0/2.0)は「untrust」ゾーンに設定します。 インターフェイスに着信する通信に関しての設定は、「untrust」インターフェイスではVRRPパケットとPINGに限定し「trust」への着信パケットは全てを許可する設定にします。

注釈

ファイアウォールのインターフェイスではVRRPを利用しておりますので、VRRPの管理パケットを着信するために必ずVRRPは許可する設定をお願いします。 その他のルールについては、お使いの環境にあわせた形で必要なルールを設定してください。

  • FW-01/FW-02
# set security zones security-zone trust interfaces ge-0/0/1.0
# set security zones security-zone trust interfaces ge-0/0/3.0
# set security zones security-zone trust host-inbound-traffic system-services all
# set security zones security-zone trust host-inbound-traffic  protocols all
# set security zones security-zone untrust interfaces ge-0/0/2.0
# set security zones security-zone untrust host-inbound-traffic system-services ping
# set security zones security-zone untrust host-inbound-traffic  protocols vrrp

VRRP設定

VRRP設定前に、必ずカスタマポータル上でVRRP通信許可設定を実施いただく必要があります。
VRRP用通信設定の登録 をご参照ください。
  • FW-01

インターフェイス(ge-0/0/1)のVRRP設定

# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.253/24 vrrp-group 20 virtual-address 192.168.0.254
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.253/24 vrrp-group 20 priority 110
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.253/24 vrrp-group 20 preempt
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.253/24 vrrp-group 20 accept-data

インターフェイス(ge-0/0/2)のVRRP設定

# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.253/24 vrrp-group 10 virtual-address 10.0.10.254
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.253/24 vrrp-group 10 priority 110
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.253/24 vrrp-group 10 preempt
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.253/24 vrrp-group 10 accept-data

インターフェイス(ge-0/0/3)のVRRP設定

# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.253/24 vrrp-group 50 virtual-address 192.168.20.254
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.253/24 vrrp-group 50 priority 110
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.253/24 vrrp-group 50 preempt
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.253/24 vrrp-group 50 accept-data
  • FW-02

インターフェイス(ge-0/0/1)のVRRP設定

# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.252/24 vrrp-group 20 virtual-address 192.168.0.254
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.252/24 vrrp-group 20 priority 90
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.252/24 vrrp-group 20 preempt
# set interfaces ge-0/0/1 unit 0 family inet address 192.168.0.252/24 vrrp-group 20 accept-data

インターフェイス(ge-0/0/2)のVRRP設定

# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.252/24 vrrp-group 10 virtual-address 10.0.10.254
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.252/24 vrrp-group 10 priority 90
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.252/24 vrrp-group 10 preempt
# set interfaces ge-0/0/2 unit 0 family inet address 10.0.10.252/24 vrrp-group 10 accept-data

インターフェイス(ge-0/0/3)のVRRP設定

# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.252/24 vrrp-group 50 virtual-address 192.168.20.254
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.252/24 vrrp-group 50 priority 90
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.252/24 vrrp-group 50 preempt
# set interfaces ge-0/0/3 unit 0 family inet address 192.168.20.252/24 vrrp-group 50 accept-data

ファイアウォールフィルタの設定

外部セグメント側から来る通信のアクセス制御を行うルールを作成します。

  • 基本的にすべて拒否
  • FW-01とFW-02間のVRRP通信は許可
  • Webアクセス用に利用するIPアドレス(10.0.10.254)へは、HTTP(80),HTTPS(443)通信のみ許可

  • FW-01
# set firewall filter WEB-ACCESS term 1 from destination-address 10.0.10.254/32
# set firewall filter WEB-ACCESS term 1 from protocol tcp
# set firewall filter WEB-ACCESS term 1 from destination-port http
# set firewall filter WEB-ACCESS term 1 from destination-port https
# set firewall filter WEB-ACCESS term 1 then accept
# set firewall filter WEB-ACCESS term 2 from source-address 10.0.10.252/32
# set firewall filter WEB-ACCESS term 2 from protocol vrrp
# set firewall filter WEB-ACCESS term 2 then accept
# set firewall filter WEB-ACCESS term 3 then discard
  • FW-02
# set firewall filter WEB-ACCESS term 1 from destination-address 10.0.10.254/32
# set firewall filter WEB-ACCESS term 1 from protocol tcp
# set firewall filter WEB-ACCESS term 1 from destination-port http
# set firewall filter WEB-ACCESS term 1 from destination-port https
# set firewall filter WEB-ACCESS term 1 then accept
# set firewall filter WEB-ACCESS term 2 from source-address 10.0.10.253/32
# set firewall filter WEB-ACCESS term 2 from protocol vrrp
# set firewall filter WEB-ACCESS term 2 then accept
# set firewall filter WEB-ACCESS term 3 then discard

作成したFWルールをインターフェイスに適用します。

  • FW-01/FW-02
# set interfaces ge-0/0/2 unit 0 family inet filter input WEB-ACCESS

NATの設定

外部セグメントからFWに対するHTTP、HTTPSアクセスをロードバランサーに設定されているバーチャルサーバーのアドレスへ変更するNAT設定を行います。

  • FW-01/FW-02
# set security nat destination pool HTTP_NAT address 192.168.200.100/32
# set security nat destination pool HTTPS_NAT address 192.168.200.200/32
# set security nat destination rule-set 1 from zone untrust
# set security nat destination rule-set 1 rule 1 match destination-address 10.0.10.254/32
# set security nat destination rule-set 1 rule 1 match destination-port 80
# set security nat destination rule-set 1 rule 1 match protocol tcp
# set security nat destination rule-set 1 rule 1 then destination-nat pool HTTP_NAT
# set security nat destination rule-set 1 rule 2 match destination-address 10.0.10.254/32
# set security nat destination rule-set 1 rule 2 match destination-port 443
# set security nat destination rule-set 1 rule 2 match protocol tcp
# set security nat destination rule-set 1 rule 2 then destination-nat pool HTTPS_NAT

セキュリティポリシーの設定

SRXを通過するトラフィックを制御するポリシー(ゾーンベースファイアウォール)を設定します。ゾーンベースファイアウォールは宛先NAT後に有効になるため、宛先IPアドレスはNAT変換後のバーチャルサーバIPアドレスを指定します。
  • アドレスブックの作成(FW-01/FW-02)

LBのバーチャルサーバのIPアドレスを定義します。

# set security address-book global address WEB_ADDRESS 192.168.200.0/24
  • アプリケーションセットの作成(FW-01/FW-02)

使用するアプリケーションのポート番号をグループ化します。

# set applications application HTTP protocol tcp
# set applications application HTTP destination-port 80
# set applications application HTTPS protocol tcp
# set applications application HTTPS destination-port 443
# set applications application-set WEB-SERVICE application HTTP
# set applications application-set WEB-SERVICE application HTTPS
  • ポリシーへの割り当て(FW-01/FW-02)

上記で作成したアドレスブックとアプリケーションセットをゾーンベースファイアウォールのuntrustからtrust方向へ設定します。 その他のuntrustからtrust方向の通信は許可しない設定にします。

# set security policies from-zone untrust to-zone trust policy WEB_ACCESS match source-address any
# set security policies from-zone untrust to-zone trust policy WEB_ACCESS match destination-address WEB_ADDRESS
# set security policies from-zone untrust to-zone trust policy WEB_ACCESS match application WEB-SERVICE
# set security policies from-zone untrust to-zone trust policy WEB_ACCESS then permit
# set security policies from-zone untrust to-zone trust policy ALL-DENY match source-address any
# set security policies from-zone untrust to-zone trust policy ALL-DENY match destination-address any
# set security policies from-zone untrust to-zone trust policy ALL-DENY match application any
# set security policies from-zone untrust to-zone trust policy ALL-DENY then deny

注釈

trustゾーンからの通信に関してはデフォルトで許可するポリシー(default-permit)設定が入っておりますのでそのまま利用します。

ルーティングの設定

ファイアウォールからのバーチャルサーバへのルーティングは、ロードバランサーに設定されているVRRPのVIPをネクストホップとするスタティックルートを作成します。

  • FW-01/FW-02
# set routing-options static route 192.168.200.0/24 next-hop 192.168.20.251

設定内容の確認

前述の設定が正しく投入されている場合、以下出力が確認できます。

  • FW-01
user01@FW-01> show configuration

(中略)

security {
    address-book {
        global {
            address WEB_ADDRESS 192.168.200.0/24;
        }
    }
    nat {
        destination {
            pool HTTP_NAT {
                address 192.168.200.100/32;
            }
            pool HTTPS_NAT {
                address 192.168.200.200/32;
            }
            rule-set 1 {
                from zone untrust;
                rule 1 {
                    match {
                        destination-address 10.0.10.254/32;
                        destination-port {
                            80;
                        }
                        protocol tcp;
                    }
                    then {
                        destination-nat {
                            pool {
                                HTTP_NAT;
                            }
                        }
                    }
                }
                rule 2 {
                    match {
                        destination-address 10.0.10.254/32;
                        destination-port {
                            443;
                        }
                        protocol tcp;
                    }
                    then {
                        destination-nat {
                            pool {
                                HTTPS_NAT;
                            }
                        }
                    }
                }
            }
        }
    }
    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;
                }
            }
        }
        from-zone untrust to-zone trust {
            policy WEB_ACCESS {
                match {
                    source-address any;
                    destination-address WEB_ADDRESS;
                    application WEB-SERVICE;
                }
                then {
                    permit;
                }
            }
            policy ALL-DENY {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    deny;
                }
            }
        }
    }
    zones {
        security-zone trust {
            host-inbound-traffic {
                system-services {
                    all;
                }
                protocols {
                    all;
                }
            }
            interfaces {
                ge-0/0/1.0;
                ge-0/0/3.0;
            }
        }
        security-zone untrust {
            host-inbound-traffic {
                system-services {
                    ping;
                }
                protocols {
                    vrrp;
                }
            }
            interfaces {
                ge-0/0/2.0;
            }
        }
    }
}
interfaces {
    ge-0/0/1 {
        unit 0 {
            family inet {
                address 192.168.0.253/24 {
                    vrrp-group 20 {
                        virtual-address 192.168.0.254;
                        priority 110;
                        preempt;
                        accept-data;
                    }
                }
            }
        }
    }
    ge-0/0/2 {
        unit 0 {
            family inet {
                filter {
                    input WEB-ACCESS;
                }
                address 10.0.10.253/24 {
                    vrrp-group 10 {
                        virtual-address 10.0.10.254;
                        priority 110;
                        preempt;
                        accept-data;
                    }
                }
            }
        }
    }
    ge-0/0/3 {
        unit 0 {
            family inet {
                address 192.168.20.253/24 {
                    vrrp-group 50 {
                        virtual-address 192.168.20.254;
                        priority 110;
                        preempt;
                        accept-data;
                    }
                }
            }
        }
    }
}
routing-options {
    static {
        route 192.168.200.0/24 next-hop 192.168.20.251;
    }
}
firewall {
    filter WEB-ACCESS {
        term 1 {
            from {
                destination-address {
                    10.0.10.254/32;
                }
                protocol tcp;
                destination-port [ http https ];
            }
            then accept;
        }
        term 2 {
            from {
                source-address {
                    10.0.10.252/32;
                }
                protocol vrrp;
            }
            then accept;
        }
        term 3 {
            then {
                discard;
            }
        }
    }
}
applications {
    application HTTP {
        protocol tcp;
        destination-port 80;
    }
    application HTTPS {
        protocol tcp;
        destination-port 443;
    }
    application-set WEB-SERVICE {
        application HTTP;
        application HTTPS;
    }
}
  • FW-02
user01@FW-02> show configuration

(中略)

security {
    address-book {
        global {
            address WEB_ADDRESS 192.168.200.0/24;
        }
    }
    nat {
        destination {
            pool HTTP_NAT {
                address 192.168.200.100/32;
            }
            pool HTTPS_NAT {
                address 192.168.200.200/32;
            }
            rule-set 1 {
                from zone untrust;
                rule 1 {
                    match {
                        destination-address 10.0.10.254/32;
                        destination-port {
                            80;
                        }
                        protocol tcp;
                    }
                    then {
                        destination-nat {
                            pool {
                                HTTP_NAT;
                            }
                        }
                    }
                }
                rule 2 {
                    match {
                        destination-address 10.0.10.254/32;
                        destination-port {
                            443;
                        }
                        protocol tcp;
                    }
                    then {
                        destination-nat {
                            pool {
                                HTTPS_NAT;
                            }
                        }
                    }
                }
            }
        }
    }
    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;
                }
            }
        }
        from-zone untrust to-zone trust {
            policy WEB_ACCESS {
                match {
                    source-address any;
                    destination-address WEB_ADDRESS;
                    application WEB-SERVICE;
                }
                then {
                    permit;
                }
            }
            policy ALL-DENY {
                match {
                    source-address any;
                    destination-address any;
                    application any;
                }
                then {
                    deny;
                }
            }
        }
    }
    zones {
        security-zone trust {
            host-inbound-traffic {
                system-services {
                    all;
                }
                protocols {
                    all;
                }
            }
            interfaces {
                ge-0/0/1.0;
                ge-0/0/3.0;
            }
        }
        security-zone untrust {
            host-inbound-traffic {
                system-services {
                    ping;
                }
                protocols {
                    vrrp;
                }
            }
            interfaces {
                ge-0/0/2.0;
            }
        }
    }
}
interfaces {
    ge-0/0/1 {
        unit 0 {
            family inet {
                address 192.168.0.252/24 {
                    vrrp-group 20 {
                        virtual-address 192.168.0.254;
                        priority 90;
                        preempt;
                        accept-data;
                    }
                }
            }
        }
    }
    ge-0/0/2 {
        unit 0 {
            family inet {
                filter {
                    input WEB-ACCESS;
                }
                address 10.0.10.252/24 {
                    vrrp-group 10 {
                        virtual-address 10.0.10.254;
                        priority 90;
                        preempt;
                        accept-data;
                    }
                }
            }
        }
    }
    ge-0/0/3 {
        unit 0 {
            family inet {
                address 192.168.20.252/24 {
                    vrrp-group 50 {
                        virtual-address 192.168.20.254;
                        priority 90;
                        preempt;
                        accept-data;
                    }
                }
            }
        }
    }
}
routing-options {
    static {
        route 192.168.200.0/24 next-hop 192.168.20.251;
    }
}
firewall {
    filter WEB-ACCESS {
        term 1 {
            from {
                destination-address {
                    10.0.10.254/32;
                }
                protocol tcp;
                destination-port [ http https ];
            }
            then accept;
        }
        term 2 {
            from {
                source-address {
                    10.0.10.253/32;
                }
                protocol vrrp;
            }
            then accept;
        }
        term 3 {
            then {
                discard;
            }
        }
    }
}
applications {
    application HTTP {
        protocol tcp;
        destination-port 80;
    }
    application HTTPS {
        protocol tcp;
        destination-port 443;
    }
    application-set WEB-SERVICE {
        application HTTP;
        application HTTPS;
    }
}

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

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

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

注釈

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

設定確認

  • LB01
vsrx_usecase2_fig3
  • LB02
vsrx_usecase2_fig4

VRRP設定(Interface 1/1側)

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

以下のパラメータでVMAC設定を行ってください。

設定項目 設定値(LB01) 設定値(LB02)
VRID 40 40
Priority値 110 90
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

設定確認(Virtual IP)

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

  • LB01
vsrx_usecase2_fig5
  • LB02
vsrx_usecase2_fig6

設定確認(VRRP)

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

  • LB01
vsrx_usecase2_fig7
  • LB02
vsrx_usecase2_fig8

ルーティング設定

ロードバランサーに直接接続されていないネットワークへのルーティングとしてデフォルトゲートウェイを設定します。
ネクストホップはファイアウォールのロードバランサー側の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 共通設定項目
vsrx_usecase2_fig9

Webサーバの登録設定

通信の振り分け先となるWebサーバをロードバランサーに登録します。
「Configuration」メニューより、「Traffic Management」→「Load Balancing」→「Servers」から登録します。
使用するパラメータは以下の通りです。
設定項目 設定値(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

注釈

設定確認

  • LB01 LB02 共通設定項目
vsrx_usecase2_fig10

サービスグループ設定

通信の振り分け先となる仮想Webサーバをロードバランサーに登録します。
「Configuration」メニューより、「Traffic Management」→「Load Balancing」→「Service Groups」から登録します。
使用するパラメータは以下の通りです。
設定項目 設定値(LB01) 設定値(LB02)
Service Name HTTP HTTP
EXisting Server Web-server-01(192.168.20.11) Web-server-01(192.168.20.11)
  Web-server-02(192.168.20.12) 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 共通設定項目
vsrx_usecase2_fig11

Service Group Members

上記画像の A をクリックし、振り分け先となるの仮想Webサーバ設定を確認します。

vsrx_usecase2_fig12

Monitors

上記画像の B をクリックし、Monitorが設定されていることを確認します。

vsrx_usecase2_fig13

注釈

  • クライアントの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 Servers」へと進み、右メニューに表示された登録済みのサービスグループ名「http-vserver」をダブルクリックし、設定を確認します。

  • LB01 LB02 共通設定項目
vsrx_usecase2_fig14

Load Balancing Virtual Server Service Group Binding

上記画像の赤枠をクリックし、サービスグループが指定されていることを確認します。

vsrx_usecase2_fig15

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 WEBSERVER-keyPair WEBSERVER-keyPair
CA Certificate INTERCA-keyPair INTERCA-keyPair
Traffic Domain 10 10

注釈

設定確認

メニュー「Traffic Management」-「Load Balancing」-「Virtual Servers」へと進み、右メニューに表示された登録済みのサービスグループ名「ssl-vserver」をダブルクリックし、設定を確認します。

  • LB01 LB02 共通設定項目
vsrx_usecase2_fig16

Load Balancing Virtual Server Service Group Binding

上記画像の A をクリックし、サービスグループが指定されていることを確認します。

vsrx_usecase2_fig17

SSL Virtual Server Service Certificate Binding

上記画像の B をクリックし、SSLサーバ証明書が設定されていることを確認します。

vsrx_usecase2_fig18

SSL Virtual Server CA Certificate Binding

上記画像の C をクリックし、CA証明書が設定されていることを確認します。

vsrx_usecase2_fig19

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

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

注釈

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

1.2.5. 通信の流れ

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

正常通信時の状態確認

正常通信時のファイアウォールの状態は以下のように確認できます。

  • VRRPの状態

FW-01 が Master であることを確認します。

user01@FW-01> show vrrp
Interface     State       Group   VR state VR Mode   Timer    Type   Address
ge-0/0/1.0    up             20   master   Active      A  0.022 lcl    192.168.0.253
                                                                vip    192.168.0.254
ge-0/0/2.0    up             10   master   Active      A  0.669 lcl    10.0.10.253
                                                                vip    10.0.10.254
ge-0/0/3.0    up             50   master   Active      A  0.727 lcl    192.168.20.253
                                                                vip    192.168.20.254

FW-02 が Backup であることを確認します。

user01@FW-02> show vrrp
Interface     State       Group   VR state VR Mode   Timer    Type   Address
ge-0/0/1.0    up             20   backup   Active      D  2.909 lcl    192.168.0.252
                                                                vip    192.168.0.254
                                                                mas    192.168.0.253
ge-0/0/2.0    up             10   backup   Active      D  2.992 lcl    10.0.10.252
                                                                vip    10.0.10.254
                                                                mas    10.0.10.253
ge-0/0/3.0    up             50   backup   Active      D  3.279 lcl    192.168.20.252
                                                                vip    192.168.20.254
                                                                mas    192.168.20.253

正常通信時のロードバランサーの状態は以下のように確認できます。

  • VRRPの状態

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

LB-01 が Master であることを確認します。

vsrx_usecase2_fig21

LB-02 が Backup であることを確認します。

vsrx_usecase2_fig22
  • バーチャルサーバの状態

メニュー「Traffic Management」-「Load Balancing」-「Virtual Servers」-「statistics」へと進み、バーチャルサーバの状態がそれぞれUPであることを確認します。

vsrx_usecase2_fig23

Clientの接続確認

外部Clientから HTTP、HTTPSアクセスを行います。

  • HTTP/HTTPSアクセス(それぞれ2回アクセス)[OK]

バーチャルサーバ「http-vserver」「ssl-vserver」へヒットし「web-server01,02」 に振り分けられていることを確認できます。

vsrx_usecase2_fig24

外部セグメントClient端末のブラウザ画面(HTTPアクセス)

vsrx_usecase2_fig25

外部セグメントClient端末のブラウザ画面(HTTPSアクセス)

vsrx_usecase2_fig26

信頼されたClient端末から HTTP、HTTPSアクセスを行います。

  • •HTTP/HTTPSアクセス(それぞれ2回アクセス)[OK]

バーチャルサーバ「http-vserver」「ssl-vserver」へヒットし「web-server01,02」 に振り分けられていることを確認できます。

vsrx_usecase2_fig27

信頼されたClient端末のブラウザ画面(HTTPアクセス)

vsrx_usecase2_fig28

信頼されたClient端末のブラウザ画面(HTTPSアクセス)

vsrx_usecase2_fig29

以上で正常時の確認を終了します。

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

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

vsrx_usecase2_fig30

障害発生時の状態確認

障害発生時のファイアウォールの状態は以下のように確認できます。

  • VRRPの状態

FW-01 の VRRP が起動していないことを確認します。

user01@FW-01> show vrrp
VRRP is not running

注釈

FW-01 のVRRPは停止中のため、状態は表示されません。

FW-02 が Master であることを確認します。

user01@FW-02> show vrrp
Interface     State       Group   VR state VR Mode   Timer    Type   Address
ge-0/0/1.0    up             20   master   Active      A  0.724 lcl    192.168.0.252
                                                                vip    192.168.0.254
ge-0/0/2.0    up             10   master   Active      A  0.301 lcl    10.0.10.252
                                                                vip    10.0.10.254
ge-0/0/3.0    up             50   master   Active      A  0.853 lcl    192.168.20.252
                                                                vip    192.168.20.254

注釈

ロードバランサーの状態確認は正常時と変わらないので省略します。

Clientの接続確認

ファイアウォール障害発生時でも問題なくアクセスが可能なことを確認するため外部セグメントClient端末から HTTP、HTTPSアクセスを行います。

  • HTTP/HTTPSアクセス(それぞれ2回アクセス)[OK]

バーチャルサーバ「http-vserver」「ssl-vserver」へヒットし「web-server01,02」 に振り分けられていることを確認できます。

vsrx_usecase2_fig31

外部セグメントClient端末のブラウザ画面(HTTPアクセス)

vsrx_usecase2_fig32

外部セグメントClient端末のブラウザ画面(HTTPSアクセス)

vsrx_usecase2_fig33

続いて、信頼されたClient端末から HTTP、HTTPSアクセスを行います。

  • HTTP/HTTPSアクセス(それぞれ2回アクセス)[OK]

バーチャルサーバ「http-vserver」「ssl-vserver」へヒットし「web-server01,02」 に振り分けられていることを確認できます。

vsrx_usecase2_fig34

信頼されたClientのブラウザ画面(HTTPアクセス)

vsrx_usecase2_fig35

信頼されたClientのブラウザ画面(HTTPSアクセス)

vsrx_usecase2_fig36

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

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

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

vsrx_usecase2_fig37

注釈

ロードバランサーはファイアウォールとは異なり製品仕様として手動でVRRPを無効化することができません。そのため、今回はPriority値変更にてインスタンス障害を再現しております。

その他、強制的にVRRP切り替わりを行う方法としては以下がございます。

  • すべてのVirtual IPアドレスをdisableにし、VMAC設定を削除する。
  • インスタンスの再起動(Preemptionを有効にしている場合はPriorityに従い切戻りが発生いたします)

※VMAC削除でVRRPを停止し全IPリソースを停止させておくことで確実に切替り先で応答可能。

障害発生時の状態確認

障害発生時のロードバランサーの状態は以下のように確認できます。

※VRRPの切り替えのためLB01のPriority値を110から50へ変更しています。LB-02のPriority値は90です。

  • VRRPの状態

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

LB-01 が Backup であることを確認します。

vsrx_usecase2_fig38

LB-02 が Master であることを確認します。

vsrx_usecase2_fig39
  • バーチャルサーバの状態

メニュー「Traffic Management」-「Load Balancing」-「Virtual Servers」-「statistics」へと進み、バーチャルサーバの状態がそれぞれUPであることを確認します。

vsrx_usecase2_fig40

Clientの接続確認

ロードバランサー障害発生時でも問題なくアクセスが可能なことを確認するため外部セグメント端末からHTTP、HTTPSアクセスを行います。

  • HTTP/HTTPSアクセス(それぞれ2回アクセス)[OK]

バーチャルサーバ「http-vserver」「ssl-vserver」へヒットし「web-server01,02」 に振り分けられていることを確認できます。

vsrx_usecase2_fig41

外部セグメントClient端末のブラウザ画面(HTTPアクセス)

vsrx_usecase2_fig42

外部セグメントClient端末のブラウザ画面(HTTPSアクセス)

vsrx_usecase2_fig43

続いて、信頼されたClient端末から HTTP、HTTPSアクセスを行います。

  • HTTP/HTTPSアクセス(それぞれ2回アクセス)[OK]

バーチャルサーバ「http-vserver」「ssl-vserver」へヒットし「web-server01,02」 に振り分けられていることを確認できます。

vsrx_usecase2_fig44

信頼されたClientのブラウザ画面(HTTPアクセス)

vsrx_usecase2_fig45

信頼されたClientのブラウザ画面(HTTPSアクセス)

vsrx_usecase2_fig46

以上でロードバランサー障害発生時の確認を終了します。