6.7 ネットワークのゾーニングを構築するには？

（2016年時点での内容をアーカイブとして掲載しているため、一部の掲載内容が最新情報とは異なる場合がありますので、ご了承ください。最新のIBM Cloudの情報は [IBM Cloud Docs](https://cloud.ibm.com/docs) や [IBM Cloud アップデート情報](https://www.ibm.com/cloud-computing/jp/ja/cloud-update/) 、[柔らか層本](https://ibm.ent.box.com/v/ibmcloud-yawaraka)をご参照ください。）

概要
ゾーニングを行うにはゲートウェイ・アプライアンス、追加のVLANを利用することで、利用者自身でファイアウォールのルールを設定することができます。 そして、BCR(Backend Customer Router)からのVLANトランクを直接受けて各ゾーンにルーティングすると共に、VRRPを使った二重化構成を組むことができます。 ここでは、そのために必要な注文方法や、具体的な設定方法についてご紹介します。
 

ゾーニング構成概要
ここでは次の図のゾーニング構成を作ります。 このためにはゲートウェイ・アプライアンスをポータルから注文します。 これはVyattaのSubscription Editionを物理サーバーにインストールして提供されます。 このような構成の場合は、Vyattaが停止するとこのシステム内のすべての通信が行えなくなるため、二重化構成として注文します。

この「ゾーン」とはサブネットをグループ化したものであり、目的ごとのサーバーが配置されているサブネットになります。 Vyattaのファイアウォール機能でこれらのゾーンに対して、相手先のネットワーク別に通信を許可、または遮断する設定を行います。 図のようにアプリケーション・サーバーが配置されるAPゾーン、サービスの顧客情報が保存されるデーターベース・サーバーを配置するDBゾーンを作成し、各ゾーンに接続できる相手先IPアドレスを限定するようにします。 さらに、OSのアップデート、DNSやNTPなどの共通基盤系サーバーが配置されているネットワークの通信を許可します。

ゾーンを構成するために、APゾーンとDBゾーン用の追加のVLANを注文します。 一方Vyattaがインストールされた物理サーバーのネットワークインターフェースはボンディングされていて、2つのVLANにしか直接接続できません。 このため、BCRとVyattaの間をVLANトランクで連携させることで、Vyattaからこの追加されたVLAN上のサブネットに仮想インターフェースを接続することができます。 これによって、ゾーン間の通信をできるようにし、この仮想インターフェースにファイアウォールのルールを適用することで、通信の相手先を制限することができます。


Vyattaのオーダー

初めに、SoftLayerのポータル https://control.softlayer.com/ から冗長構成のVyattaをオーダーする方法をご紹介します。

カスタマーポータル上のメニューから「Network」->「Gateway Appliances」をクリックします。 「Gateway Appliances」の画面右側に表示される「Order Gateway」をクリックすると、サーバースペックの選択画面が表示されます。「Single Processor Multi-Core Servers」か「Dual Processor Multi-Core Servers」のいずれかを選ぶと、オーダー画面が表示されます。 オーダーの画面では選択必須箇所の設定を行います。 CPU、メモリなども選択可能ですが、ここではデフォルトの値を使用します。 まず「Quantity」の「High Availability Pair」にチェックを入れます。

続いて「Location」の「DATA CENTER」から設置するデータセンターを選択します。 ここでは、「SJC01」(サンノゼ)を選択します。



設定後、「Continue Your Order」をクリックし確認画面に進みます。 オーダー確認画面では、前画面にて設定した内容が反映されているか、確認を行います。 本画面で、以下の箇所でVLANの設定が行えますが、VLANの設定は別途行うので、ここでは標準設定から変更しません。

「Host and Domain Names」にて任意のHostname、Domainを入力します。 本説明では、「ngwa1.example.com」「ngwa2.example.com」とします。

「Terms and Conditions」にチェックを入れ、「Finalize Your Order」をクリックしオーダーを確定させます。
 

Vyatta初期設定
続いてカスタマーポータル上でのクラスタ名表示の変更、また後続の作業で使用する情報の確認方法をご紹介します。 Vyattaのアクセス権はプライマリ・アカウントにしか付与されないので、プライマリ・アカウントで設定をします。

カスタマーポータルから「Network」->「Gateway Appliances」をクリックします。 表示されたリストの「Gateway」列に表示される名称がクラスタ名称になります。 今回追加したVyattaは「ngwa2」と表示されます。 これは、オーダーの際「Host and Domain Names」にて「Server 2」に入力した「Hostname」に入力した値が反映されるためです。 「ngwa2」をクリックすると以下の画面が表示されます。

ここでクラスタ名が「ngwa2」になるとVyatta本体と同じ名称になり分かりにくいので、クラスタ名を変更します。 「Actions」->「Rename Gateway」をクリックすると以下の画面が表示されます。 「ngwa2」を「ngwa」に変更し、「OK」をクリックします。

後続の作業でVLANのオーダーの際に使用する情報として、BCRの情報をメモしておきます。 「Gateway VLANs」にリストされている、「Network」列が「Private Network VLAN」となっている行が対象です。 今回の場合、「sjc01.bcr01a」になります。
 

初期設定の確認
初期設定の確認のため、CLIでVyattaにログインします。 また、GUIにて確認する方法もご紹介します。 ログインする際、ログインユーザーが「vyatta」であることに注意してください。

SSHクライアントを利用してVyattaにログインします。

「show config-sync status」コマンドを実行すると、冗長構成が取られていることが「in-sync?」が「yes」となっていることから確認できます。

```
vyatta@ngwa1:~$ show config-sync status
remote-router:  10.52.102.133
  version:              VSE6.7R3
  sync-map:             SYNC
  last sync status:     succeeded
  last sync time:       Tue Nov 25 01:01:19 2014
  in-sync?:             yes
  access-status:        connected
```

ここではCLIで設定を行いますが、Vyatta Subscription EditionではGUIでも操作可能です。 ブラウザに「https://10.52.102.131/」を入力するとログイン画面が表示されます。
GUIにおいても、ユーザー、パスワードは同一です。 以下の図では「Config sync」が「Remote router: 10.52.102.133 in sync」となっていることから、冗長構成が取られていることが確認できます。


VLANのオーダー
ゾーニングのために使用するVLANをチケットを使用してオーダーします。
詳細は、6.10 VLANだけを注文するには？に従って注文します。

 

VLANの設定
ここでは、オーダーしたVLANをVyattaと接続、使用しないVLANをVyattaと接続解除する設定を行います。 VLANを接続するとは、タグ付きVLANパケットをVyattaへ流れるようにすることを表します。 そして、カスタマーポータルからVLANに名前をつける方法をご紹介します。

カスタマーポータルから「Network」->「Gateway Appliances」をクリックします。 表示されたリストの「Gateway」列の「ngwa」をクリックします。 ngwa詳細画面の中にある「Associate a VLAN」の選択リスト(次の図参照)の中から今回アサインされたVLANを選択し、「Associate」をクリックします。 これによりVLANが「Associated VLANs」のリストに加わります。

「Associated VLANs」にリストされているVLANは、上記作業にて追加したものと、Vyattaオーダー時に自動的に付与されるものが含まれます。 既に付与されていたLANは使用しないため、その右の「Actions」->「Disassociate VLAN」を選択し、「Associated VLANs」から除外します。

追加したVLANの行の右の「Actions」->「Route VLAN」を選択し、「Status」を「Routed」に変更します。

Vyattaのゾーン設定時に使用するため、「Associated VLANs」を展開しサブネットとVLAN名の対応をメモしておきます。

VLAN番号に名前をつけて、判別をつけやすくします。 カスタマーポータルから「Network」->「IP Management」->「VLANs」を選択し、VLANのリストを表示します。 該当のVLAN番号の「Name」列をクリックして、適切な名前を入力します。 次の画面の様に、VLAN番号の列の1940に「DB-Zone」、1912に「AP-Zone」と入力しました。


仮想インターフェースとVRRPの設定
次の図に基づいてVyattaにログインし、コマンドラインから、APサーバー、DBサーバーのゾーン設定をします。 この図のVLAN #1912に接している破線右側のVRRPの仮想アドレス 10.54.75.129 と、VLAN #1940に接している破線右側のVRRPの仮想アドレス 10.54.231.193 を設定します。 また、APゾーン上に記されているルーターの仮想インターフェース(192.168.2.1、192.168.2.2)、DBゾーン上に記されているルーターの仮想インターフェース(192.168.1.1、192.168.1.2)を設定します。 設定は仮想インターフェースのIP、vrrp-groupのpriorityがVyattaごとに異なるため、ngwa1、ngwa2で個別に設定します。


ngwa1にログインし、「configure」コマンドで設定編集モードに変更し、「set」コマンドで必要な設定をします。
 
```
vyatta@ngwa1:~$ configure
[edit]
vyatta@ngwa1# set interfaces bonding bond0 vif 1912 address '192.168.2.1/24'
vyatta@ngwa1# set interfaces bonding bond0 vif 1912 vrrp vrrp-group 3 advertise-interval '1'
vyatta@ngwa1# set interfaces bonding bond0 vif 1912 vrrp vrrp-group 3 preempt 'false'
vyatta@ngwa1# set interfaces bonding bond0 vif 1912 vrrp vrrp-group 3 priority '254'
vyatta@ngwa1# set interfaces bonding bond0 vif 1912 vrrp vrrp-group 3 sync-group 'vgroup3'
vyatta@ngwa1# set interfaces bonding bond0 vif 1912 vrrp vrrp-group 3 virtual-address '10.54.75.129/26'
vyatta@ngwa1# set interfaces bonding bond0 vif 1940 address '192.168.1.1/24'
vyatta@ngwa1# set interfaces bonding bond0 vif 1940 vrrp vrrp-group 2 advertise-interval '1'
vyatta@ngwa1# set interfaces bonding bond0 vif 1940 vrrp vrrp-group 2 preempt 'false'
vyatta@ngwa1# set interfaces bonding bond0 vif 1940 vrrp vrrp-group 2 priority '254'
vyatta@ngwa1# set interfaces bonding bond0 vif 1940 vrrp vrrp-group 2 sync-group 'vgroup2'
vyatta@ngwa1# set interfaces bonding bond0 vif 1940 vrrp vrrp-group 2 virtual-address '10.54.231.193/26'
```

「show interface」コマンドにて追加した内容を確認します。 左に「+」が記されている行が、前述の「set」コマンドで追加された部分です。 過不足があれば、「set」コマンドで追加するか、「delete」コマンドにて削除します。
 
```
vyatta@ngwa1# show interface
 bonding bond0 {
     address 10.52.102.131/26
     hash-policy layer3+4
     mode 802.3ad
+    vif 1912 {
+        address 192.168.2.1/24
+        vrrp {
+            vrrp-group 3 {
+                advertise-interval 1
+                preempt false
+                priority 254
+                sync-group vgroup3
+                virtual-address 10.54.75.129/26
+            }
+        }
+    }
+    vif 1940 {
+        address 192.168.1.1/24
+        vrrp {
+            vrrp-group 2 {
+                advertise-interval 1
+                preempt false
+                priority 254
+                sync-group vgroup2
+                virtual-address 10.54.231.193/26
+            }
+        }
+    }
     vrrp {
         vrrp-group 1 {
             advertise-interval 1
             preempt false
             priority 254
             rfc3768-compatibility
             sync-group vgroup1
             virtual-address 10.52.102.130/26
         }
     }
 }
```

上記の設定になっていれば問題ないので、「commit」コマンドで設定反映、「save」コマンドで設定ファイルへ保存し、「exit」コマンドで設定変更モードから通常モードに戻します。
 
```
vyatta@ngwa1# commit
vyatta@ngwa1# save
vyatta@ngwa1# exit
```

続いてngwa2の設定を行います。 ngwa2にログインし、ngwa1と同様に設定を行います。 ngwa1との差分は仮想インターフェースのIP、VRRP-GROUPのpriorityです。
 
```
vyatta@ngwa2:~$ configure
[edit]
vyatta@ngwa2# set interfaces bonding bond0 vif 1912 address '192.168.2.2/24'                            <--変更点
vyatta@ngwa2# set interfaces bonding bond0 vif 1912 vrrp vrrp-group 3 advertise-interval '1'
vyatta@ngwa2# set interfaces bonding bond0 vif 1912 vrrp vrrp-group 3 preempt 'false'
vyatta@ngwa2# set interfaces bonding bond0 vif 1912 vrrp vrrp-group 3 priority '253'                    <--変更点
vyatta@ngwa2# set interfaces bonding bond0 vif 1912 vrrp vrrp-group 3 sync-group 'vgroup3'
vyatta@ngwa2# set interfaces bonding bond0 vif 1912 vrrp vrrp-group 3 virtual-address '10.54.75.129/26'
vyatta@ngwa2# set interfaces bonding bond0 vif 1940 address '192.168.1.2/24'                            <--変更点
vyatta@ngwa2# set interfaces bonding bond0 vif 1940 vrrp vrrp-group 2 advertise-interval '1'
vyatta@ngwa2# set interfaces bonding bond0 vif 1940 vrrp vrrp-group 2 preempt 'false'
vyatta@ngwa2# set interfaces bonding bond0 vif 1940 vrrp vrrp-group 2 priority '253'                    <--変更点
vyatta@ngwa2# set interfaces bonding bond0 vif 1940 vrrp vrrp-group 2 sync-group 'vgroup2'
vyatta@ngwa2# set interfaces bonding bond0 vif 1940 vrrp vrrp-group 2 virtual-address '10.54.231.193/26'
```

「show interface」コマンドにて追加した内容を確認します。
 
```
vyatta@ngwa2# show interface
 bonding bond0 {
     address 10.52.102.133/26
     hash-policy layer3+4
     mode 802.3ad
+    vif 1912 {
+        address 192.168.2.2/24
+        vrrp {
+            vrrp-group 3 {
+                advertise-interval 1
+                preempt false
+                priority 253
+                sync-group vgroup3
+                virtual-address 10.54.75.129/26
+            }
+        }
+    }
+    vif 1940 {
+        address 192.168.1.2/24
+        vrrp {
+            vrrp-group 2 {
+                advertise-interval 1
+                preempt false
+                priority 253
+                sync-group vgroup2
+                virtual-address 10.54.231.193/26
+            }
+        }
+    }
     vrrp {
         vrrp-group 1 {
             advertise-interval 1
             preempt false
             priority 253
             rfc3768-compatibility
             sync-group vgroup1
             virtual-address 10.52.102.130/26
         }
     }
 }
```

上記の設定になっていれば問題ないので、「commit」コマンドで設定反映、「save」コマンドで設定ファイルへ保存し、「exit」コマンドで設定変更モードから通常モードに戻します。
 
```
vyatta@ngwa2# commit
vyatta@ngwa2# save
vyatta@ngwa2# exit
```

設定確認
ngwa1とngwa2に設定した"priority"に従ってMASTERとBACKUPに成っていることを確認します。 "priority"が高い方がMASTERとなります。

ngwa1での「show vrrp」の出力結果の「State」列から、ngwa1が「MASTER」であることが分かります。
 
```
vyatta@ngwa1:~$ show vrrp
                                 RFC        Addr   Last        Sync
Interface         Group  State   Compliant  Owner  Transition  Group
---------         -----  -----   ---------  -----  ----------  -----
bond0             1      MASTER  yes        no     1w4d20m27s  vgroup1
bond0.1912        3      MASTER  no         no     1w4d20m27s  vgroup3
bond0.1940        2      MASTER  no         no     1w4d20m27s  vgroup2
bond1             1      MASTER  yes        no     1w4d20m25s  vgroup1
```

ngwa2では「BACKUP」であることが分かります。

```
vyatta@ngwa2:~$ show vrrp
                                 RFC        Addr   Last        Sync
Interface         Group  State   Compliant  Owner  Transition  Group
---------         -----  -----   ---------  -----  ----------  -----
bond0             1      BACKUP  yes        no     1w4d13m40s  vgroup1
bond0.1912        3      BACKUP  no         no     1w4d13m40s  vgroup3
bond0.1940        2      BACKUP  no         no     1w4d13m40s  vgroup2
bond1             1      BACKUP  yes        no     1w4d13m40s  vgroup1
```

ngwa1での「show interface」の出力結果の「IP Address」列に、VRRPの仮想アドレスが表示されています。
 
```
vyatta@ngwa1:~$ show interface
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface        IP Address                        S/L  Description
---------        ----------                        ---  -----------
bond0            10.52.102.131/26                  u/u
bond0.1912       192.168.2.1/24                    u/u
                 10.54.75.129/26                                    <-- VRRPの仮想アドレス
bond0.1940       192.168.1.1/24                    u/u
                 10.54.231.193/26                                   <-- VRRPの仮想アドレス
bond0v1          10.52.102.130/26                  u/u
bond1            50.97.227.123/29                  u/u
                 2607:f0d0:2101:262::3/64
bond1v1          50.97.227.122/29                  u/u
eth0             -                                 u/u
eth1             -                                 u/u
eth2             -                                 u/D
eth3             -                                 u/D
lo               127.0.0.1/8                       u/u
                 ::1/128
```

ngwa2にはVRRPの仮想アドレスが現れません。

```
vyatta@ngwa2:~$ show interface
Codes: S - State, L - Link, u - Up, D - Down, A - Admin Down
Interface        IP Address                        S/L  Description
---------        ----------                        ---  -----------
bond0            10.52.102.133/26                  u/u
bond0.1912       192.168.2.2/24                    u/u
bond0.1940       192.168.1.2/24                    u/u
bond0v1          -                                 A/D
bond1            50.97.227.124/29                  u/u
                 2607:f0d0:2101:262::4/64
bond1v1          -                                 A/D
eth0             -                                 u/u
eth1             -                                 u/u
eth2             -                                 u/D
eth3             -                                 u/D
lo               127.0.0.1/8                       u/u
                 ::1/128
vyatta@ngwa2:~$
```
 

ファイアウォール設定
Vyattaに設定した仮想インターフェースに対して、ファイアウォールの設定を適用します。 まず、今回の構成に必要なファイアウォールのポリシーを作成します。 この構成では、APゾーン、DBゾーン間で通信が行えること、SoftLayer共通設備との通信が行えるように設定します。 SoftLayer共通設備の通信先はSoftLayerナレッジページ http://knowledgelayer.softlayer.com/faq/what-ip-ranges-do-i-allow-through-firewall の"Service Network"にリストがあります。 今回の構成で許可するネットワークはリストのdal01、sjc01です。 ファイアウォールのポリシーはngwa1に設定するとngwa2に同期されます。 一方、ファイアウォールポリシーの仮想インターフェースへの適用は同期されないため、それぞれ設定します。

サブネットをグループ化し、ファイアウォールのポリシーを作成します。 そして作成したポリシーを仮想インターフェースに適用します。 初めにサブネットをグループ化します。 APゾーン用サブネットグループは「AP-Zone」、DBゾーン用サブネットグループは「DB-Zone」、SoftLayer共通設備用サブネットグループは「SJC01」とします。 ngwa1にログインし、「configure」コマンドで設定編集モードに変更し、「set」コマンドで以下の通りグループ化します。
 
```
vyatta@ngwa1:~$ configure
vyatta@ngwa1# set firewall group network-group AP-Zone description 'AP-Zone Network'
vyatta@ngwa1# set firewall group network-group AP-Zone network '10.54.75.128/26'
vyatta@ngwa1# set firewall group network-group DB-Zone description 'DB-Zone Network'
vyatta@ngwa1# set firewall group network-group DB-Zone network '10.54.231.192/26'
vyatta@ngwa1# set firewall group network-group SJC01 description 'SortLayer Service Network'
vyatta@ngwa1# set firewall group network-group SJC01 network '10.0.64.0/19'
vyatta@ngwa1# set firewall group network-group SJC01 network '10.1.192.0/20'
```

次のコマンドにて追加した内容を確認します。 左に「+」が記されている行が、コマンドで追加された部分です。
 
```
vyatta@ngwa1# show firewall group network-group
+network-group AP-Zone {
+    description "AP-Zone Network"
+    network 10.54.75.128/26
+}
+network-group DB-Zone {
+    description "DB-Zone Network"
+    network 10.54.231.192/26
+}
+network-group SJC01 {
+    description "SortLayer Service Network"
+    network 10.0.64.0/19
+    network 10.1.192.0/20
+}
```

次にファイアウォールのポリシーを作成します。 このポリシーはサブネットごとに通信できる相手先を定義しているものです。 まずAPゾーン用ポリシーとして次のように「ap_zone_rule」を作成します。 APゾーン用ポリシーは、SoftLayer共通設備用サブネット(SJC01)、DBゾーン(DB-Zone)と通信できるようにし、それ以外とは通信できないようにします。
 
```
vyatta@ngwa1# set firewall name ap_zone_rule default-action 'drop'
vyatta@ngwa1# set firewall name ap_zone_rule rule 1 action 'accept'
vyatta@ngwa1# set firewall name ap_zone_rule rule 1 destination group network-group SJC01
vyatta@ngwa1# set firewall name ap_zone_rule rule 11 action 'accept'
vyatta@ngwa1# set firewall name ap_zone_rule rule 11 destination group network-group DB-Zone
```

続いてDBゾーン用ポリシーとして次の様に「db_zone_rule」を作成します。 DBゾーン用ポリシーは、SoftLayer共通設備用サブネット(SJC01)、APゾーン(AP-Zone)と通信できるようにし、それ以外とは通信できないようにします。
 
```
vyatta@ngwa1# set firewall name db_zone_rule default-action 'drop'
vyatta@ngwa1# set firewall name db_zone_rule rule 1 action 'accept'
vyatta@ngwa1# set firewall name db_zone_rule rule 1 destination group network-group SJC01
vyatta@ngwa1# set firewall name db_zone_rule rule 11 action 'accept'
vyatta@ngwa1# set firewall name db_zone_rule rule 11 destination group network-group AP-Zone
```

以下のように、それぞれのコマンドで作成した内容を確認できます。
 
```
vyatta@ngwa1# show firewall name ap_zone_rule
+default-action drop
+rule 1 {
+    action accept
+    destination {
+        group {
+            network-group SJC01
+        }
+    }
+}
+rule 11 {
+    action accept
+    destination {
+        group {
+            network-group DB-Zone
+        }
+    }
+}

vyatta@ngwa1# show firewall name db_zone_rule
+default-action drop
+rule 1 {
+    action accept
+    destination {
+        group {
+            network-group SJC01
+        }
+    }
+}
+rule 11 {
+    action accept
+    destination {
+        group {
+            network-group AP-Zone
+        }
+    }
+}
```

ここまでの設定はngwa1からngwa2に同期されるため、次のコマンドで確定して保存します。 「exit」コマンドで設定変更モードから一旦通常モードに戻します。
 
```
vyatta@ngwa1# commit
vyatta@ngwa1# save
vyatta@ngwa1# exit
```

続いて、仮想インターフェースに作成したポリシーを適用するため、それぞれのVyattaにログインして設定します。 ngwa1にログインし、「configure」コマンドで設定編集モードに変更し、「set」コマンドで仮想インターフェースに対してファイアウォールのポリシーを適用します。 確認は「show interface」コマンドにて行えます。
 
```
vyatta@ngwa1:~$ configure
vyatta@ngwa1# set interfaces bonding bond0 vif 1912 firewall in name ap_zone_rule
vyatta@ngwa1# set interfaces bonding bond0 vif 1940 firewall in name db_zone_rule
```

「commit」コマンドで設定反映、「save」コマンドで設定ファイルへ保存し、「exit」コマンドで設定変更モードから通常モードに戻します。
 
```
vyatta@ngwa1# commit
vyatta@ngwa1# save
vyatta@ngwa1# exit
```

続いてngwa2にログインし、ngwa1と同様に設定を行います。
 
```
vyatta@ngwa2:~$ configure
vyatta@ngwa2# set interfaces bonding bond0 vif 1912 firewall in name ap_zone_rule
vyatta@ngwa2# set interfaces bonding bond0 vif 1940 firewall in name db_zone_rule
```

「commit」コマンドで設定反映、「save」コマンドで設定ファイルへ保存し、「exit」コマンドで設定変更モードから通常モードに戻します。
 
```
vyatta@ngwa2# commit
vyatta@ngwa2# save
vyatta@ngwa2# exit
```

以上でngwa1、ngwa2の設定が完了しました。

疎通確認
最後にAPゾーン、DBゾーンそれぞれのサーバーにログインし、設定にて通信を許可したサブネットとのみ疎通が行えることを確認します。 確認方法としては、APゾーンのサーバーからDBゾーンのサーバーへpingを打って応答があること、APゾーン、DBゾーンのサーバーからSoftLayer共通設備へpingを打って応答があること、DNSサーバーを利用して名前解決ができること等を確認していきます。 セキュリティが確保されていることを確認するため、他のVLANやデータセンターに仮想サーバーを立ち上げて、ping等を使って通信が遮断されていることを確認します。

以下の例は、APゾーン上のサーバー(10.54.75.152)からSoftLayer共通設備用サブネットへ通信が行えることの確認としてSoftLayer共通設備のDNSサーバー(10.0.80.11)への問い合わせが行えること、及びAPゾーン上のサーバー(10.54.75.152)からDBゾーン上のサーバー(10.54.231.220)へpingにて疎通が行えることを確認しています。

```
root@tkr207:~# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 06:a7:c5:4e:c5:6f 
          inet addr:10.54.75.152  Bcast:10.54.75.191  Mask:255.255.255.192
          inet6 addr: fe80::4a7:c5ff:fe4e:c56f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:1875398 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28834 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:118187052 (118.1 MB)  TX bytes:2216989 (2.2 MB)

root@tkr207:~# nslookup ibm.com
Server:         10.0.80.11
Address:        10.0.80.11#53

Non-authoritative answer:
Name:   ibm.com
Address: 129.42.38.1

root@tkr207:~# ping -c 3 10.54.231.220
PING 10.54.231.220 (10.54.231.220) 56(84) bytes of data.
64 bytes from 10.54.231.220: icmp_seq=1 ttl=63 time=0.934 ms
64 bytes from 10.54.231.220: icmp_seq=2 ttl=63 time=0.968 ms
64 bytes from 10.54.231.220: icmp_seq=3 ttl=63 time=0.916 ms

--- 10.54.231.220 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 0.916/0.939/0.968/0.033 ms
```

参考：Vyattaの設定
以下に、今回ご紹介した2つのVyattaの設定内容を添付します。
ngwa1の設定(showコマンドの実行結果)
 
```
 firewall {
     all-ping enable
     broadcast-ping disable
     config-trap disable
     group {
         network-group AP-Zone {
             description "AP-Zone Network"
             network 10.54.75.128/26
         }
         network-group DB-Zone {
             description "DB-Zone Network"
             network 10.54.231.192/26
         }
         network-group SJC01 {
             description "SortLayer Service Network"
             network 10.0.64.0/19
             network 10.1.192.0/20
         }
     }
     ipv6-receive-redirects disable
     ipv6-src-route disable
     ip-src-route disable
     log-martians enable
     name SERVICE-ALLOW {
         default-action drop
         rule 1 {
             action accept
             destination {
                 address 10.0.64.0/19
             }
         }
         rule 2 {
             action accept
             destination {
                 address 10.1.128.0/19
             }
         }
         rule 3 {
             action accept
             destination {
                 address 10.0.86.0/24
             }
         }
         rule 4 {
             action accept
             destination {
                 address 10.2.128.0/20
             }
         }
         rule 5 {
             action accept
             destination {
                 address 10.1.176.0/20
             }
         }
         rule 6 {
             action accept
             destination {
                 address 10.1.64.0/19
             }
         }
         rule 7 {
             action accept
             destination {
                 address 10.1.96.0/19
             }
         }
         rule 8 {
             action accept
             destination {
                 address 10.1.192.0/20
             }
         }
         rule 9 {
             action accept
             destination {
                 address 10.1.160.0/20
             }
         }
         rule 10 {
             action accept
             destination {
                 address 10.2.32.0/20
             }
         }
         rule 11 {
             action accept
             destination {
                 address 10.2.64.0/20
             }
         }
     }
     name ap_zone_rule {
         default-action drop
         rule 1 {
             action accept
             destination {
                 group {
                     network-group SJC01
                 }
             }
         }
         rule 11 {
             action accept
             destination {
                 group {
                     network-group DB-Zone
                 }
             }
         }
     }
     name db_zone_rule {
         default-action drop
         rule 1 {
             action accept
             destination {
                 group {
                     network-group SJC01
                 }
             }
         }
         rule 11 {
             action accept
             destination {
                 group {
                     network-group AP-Zone
                 }
             }
         }
     }
     receive-redirects disable
     send-redirects disable
     source-validation disable
     syn-cookies enable
 }
 interfaces {
     bonding bond0 {
         address 10.52.102.131/26
         hash-policy layer3+4
         mode 802.3ad
         vif 1912 {
             address 192.168.2.1/24
             firewall {
                 in {
                     name ap_zone_rule
                 }
             }
             vrrp {
                 vrrp-group 3 {
                     advertise-interval 1
                     preempt false
                     priority 254
                     sync-group vgroup3
                     virtual-address 10.54.75.129/26
                 }
             }
         }
         vif 1940 {
             address 192.168.1.1/24
             firewall {
                 in {
                     name db_zone_rule
                 }
             }
             vrrp {
                 vrrp-group 2 {
                     advertise-interval 1
                     preempt false
                     priority 254
                     sync-group vgroup2
                     virtual-address 10.54.231.193/26
                 }
             }
         }
         vrrp {
             vrrp-group 1 {
                 advertise-interval 1
                 preempt false
                 priority 254
                 rfc3768-compatibility
                 sync-group vgroup1
                 virtual-address 10.52.102.130/26
             }
         }
     }
     bonding bond1 {
         address 50.97.227.123/29
         address 2607:f0d0:2101:0262:0000:0000:0000:0003/64
         hash-policy layer3+4
         mode 802.3ad
         vrrp {
             vrrp-group 1 {
                 advertise-interval 1
                 preempt false
                 priority 254
                 rfc3768-compatibility
                 sync-group vgroup1
                 virtual-address 50.97.227.122/29
             }
         }
     }
     ethernet eth0 {
         bond-group bond0
         duplex auto
         hw-id 00:25:90:25:9e:bc
         smp_affinity auto
         speed auto
     }
     ethernet eth1 {
         bond-group bond1
         duplex auto
         hw-id 00:25:90:25:9e:bd
         smp_affinity auto
         speed auto
     }
     ethernet eth2 {
         bond-group bond0
         duplex auto
         hw-id 00:25:90:25:9e:be
         smp_affinity auto
         speed auto
     }
     ethernet eth3 {
         bond-group bond1
         duplex auto
         hw-id 00:25:90:25:9e:bf
         smp_affinity auto
         speed auto
     }
     loopback lo {
     }
 }
 protocols {
     static {
         route 10.0.0.0/8 {
             next-hop 10.52.102.129 {
             }
         }
         route6 ::/0 {
             next-hop 2607:f0d0:2101:0262:0000:0000:0000:0001 {
             }
         }
     }
 }
 service {
     https {
         http-redirect enable
         listen-address 10.52.102.131
     }
     ssh {
         port 22
     }
 }
 system {
     config-management {
         commit-revisions 20
     }
     config-sync {
         remote-router 10.52.102.133 {
             password C7bvjtyu
             sync-map SYNC
             username vyatta
         }
         sync-map SYNC {
             rule 1 {
                 action include
                 location nat
             }
             rule 2 {
                 action include
                 location firewall
             }
             rule 3 {
                 action include
                 location vpn
             }
         }
     }
     conntrack {
         expect-table-size 2048
         hash-size 32768
         table-size 262144
     }
     console {
         device ttyS0 {
             speed 9600
         }
     }
     domain-name example.com
     gateway-address 50.97.227.121
     host-name ngwa1
     login {
         user root {
             authentication {
                 encrypted-password $1$tUupGh8R$3Wc/i2ph5qA7ZOi7HWx13.
                 plaintext-password ""
             }
             level admin
         }
         user vyatta {
             authentication {
                 encrypted-password $1$JLZ9JpTk$uSPl1DgGgLaYOYuVkrnvW0
                 plaintext-password ""
             }
             level admin
         }
     }
     name-server 10.0.80.11
     name-server 10.0.80.12
     ntp {
         server time.service.networklayer.com {
         }
     }
     package {
         auto-sync 1
         repository supported {
             components main
             distribution stable
             password ""
             url http://packages.vyatta.com/vyatta-supported
             username ""
         }
     }
     syslog {
         global {
             facility all {
                 level notice
             }
             facility protocols {
                 level debug
             }
         }
         user all {
             facility all {
                 level emerg
             }
         }
     }
     time-zone America/Chicago
 }
```

ngwa2の設定(showコマンドの実行結果)
 
```
 firewall {
     all-ping enable
     broadcast-ping disable
     config-trap disable
     group {
         network-group AP-Zone {
             description "AP-Zone Network"
             network 10.54.75.128/26
         }
         network-group DB-Zone {
             description "DB-Zone Network"
             network 10.54.231.192/26
         }
         network-group SJC01 {
             description "SortLayer Service Network"
             network 10.0.64.0/19
             network 10.1.192.0/20
         }
     }
     ipv6-receive-redirects disable
     ipv6-src-route disable
     ip-src-route disable
     log-martians enable
     name SERVICE-ALLOW {
         default-action drop
         rule 1 {
             action accept
             destination {
                 address 10.0.64.0/19
             }
         }
         rule 2 {
             action accept
             destination {
                 address 10.1.128.0/19
             }
         }
         rule 3 {
             action accept
             destination {
                 address 10.0.86.0/24
             }
         }
         rule 4 {
             action accept
             destination {
                 address 10.2.128.0/20
             }
         }
         rule 5 {
             action accept
             destination {
                 address 10.1.176.0/20
             }
         }
         rule 6 {
             action accept
             destination {
                 address 10.1.64.0/19
             }
         }
         rule 7 {
             action accept
             destination {
                 address 10.1.96.0/19
             }
         }
         rule 8 {
             action accept
             destination {
                 address 10.1.192.0/20
             }
:
         }
         rule 9 {
             action accept
             destination {
                 address 10.1.160.0/20
             }
         }
         rule 10 {
             action accept
             destination {
                 address 10.2.32.0/20
             }
         }
         rule 11 {
             action accept
             destination {
                 address 10.2.64.0/20
             }
         }
     }
     name ap_zone_rule {
         default-action drop
         rule 1 {
             action accept
             destination {
                 group {
                     network-group SJC01
                 }
             }
         }
         rule 11 {
             action accept
             destination {
                 group {
                     network-group DB-Zone
                 }
             }
         }
     }
     name db_zone_rule {
         default-action drop
         rule 1 {
             action accept
             destination {
                 group {
                     network-group SJC01
                 }
             }
         }
         rule 11 {
             action accept
             destination {
                 group {
                     network-group AP-Zone
                 }
             }
         }
     }
     receive-redirects disable
     send-redirects disable
     source-validation disable
     syn-cookies enable
 }
 interfaces {
     bonding bond0 {
         address 10.52.102.133/26
         hash-policy layer3+4
         mode 802.3ad
         vif 1912 {
             address 192.168.2.2/24
             firewall {
                 in {
                     name ap_zone_rule
                 }
             }
             vrrp {
                 vrrp-group 3 {
                     advertise-interval 1
                     preempt false
                     priority 253
                     sync-group vgroup3
                     virtual-address 10.54.75.129/26
                 }
             }
         }
         vif 1940 {
             address 192.168.1.2/24
             firewall {
                 in {
                     name db_zone_rule
                 }
             }
             vrrp {
                 vrrp-group 2 {
                     advertise-interval 1
                     preempt false
                     priority 253
                     sync-group vgroup2
                     virtual-address 10.54.231.193/26
                 }
             }
         }
         vrrp {
             vrrp-group 1 {
                 advertise-interval 1
                 preempt false
                 priority 253
                 rfc3768-compatibility
                 sync-group vgroup1
                 virtual-address 10.52.102.130/26
             }
         }
     }
     bonding bond1 {
         address 50.97.227.124/29
         address 2607:f0d0:2101:0262:0000:0000:0000:0004/64
         hash-policy layer3+4
         mode 802.3ad
         vrrp {
             vrrp-group 1 {
                 advertise-interval 1
                 preempt false
                 priority 253
                 rfc3768-compatibility
                 sync-group vgroup1
                 virtual-address 50.97.227.122/29
             }
         }
     }
     ethernet eth0 {
         bond-group bond0
         duplex auto
         hw-id 00:25:90:57:ea:52
         smp_affinity auto
         speed auto
     }
     ethernet eth1 {
         bond-group bond1
         duplex auto
         hw-id 00:25:90:57:ea:53
         smp_affinity auto
         speed auto
     }
     ethernet eth2 {
         bond-group bond0
         duplex auto
         hw-id 00:25:90:57:ea:54
         smp_affinity auto
         speed auto
     }
     ethernet eth3 {
         bond-group bond1
         duplex auto
         hw-id 00:25:90:57:ea:55
         smp_affinity auto
         speed auto
     }
     loopback lo {
     }
 }
 protocols {
     static {
         route 10.0.0.0/8 {
             next-hop 10.52.102.129 {
             }
         }
         route6 ::/0 {
             next-hop 2607:f0d0:2101:0262:0000:0000:0000:0001 {
             }
         }
     }
 }
 service {
     https {
         http-redirect enable
         listen-address 10.52.102.133
     }
     ssh {
         port 22
     }
 }
 system {
     config-management {
         commit-revisions 20
     }
     config-sync {
         sync-map SYNC {
             rule 1 {
                 action include
                 location nat
             }
             rule 2 {
                 action include
                 location firewall
             }
             rule 3 {
                 action include
                 location vpn
             }
         }
     }
     conntrack {
         expect-table-size 2048
         hash-size 32768
         table-size 262144
     }
     console {
         device ttyS0 {
             speed 9600
         }
     }
     domain-name example.com
     gateway-address 50.97.227.121
     host-name ngwa2
     login {
         user root {
             authentication {
                 encrypted-password $1$zradiS8F$iC95MvztDKjgUpnl0hQSA1
                 plaintext-password ""
             }
             level admin
         }
         user vyatta {
             authentication {
                 encrypted-password $1$pohJtmKq$r8VoQl4kJLygClVY.GnrM/
                 plaintext-password ""
             }
             level admin
         }
     }
     name-server 10.0.80.11
     name-server 10.0.80.12
     ntp {
         server time.service.networklayer.com {
         }
     }
     package {
         auto-sync 1
         repository supported {
             components main
             distribution stable
             password ""
             url http://packages.vyatta.com/vyatta-supported
             username ""
         }
     }
     syslog {
         global {
             facility all {
                 level notice
             }
             facility protocols {
                 level debug
             }
         }
         user all {
             facility all {
                 level emerg
             }
         }
     }
     time-zone America/Chicago
 }
```

設定内容の詳細を確認したい場合は、Brocade社の公式マニュアルを参照してください。 Vyatta 5400 Manual http://www.brocade.com/downloads/documents/html_product_manuals/vyatta/vyatta_5400_manual/wwhelp/wwhimpl/js/html/wwhelp.htm#href=Basic%20System/Preface.1.1.html

ゲートウェイ・アプライアンスとして購入したVyattaの設定に疑問点がある場合、チケットで問い合わせをすることができます。