IPCOMを利用した共通ネットワークパターン#

本構成はFJcloud-O 東日本/西日本リージョン3向けとなります。

要求事項#

  • 「部門別」や「システム別」などに分けてFJcloud-O環境を構築する際、プロジェクトという単位で管理したい
  • インターネットやイントラネットなどの外部接続は、セキュリティの統制上1つのプロジェクトにまとめたい

対応するデザインパターン概要#

  • ハブとなるプロジェクトを起点に、複数のプロジェクトをネットワークRBAC(プロジェクト間でネットワークリソースを共有する機能)で接続します。これにより、インターネットやイントラネットへの外部接続や、メンテナンス用の管理ネットワークを一括管理することができます。
  • ネットワークRBACで接続した複数プロジェクトをルーティングするため、IPCOMを使用します。またIPCOMは冗長化し、可用性を高めます。
  • 業務用仮想サーバのWindows updateは、FJcloud-O IaaSが提供するWSUS (Windows Server Update Services) を使用します。

構造(イメージ図)#

1. システム構成図#

image

  • 本検証では「西日本リージョン3」を「オンプレミス環境」に見立て検証します。
  • ハブとなる「プロジェクトA」を起点に、「プロジェクトB」「プロジェクトC」と接続します。
  • ネットワークRBACを用いて、プロジェクトAの内部ネットワークA3・A4を、それぞれプロジェクトB・Cと共有します。
  • IPCOMを用いて、プロジェクトA・B・Cをルーティングします。
    • 内部ネットワークには、仮想ルータを1個しか接続できません。
  • サーバB・Cへの業務用通信は西日本リージョン3からのアクセスに限定します。
  • サーバB・Cへの管理用通信はプロジェクトAの踏み台サーバからのアクセスに限定します。
  • 内部ネットワークW1・A0・A1・A3・A4・B・CのIPアドレスは、重複しないよう設計してください。
  • 仮想サーバは全てWindows Server 2019で作成します。

2. IPCOMネットワーク論理構成図#

image

  • 本構成では2台のIPCOM VE2m 100 LS PLUSを使用し、冗長構成とします。
  • 代表IPアドレスは2台のIPCOM VE2mで共有するために割り当てるIP アドレスです。冗長切り替え後に片方のIPCOM VE2m 100 LS PLUSに引き継がれます。

実装サンプル#

オンプレミスに見立てた「西日本リージョン3」内の以下リソースは、既に構築済みとします。

  • ルータW1
  • 内部ネットワークW1
  • サーバW(Windows Server 2019)

1. 内部ネットワークの作成・DEXの申請#

仮想ネットワークを作成します。

  • 各作業プロジェクトで「内部ネットワークA0」・「内部ネットワークA1」・「内部ネットワークA3」・「内部ネットワークA4」・「内部ネットワークB」・「内部ネットワークC」を作成
    • DHCPは「有効」、DNSサーバは「8.8.8.8」を設定
    • 「subnetA1」・「subnetA0」・「subnetA3」・「subnetA4」では事前に追加のルートを設定
    • 作成手順は初期構築ガイド 仮想ネットワークの作成 を参照
    • 以下の設定値例を参照
作業
プロジェクト
ネットワーク 仮想ネットワーク名 サブネット名 サブネット ゲートウェイIP 追加のルート設定
                    
プロジェクトA 内部ネットワークA0 nwA0 subnetA0 192.168.0.0/24 192.168.0.1 {"destination", "nexthop"}=
{"192.168.30.0/24", "192.168.0.100"},
{"192.168.40.0/24", "192.168.0.100"},
{"192.168.3.0/24", "192.168.0.100"},
{"192.168.4.0/24", "192.168.0.100"}
プロジェクトA 内部ネットワークA1 nwA1 subnetA1 192.168.20.0/24 192.168.20.1 {"destination", "nexthop"}=
{"192.168.30.0/24", "192.168.20.100"},
{"192.168.40.0/24", "192.168.20.100"},
{"192.168.3.0/24", "192.168.20.100"},
{"192.168.4.0/24", "192.168.20.100"}
プロジェクトA 内部ネットワークA3 nwA3 subnetA3 192.168.3.0/24 192.168.3.100 {"destination", "nexthop"}=
{"0.0.0.0/0", "192.168.3.100"},
{"192.168.30.0/24", "192.168.3.1"}
プロジェクトA 内部ネットワークA4 nwA4 subnetA4 192.168.4.0/24 192.168.4.100 {"destination", "nexthop"}=
{"0.0.0.0/0", "192.168.4.100"},
{"192.168.40.0/24", "192.168.4.1"}
プロジェクトB 内部ネットワークB nwB subnetB 192.168.30.0/24 192.168.30.1 -
プロジェクトC 内部ネットワークC nwC subnetC 192.168.40.0/24 192.168.40.1 -

仮想ルータを作成します。

  • プロジェクトAで「ルータA0」・「ルータA1」を作成
    • 作成した仮想ルータに内部ネットワークのサブネットを接続
    • 仮想ルータの作成手順は、初期構築ガイド仮想ルータの作成を参照
    • 仮想ルータと内部ネットワークのサブネットを接続する手順は、初期構築ガイド 仮想ルータとサブネットの接続 を参照
    • 以下の設定値例を参照
作業プロジェクト ルータ 仮想ルータ名 外部ネットワーク サブネット接続 IPアドレス 用途
プロジェクトA ルータA0 routerA0 接続(fip-net) subnetA0 192.168.0.1 SSL-VPN接続用
プロジェクトA ルータA1 routerA1 接続(fip-net) subnetA1 192.168.20.1 DEX・外部接続用

さらに、作成した仮想ルータにルーティングを追加します。

  • ルータA1へのルーティングの追加
    • IaaSポータル画面の場合:仮想ルータ一覧 → 「仮想ルータ名」右側の「アクション」 → 「編集」を選択 → 「仮想ルータ編集」画面にて「ルーティング設定」を追加
    • 以下の設定値例を参照
作業プロジェクト 仮想ルータ 追加のルート設定 内容
プロジェクトA ルータA1 {"destination", "nexthop"}=
{"192.168.30.0/24", "192.168.20.100"},
{"192.168.40.0/24", "192.168.20.100"},
{"192.168.3.0/24", "192.168.20.100"},
{"192.168.4.0/24", "192.168.20.100"}
内部ネットワークB・C・A3・A4宛へのルーティングとしてIPCOM側の代表IPアドレスをnext hopとして指定

FJcloud-Oの東日本リージョン3と西日本リージョン3をDEX(リージョン間接続)を使用して閉域接続します。
申請時に、以下の情報が必要となります。

  • 契約番号
  • 「東日本リージョン3」の「プロジェクトID」と「DEX接続する仮想ルータID」
  • 「西日本リージョン3」の「プロジェクトID」と「DEX接続する仮想ルータID」

2. セキュリティグループの作成#

セキュリティグループ・セキュリティグループルールを作成します。
実際の運用においては、 セキュリティグループ活用 を参考に、適切なセキュリティグループを設定してください。

(1)内部ネットワークB用#

プロジェクトB内に内部ネットワークB用のセキュリティグループを作成します。

  • セキュリティグループ
  • セキュリティグループルール

    • 送信:
      • 「IPv6」「IPv4」「ICMP」を全て許可
    • 受信:

      • 疎通確認のため「ICMP」を全て許可
      • 「内部ネットワークB」からの「TCP」「UDP」を全て許可(プロジェクト内業務通信用)
      • 「内部ネットワークW1」からの「HTTP (80/tcp)」「HTTPS (443/tcp)」を許可(業務通信用)
      • 「内部ネットワークC」からの「HTTP (80/tcp)」「HTTPS (443/tcp)」を許可(業務通信用)
      • 「内部ネットワークA0」からの「SSH (22/tcp)」「RDP (3389/tcp)」を許可(管理通信用)
    • 設定手順は初期構築ガイド セキュリティグループルールの作成 を参照

    • 以下の設定値例を参照
No. ルール 方向 オープンポート ポート番号 接続先 CIDR
1 ALL IPv6 送信
2 ALL IPv4 送信
3 ALL ICMP 送信 CIDR 0.0.0.0/0
4 ALL ICMP 受信 CIDR 0.0.0.0/0
5 ALL TCP(1-65535) 受信 -       CIDR 192.168.30.0/24
6 ALL UDP(1-65535) 受信 -      CIDR 192.168.30.0/24
7 カスタムTCPルール 受信 ポート番号 80 CIDR 192.168.70.0/24
8 カスタムTCPルール 受信 ポート番号 443 CIDR 192.168.70.0/24
9 カスタムTCPルール 受信 ポート番号 80 CIDR 192.168.40.0/24
10 カスタムTCPルール 受信 ポート番号 443 CIDR 192.168.40.0/24
11 カスタムTCPルール 受信 ポート番号 22 CIDR 192.168.0.0/24
12 カスタムTCPルール 受信 ポート番号 3389 CIDR 192.168.0.0/24

(2)内部ネットワークC用#

プロジェクトC内に内部ネットワークC用のセキュリティグループを作成します。

  • セキュリティグループ
  • セキュリティグループルール

    • 送信:
      • 「IPv6」「IPv4」「ICMP」を全て許可
    • 受信:

      • 疎通確認のため「ICMP」を全て許可
      • 「内部ネットワークC」からの「TCP」「UDP」を全て許可(プロジェクト内業務通信用)
      • 「内部ネットワークW1」からの「HTTP (80/tcp)」「HTTPS (443/tcp)」を許可(業務通信用)
      • 「内部ネットワークB」からの「HTTP (80/tcp)」「HTTPS (443/tcp)」を許可(業務通信用)
      • 「内部ネットワークA0」からの「SSH (22/tcp)」「RDP (3389/tcp)」を許可(管理通信用)
    • 設定手順は初期構築ガイド セキュリティグループルールの作成 を参照

    • 以下の設定値例を参照
No. ルール 方向 オープンポート ポート番号 接続先 CIDR
1 ALL IPv6 送信
2 ALL IPv4 送信
3 ALL ICMP 送信 CIDR 0.0.0.0/0
4 ALL ICMP 受信 CIDR 0.0.0.0/0
5 ALL TCP(1-65535) 受信 -       CIDR 192.168.40.0/24
6 ALL UDP(1-65535) 受信 -      CIDR 192.168.40.0/24
7 カスタムTCPルール 受信 ポート番号 80 CIDR 192.168.70.0/24
8 カスタムTCPルール 受信 ポート番号 443 CIDR 192.168.70.0/24
9 カスタムTCPルール 受信 ポート番号 80 CIDR 192.168.30.0/24
10 カスタムTCPルール 受信 ポート番号 443 CIDR 192.168.30.0/24
11 カスタムTCPルール 受信 ポート番号 22 CIDR 192.168.0.0/24
12 カスタムTCPルール 受信 ポート番号 3389 CIDR 192.168.0.0/24

(3)内部ネットワークA0(SSL-VPN接続)用#

プロジェクトA内に内部ネットワークA0(SSL-VPN接続)用のセキュリティグループを作成します。

  • セキュリティグループ
  • セキュリティグループルール
    • 送信:「IPv6」「IPv4」「ICMP」を全て許可
    • 受信:
      • 疎通確認のため「ICMP」を全て許可
      • 「SSL-VPNクライアントプール」からの、「SSH (22/tcp)」「RDP (3389/tcp)」を許可
    • 設定手順は初期構築ガイド セキュリティグループルールの作成 を参照
    • 以下の設定値例を参照
No. ルール 方向 オープンポート ポート 接続先 CIDR
1 ALL IPv6 送信
2 ALL IPv4 送信
3 ALL ICMP 送信 CIDR 0.0.0.0/0
4 ALL ICMP 受信 CIDR 0.0.0.0/0
5 カスタムTCPルール 受信 ポート番号 22 CIDR 192.168.246.0/24
6 カスタムTCPルール 受信 ポート番号 3389 CIDR 192.168.246.0/24

(4) IPCOM VE2m 100 LS PLUS用#

プロジェクトA内にIPCOM VE2m 100 LS PLUS用のセキュリティグループを作成します。
IPCOM VE2m 100 LS PLUSの各インターフェイスに対する詳細なパケットフィルタリングの設定は、後ほどIPCOMのファイアウォール機能を使用して行います。

  • セキュリティグループ

    • セキュリティグループ名:SG-IPCOM
    • stateful:false
      ※IPCOMを冗長構成で利用する場合、切替時の通信トラブルを防ぐため、ステートレスセキュリティグループを利用
    • 説明:IPCOM VE2m 100 LS PLUS用
    • 作成手順は初期構築ガイド セキュリティグループの作成 を参照
  • セキュリティグループルール

    • 送信:「IPv6」「IPv4」「ICMP」を全て許可
    • 受信:「ICMP」「TCP」「UDP」「VRRP(ポート112)」を全て許可
    • 設定手順は初期構築ガイド セキュリティグループルールの作成 を参照
    • 以下の設定値例を参照
No. ルール 方向 オープンポート ポート 接続先 CIDR
1 ALL IPv6 送信
2 ALL IPv4 送信
3 ALL ICMP 送信 CIDR 0.0.0.0/0
4 ALL ICMP 受信 CIDR 0.0.0.0/0
5 ALL TCP(1-65535) 受信 CIDR 0.0.0.0/0
6 ALL UDP(1-65535) 受信 CIDR 0.0.0.0/0
7 IPv4 VRRP 受信 112 CIDR 0.0.0.0/0

3. SSL-VPNの作成#

仮想サーバへのセキュアな接続を実現するため、プロジェクトA内にSSL-VPNを作成します。

(1) VPNサービスの作成#

  • ルータA0にVPNサービスを設定
項目 設定値例
仮想ルータ名 routerA0
サブネット名 subnetA0
VPNサービス名 ssl-vpn-service
説明 (空欄)
管理状態 TRUE

Note

「指定した仮想ルータにファイアウォールが設定されていません。VPNサービス作成後に設定してください。」というポップアップが現れますが、ここではOKをクリックします。

(2) SSL-VPNコネクションの作成#

項目 設定値例
SSL-VPN接続名 ssl-vpn-conn
管理状態 TRUE
証明書 FJCS証明書(デフォルト)
グローバルIP 自動割当
クライアントIPプール 192.168.246.0/24

4. ネットワークRBACの作成#

プロジェクトAで、APIを使用してネットワークRBACを作成します。

  • 設定項目(REST API)
リクエストパラメータ名 変数例 設定値例 内容
"action" $RBAC_ACTION "access_as_shared" RBACポリシーのアクションを指定
"object_id" $OBJ_ID1 (仮想ネットワークID) 共有する内部ネットワークのリソースIDを指定
ここでは内部ネットワークA3のIDを指定
"object_id" $OBJ_ID2 (仮想ネットワークID) 共有する内部ネットワークのリソースIDを指定
ここでは内部ネットワークA4のIDを指定
"object_type" $OBJ_TYPE "network" RBACポリシーを適用するオブジェクトのタイプを指定
"target_tenant" $TAR_TENANT1 (プロジェクトID) RBACポリシーを適用するプロジェクトのIDを指定
ここではプロジェクトBのIDを指定
"target_tenant" $TAR_TENANT2 (プロジェクトID) RBACポリシーを適用するプロジェクトのIDを指定
ここではプロジェクトCのIDを指定
  • 実行API

    • 以下のcurlコマンドを実行し、内部ネットワークA3をプロジェクトBに共有するためのネットワークのアクセスポリシーを作成
      curl -Ss $NETWORK/v2.0/rbac-policies -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{ "rbac_policy":{ "action":"'$RBAC_ACTION'", "object_id":"'$OBJ_ID1'", "object_type":"'$OBJ_TYPE'", "target_tenant":"'$TAR_TENANT1'" } }' | jq .
      
  • 実行API

    • 以下のcurlコマンドを実行し、内部ネットワークA4をプロジェクトCに共有するためのネットワークのアクセスポリシーを作成
      curl -Ss $NETWORK/v2.0/rbac-policies -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{ "rbac_policy":{ "action":"'$RBAC_ACTION'", "object_id":"'$OBJ_ID2'", "object_type":"'$OBJ_TYPE'", "target_tenant":"'$TAR_TENANT2'" } }' | jq .
      

Note

target_tenantにワイルドカードを使用することで、複数の内部ネットワークを指定することはできません。
プロジェクトの数だけアクセスポリシーを作成してください。

5. プロジェクトB・C用ルータの作成#

プロジェクト内および他プロジェクトへと、ルーティングするためのルータを作成します。

  • 各作業プロジェクトで「ルータB」・「ルータC」を作成
    • 仮想ルータの作成手順は、初期構築ガイド 仮想ルータの作成 を参照
    • 以下の設定値例を参照
作業プロジェクト ルータ 仮想ルータ名 外部ネットワーク 用途
プロジェクトB ルータB routerB 内部ネットワークA3・Bのルーティング用
プロジェクトC ルータC routerC 内部ネットワークA4・Cのルーティング用
  • 作成した仮想ルータに内部ネットワークのサブネットを接続
作業プロジェクト 仮想ルータ サブネット IPアドレス
プロジェクトB ルータB subnetA3 192.168.3.1
  subnetB 192.168.30.1
プロジェクトC ルータC subnetA4 192.168.4.1
  subnetC 192.168.40.1
  • さらに、作成したルータにルーティングを追加
    • IaaSポータル画面の場合:仮想ルータ一覧 → 「仮想ルータ名」右側の「アクション」 → 「編集」を選択 → 「仮想ルータ編集」画面にて「ルーティング設定」を追加
    • 以下の設定値例を参照
作業プロジェクト 仮想ルータ 追加のルート設定 内容
プロジェクトB ルータB {"destination", "nexthop"}=
{"0.0.0.0/0", "192.168.3.100"}
内部ネットワークA3と接続するIPCOM側の代表IPアドレスをデフォルトルートに指定
プロジェクトC ルータC {"destination", "nexthop"}=
{"0.0.0.0/0", "192.168.4.100"}
内部ネットワークA4と接続するIPCOM側の代表IPアドレスをデフォルトルートに指定

6. 仮想サーバの作成#

(1) 仮想サーバの作成#

仮想サーバを作成します。

  • 以下の設定値例に従い、各作業プロジェクトで「踏み台サーバ」・「サーバB」・「サーバC」を作成
    • サーバグループは「設定なし」、デバイスサイズは最小ディスク容量を設定
    • 作成手順は初期構築ガイド 仮想サーバ構築 を参照
作業プロジェクト 仮想サーバ 仮想サーバ名 仮想サーバタイプ OSイメージ 選択済み仮想ネットワーク セキュリティグループ
プロジェクトA 踏み台サーバ BastionVM C3-2 Windows Server 2019 nwA0 SG-A0
プロジェクトB サーバB VM-B C3-2 Windows Server 2019 nwB SG-B
プロジェクトC サーバC VM-C C3-2 Windows Server 2019 nwC SG-C

(2) スタティックルートの追加#

スタティックルートを追加します。

  • 作成した「踏み台サーバ」に対しスタティックルートを追加

    • SSL-VPN経由でのWindows仮想サーバへのログイン手順は仮想サーバ接続を参照
    • ログイン後は「コマンドプロンプト」を「管理者として実行」し、以下のコマンド例を参照の上スタティックルートを追加
  • コマンド例

    route -p add 192.168.30.0 mask 255.255.255.0 192.168.0.100
    route -p add 192.168.40.0 mask 255.255.255.0 192.168.0.100
    route -p add 192.168.3.0 mask 255.255.255.0 192.168.0.100
    route -p add 192.168.4.0 mask 255.255.255.0 192.168.0.100
    

7. IPCOM VE2m 100 LS PLUSの作成#

(1) サーバグループの作成#

作成する2台のIPCOM VE2m 100 LS PLUSを確実に異なる物理サーバ上に配備することで、FJcloud-O内部での物理サーバ故障時の影響範囲を局所化します。
これを実現するために、2台のIPCOM VE2m 100 LS PLUSを単一のサーバグループとしてまとめて登録し、そのサーバグループの挙動をanti-affinityポリシーとして指定します。

  • 設定項目(REST API)
リクエストパラメータ名 変数例 設定値例 内容
"name" $NAME "IPCOM_VE2m_ServerGr" 任意のサーバグループ名を指定
"policies" $POLICY "anti-affinity" サーバグループのポリシーを指定
  • 実行API

    • 以下のcurlコマンドを実行し、anti-affinityポリシーの設定されたサーバグループを作成
      curl -Ss $COMPUTE/v2/$PROJECT_ID/os-server-groups -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type:application/json" -d '{"server_group":{ "name": "'$NAME'", "policies": ["'$POLICY'"]}}' | jq .
      
  • 実行結果例

    • 出力されるサーバグループIDを控えます
    • サーバグループIDは"id"に続く英数字です
      {
        "server_group": {
          "members": [],
          "metadata": {},
          "id": "5e777691-3855-46ba-a8b7-5cd028b91ca9",
          "policies": [
            "anti-affinity"
          ],
          "name": "IPCOM_VE2m_ServerGr"
        }
      }  
      

(2) IPCOM VE2m 100 LS PLUSの作成#

冗長構成とするため、IPCOM VE2m 100 LS PLUSを2台構築します。

  • IPCOM_VE2m_LS_primary:現用系
  • IPCOM_VE2m_LS_secondary:待機系
(A) IPCOM VE2m 100 LS PLUS(現用系)の作成#

APIを使用し、IPCOM VE2m 100 LS PLUS(現用系)を作成します。

  • 設定項目(REST API)
リクエストパラメータ名 変数例 設定値例 内容
"name" $VM_NAME "IPCOM_VE2m_LS_primary" 任意のサーバー名を指定
"uuid" $IMAGE_REF_ID (イメージID) IPCOM VE2m 100 LS PLUSのイメージIDを指定
"flavorRef" $FLAVOR_ID (フレーバーID) 作成するIPCOMのフレーバーIDを指定
IPCOM VE2m 100 LS PLUSではS3-1またはS4-1SのIDを指定
(専有仮想サーバの場合、S3-1.dまたはS4-1S.dのID)
"volume_size" $VOL_SIZE 4 初回起動時のボリュームは4GB固定
"device_name" $DEVICE_NAME "/dev/vda" システムストレージの場合、"/dev/vda"を指定
"source_type" $SOURCE "image" ブロックストレージのソースタイプとしてイメージを指定
"destination_type" $DESTINATION "volume" 仮想サーバの接続先としてボリュームを指定
"delete_on_termination" $ISDELETE "true" IPCOM VE2m 100 LS PLUSの削除時にボリュームも削除する場合は"true"を指定
"max_count" $INSTANCE_MAX 1 仮想サーバの最大数を指定
"min_count" $INSTANCE_MIN 1 仮想サーバの最大数を指定
"uuid" $NETWORK_ID1 (仮想ネットワークID) ポートを作成する仮想ネットワークとして、内部ネットワークA1の仮想ネットワークIDを指定
"uuid" $NETWORK_ID2 (仮想ネットワークID) ポートを作成する仮想ネットワークとして、内部ネットワークA0の仮想ネットワークIDを指定
"uuid" $NETWORK_ID3 (仮想ネットワークID) ポートを作成する仮想ネットワークとして、内部ネットワークA3の仮想ネットワークIDを指定
"uuid" $NETWORK_ID4 (仮想ネットワークID) ポートを作成する仮想ネットワークとして、内部ネットワークA4の仮想ネットワークIDを指定
"name" $SG_NAME "SG-IPCOM" 作成するポートに割り当てるセキュリティグループとして、事前に作成済みのセキュリティグループ名を指定
"group" $GROUP_ID (サーバグループID) 事前に作成したサーバグループIDを指定
  • 実行API
    • 以下のcurlコマンドを実行し、IPCOM VE2m 100 LS PLUS(現用系)を作成
curl -Ss $COMPUTE/v2/$PROJECT_ID/servers -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"server": {"name": "'$VM_NAME'", "imageRef": "", "flavorRef": "'$FLAVOR_ID'", "block_device_mapping_v2":[{"boot_index": "0", "uuid": "'$IMAGE_REF_ID'", "volume_size": "'$VOL_SIZE'", "device_name": "'$DEVICE_NAME'", "source_type": "'$SOURCE'", "destination_type": "'$DESTINATION'", "delete_on_termination": "'$ISDELETE'"}], "max_count": '$INSTANCE_MAX', "min_count": '$INSTANCE_MIN', "networks": [{"uuid": "'$NETWORK_ID1'"}, {"uuid": "'$NETWORK_ID2'"}, {"uuid": "'$NETWORK_ID3'"}, {"uuid": "'$NETWORK_ID4'"}], "security_groups": [{"name": "'$SG_NAME'"}]}, "os:scheduler_hints": {"group": "'$GROUP_ID'"}}'
(B) IPCOM VE2m 100 LS PLUS(待機系)の作成#

APIを使用し、(A) IPCOM VE2m 100 LS PLUS(現用系)の作成と同様の設定でIPCOM VE2m 100 LS PLUS(待機系)を作成します。
この際、サーバ名に関しては、以下に示した通りにIPCOM VE2m 100 LS PLUS(現用系)に設定した値と異なる名称を設定してください。

  • 設定項目(REST API)
リクエストパラメータ名 変数例 設定値例 内容
"name" $VM_NAME "IPCOM_VE2m_LS_secondary" 任意のサーバー名を指定

(3) IPCOM VE2m 100 LS PLUSのポート設定#

上記の設定でIPCOM VE2m 100 LS PLUSを作成した場合、各ポートにはFJcloud-OのDHCPによりプライベートIPアドレスが自動で割り当てられています。
そのため、以下の手順を行いIPアドレスを設計通りの値に変更します。

  • ポート名の付与およびIPアドレスの変更
    • IaaSポータルより仮想サーバをクリックし、「仮想サーバ詳細画面」へ → ポートの「編集」をクリック
    • ポート名、プライベートIPアドレスの設定値例は以下


  • IPCOM VE2m 100 LS PLUS(現用系)のポート設定値
ポート名 仮想ネットワーク名 管理状態 プライベートIPアドレス
PrimaryPortA0 nwA0 Up 192.168.0.10
PrimaryPortA1 nwA1 Up 192.168.20.10
PrimaryPortA3 nwA3 Up 192.168.3.10
PrimaryPortA4 nwA4 Up 192.168.4.10
  • IPCOM VE2m 100 LS PLUS(待機系)のポート設定値
ポート名 仮想ネットワーク名 管理状態 プライベートIPアドレス
SecondaryPortA0 nwA0 Up 192.168.0.20
SecondaryPortA1 nwA1 Up 192.168.20.20
SecondaryPortA3 nwA3 Up 192.168.3.20
SecondaryPortA4 nwA4 Up 192.168.4.20

8. IPCOM VE2m 100 LS PLUSへのライセンス登録#

(1) IPCOM VE2m 100 LS PLUSに対してライセンスを登録#

作成した2台のIPCOM VE2m 100 LS PLUSに対して、それぞれライセンス認証を行います。
手順は以下の資料を参照ください。

(2) IPCOM VE2m 100 LS PLUS(現用系)への追加ボリュームの作成とアタッチ#

IPCOM VE2m 100 LS PLUS(現用系)のシステム用ボリュームを作成し、アタッチします。

(A) システム用ボリュームの作成#

APIを使用し、システム用ボリュームを作成します。

  • 設定項目(REST API)
リクエストパラメータ名 変数例 設定値例 内容
"name" $NAME "ipcom_VE2m_LS_pri_vol" 任意のボリューム名を指定
"size" $SIZE "100" ボリューム容量を指定
  • 実行API
    curl -Ss $BLOCKSTORAGE/v2/$PROJECT_ID/volumes -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"volume":{"name": "'$NAME'", "size": "'$SIZE'" }}' | jq . 
    
(B) システム用ボリュームのアタッチ#

APIを使用し、作成したシステム用ボリュームをIPCOM VE2m 100 LS PLU(現用系)にアタッチします。

  • 設定項目(REST API)
リクエストパラメータ名 変数例 設定値例 内容
$SERVER_ID (サーバID) IPCOM VE2m 100 LS PLUS(現用系)のサーバIDを指定
"device" $DEVICE "/dev/vdb" システム用ボリュームとして"/dev/vdb"を指定
"volumeId" $VOLUME_ID (ボリュームID) 上記で作成したボリュームのIDを指定
  • 実行API
    curl -Ss -X POST $COMPUTE/v2/$TENANT_ID/servers/$SERVER_ID/os-volume_attachments -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"volumeAttachment": {"volumeId": "'$VOLUME_ID'", "device": "'$DEVICE'"}}' | jq .
    

(3) IPCOM VE2m 100 LS PLUS(待機系)への追加ボリュームの作成とアタッチ#

上記 (2) IPCOM VE2m 100 LS PLUS(現用系)への追加ボリュームの作成とアタッチ と同様の手順で、IPCOM VE2m 100 LS PLUS(待機系)のシステム用ボリュームを作成し、アタッチします。
この際、作成するボリュームのボリューム名に関しては、以下に示した通りにIPCOM VE2m 100 LS PLUS(現用系)用の追加ボリューム名設定時と異なる値を設定してください。

  • 設定項目(REST API)
リクエストパラメータ名 変数例 設定値例 内容
"name" $NAME "ipcom_VE2m_LS_sco_vol" 任意のボリューム名を指定

(4)IPCOM VE2m 100 LS PLUSの起動#

IaaSポータルより、停止している2台のIPCOM VE2m 100 LS PLUSを起動します。
起動は IPCOM VE2m 100 LS PLUS(現用系), IPCOM VE2m 100 LS PLUS(待機系) の順番に実施してください。

9. IPCOM VE2m 100 LS PLUSのルーティング許可設定#

作成したIPCOM VE2m 100 LS PLUSの2台をルータとして利用するために、必要となるルーティングの許可設定を行います。

(1) IPCOM VE2m 100 LS PLUS(現用系)への設定#

APIを使用し、PrimaryPortA0へのルーティング許可設定を行います。

  • 設定項目(REST API)
リクエストパラメータ名 変数例 設定値例 内容
$PORT_ID (ポートID) PrimaryPortA0として使用するFJcloud-O上のポートIDを指定
"ip_address" $PORT_address1 0.0.0.0/0 固定値として0.0.0.0/0を指定
"ip_address" $PORT_address2 192.168.0.100 PrimaryPortA0、SecondaryPortA0の代表IPアドレスを指定
  • 実行API
curl -Ss $NETWORK/v2.0/ports/$PORT_ID -X PUT -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"port":{"allowed_address_pairs": [{"ip_address": "'$PORT_address1'"}, {"ip_address": "'$PORT_address2'"}]}}' | jq .

上記と同様の手順を繰り返し、PrimaryPortA1、PrimaryPortA3、PrimaryPortA4へのルーティング許可設定を行います。
この際、$PORT_address2に対応する代表IPアドレスの値は以下を指定します。

対象ポート 代表IPアドレス 内容
PrimaryPortA1 192.168.20.100 PrimaryPortA1、SecondaryPortA1の代表IPアドレスを指定
PrimaryPortA3 192.168.3.100 PrimaryPortA3、SecondaryPortA3の代表IPアドレスを指定
PrimaryPortA4 192.168.4.100 PrimaryPortA4、SecondaryPortA4の代表IPアドレスを指定

(2) IPCOM VE2m 100 LS PLUS(待機系)への設定#

APIを使用し、SecondaryPortA0へのルーティング許可設定を行います。

  • 設定項目(REST API)
リクエストパラメータ名 変数例 設定値例 内容
$PORT_ID (ポートID) SecondaryPortA0として使用するFJcloud-O上のポートIDを指定
"ip_address" $PORT_address1 0.0.0.0/0 固定値として0.0.0.0/0を指定
"ip_address" $PORT_address2 192.168.0.100 PrimaryPortA0、SecondaryPortA0の代表IPアドレスを指定
  • 実行API
curl -Ss $NETWORK/v2.0/ports/$PORT_ID -X PUT -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"port":{"allowed_address_pairs": [{"ip_address": "'$PORT_address1'"}, {"ip_address": "'$PORT_address2'"}]}}' | jq .

上記と同様の手順を繰り返し、SecondaryPortA1、SecondaryPortA3、SecondaryPortA4へのルーティング許可設定を行います。
この際、$PORT_address2に対応する代表IPアドレスの値は以下を指定します。

対象ポート 代表IPアドレス 内容
SecondaryPortA1 192.168.20.100 PrimaryPortA1、SecondaryPortA1の代表IPアドレスを指定
SecondaryPortA3 192.168.3.100 PrimaryPortA3、SecondaryPortA3の代表IPアドレスを指定
SecondaryPortA4 192.168.4.100 PrimaryPortA4、SecondaryPortA4の代表IPアドレスを指定

10. IPCOM VE2m 100 LS PLUSの初期設定#

(1) IPCOM VE2m 100 LS PLUS(現用系)に対するホスト名・パスワードの設定#

IaaSポータルよりIPCOM VE2m 100 LS PLUS(現用系)のリモートコンソールを起動し、以下の設定を行います。

  • adminユーザに対するパスワード設定
  • ホスト名の設定
  • リモートアクセスの許可

設定にあたっては、以下のコマンド例をご参照ください。

  • コマンド例
    ipcom# configure
    ipcom(config)# load running-config
    ipcom(edit)# user admin
    ipcom(edit-user)# password “任意のパスワードを入力”
    ipcom(edit-user)# exit
    ipcom(edit)# hostname vipcom-pri vipcom-sco
    ipcom(edit)# user-role remote
    ipcom(edit-user-role)# match user admin
    ipcom(edit-user-role)# exit
    ipcom(edit)# commit force-update
    Do you overwrite "running-config" by the current configuration? (y|[n]):y
    
    <NOTICE> Local authentication database is automatically created at lowest priori
             ty 60000, when saving configuration definition as it does not exist in
             authentication database.
    
    Do you update "startup-config" for the restarting system? (y|[n]):y
    
    
    Dynamic distribution of the configuration is carried out.
    
    -----------------------------------------------------------------
    The configuration was committed and saved to startup-config.
    -----------------------------------------------------------------
    vipcom-pri(edit)#
    

以上の設定完了後、リモートコンソールを終了します。

なお、本設定を完了することで、各IPCOM VE2m 100 LS PLUSのlan0.0に設定されたIPアドレス(PrimaryPortA1・SecondaryPortA1と同等)に対し、セキュアなSSHログインが可能になります。
したがって、これより後の設定では、踏み台サーバから各IPCOMに対しSSHログインし設定を行います。
これによりコンフィグのコピー・ペースト操作やログの記録が容易になります。

(2) IPCOM VE2m 100 LS PLUS(現用系)に対するインターフェースの冗長化設定#

IPCOM VE2m 100 LS PLUS(現用系)にSSHログインし、以下に示したインターフェース設定と冗長化の設定を行います。

  • 各インターフェイス(lan0.0~lan0.3)に対する設定
    • クラスターの設定
    • 各インターフェイスに対して、プライマリーIPアドレス・セカンダリIPアドレス・代表IPアドレスを設定
    • mtuサイズの設定
    • ルーティングの許可設定
  • デフォルトルートの設定
    • 192.168.20.1(ルータA1)をデフォルトルートに設定
  • スタティックルートの設定

    • 192.168.30.0/24に対するnext hopを192.168.3.1(ルータB)に設定
    • 192.168.40.0/24に対するnext hopを192.168.4.1(ルータC)に設定
  • コマンド例

    [root@bastionvm-centos ~]# ssh admin@192.168.0.10
    admin@192.168.0.10's password:
    vipcom-pri>
    vipcom-pri> admin
    vipcom-pri# config
    vipcom-pri(config)# load running-config
    vipcom-pri(edit)# protect checksum-inspection disable
    vipcom-pri(edit)# cluster mode primary
    vipcom-pri(edit)# cluster id 1
    vipcom-pri(edit)# cluster secret-key vipcom
    vipcom-pri(edit)#
    vipcom-pri(edit)# interface lan0.0
    vipcom-pri(edit-if)# ip address 192.168.0.100 255.255.255.0
    vipcom-pri(edit-if)# ip address primary 192.168.0.10
    vipcom-pri(edit-if)# ip address secondary 192.168.0.20
    vipcom-pri(edit-if)# description IPCOM-VE2m-InternalNW-A0
    vipcom-pri(edit-if)# mtu 8950
    vipcom-pri(edit-if)# ip-routing
    vipcom-pri(edit-if)# cluster sync-interface
    vipcom-pri(edit-if)# cluster vrid 10
    vipcom-pri(edit-if)# exit
    vipcom-pri(edit)#
    vipcom-pri(edit)# interface lan0.1
    vipcom-pri(edit-if)# ip address 192.168.20.100 255.255.255.0
    vipcom-pri(edit-if)# ip address primary 192.168.20.10
    vipcom-pri(edit-if)# ip address secondary 192.168.20.20
    vipcom-pri(edit-if)# description IPCOM-VE2m-InternalNW-A1
    vipcom-pri(edit-if)# mtu 8950
    vipcom-pri(edit-if)# ip-routing
    vipcom-pri(edit-if)# cluster sync-interface
    vipcom-pri(edit-if)# cluster vrid 20
    vipcom-pri(edit-if)# exit
    vipcom-pri(edit)#
    vipcom-pri(edit)# interface lan0.2
    vipcom-pri(edit-if)# ip address 192.168.3.100 255.255.255.0
    vipcom-pri(edit-if)# ip address primary 192.168.3.10
    vipcom-pri(edit-if)# ip address secondary 192.168.3.20
    vipcom-pri(edit-if)# description IPCOM-VE2m-InternalNW-A3
    vipcom-pri(edit-if)# mtu 8950
    vipcom-pri(edit-if)# ip-routing
    vipcom-pri(edit-if)# cluster sync-interface
    vipcom-pri(edit-if)# cluster vrid 30
    vipcom-pri(edit-if)# exit
    vipcom-pri(edit)#
    vipcom-pri(edit)# interface lan0.3
    vipcom-pri(edit-if)# ip address 192.168.4.100 255.255.255.0
    vipcom-pri(edit-if)# ip address primary 192.168.4.10
    vipcom-pri(edit-if)# ip address secondary 192.168.4.20
    vipcom-pri(edit-if)# description IPCOM-VE2m-InternalNW-A4
    vipcom-pri(edit-if)# mtu 8950
    vipcom-pri(edit-if)# ip-routing
    vipcom-pri(edit-if)# cluster sync-interface
    vipcom-pri(edit-if)# cluster vrid 40
    vipcom-pri(edit-if)# exit
    vipcom-pri(edit)#
    vipcom-pri(edit)# ip route 0.0.0.0/0 192.168.20.1 distance 2
    vipcom-pri(edit)# ip route 192.168.30.0/24 192.168.3.1 distance 2
    vipcom-pri(edit)# ip route 192.168.40.0/24 192.168.4.1 distance 2
    vipcom-pri(edit)# save startup-config
    Do you overwrite "startup-config" by the current configuration? (y|[n]):y
    
    <NOTICE> Local authentication database is automatically created at lowest priori
             ty 60000, when saving configuration definition as it does not exist in
             authentication database.
    
    
    ---------------------------------------------------------
    The configuration was saved to startup-config.
    The configuration is applied when the system is restarted.
    Please restart the system.
    ---------------------------------------------------------
    vipcom-pri(edit)# reset
    Restarting of the system disconnects all communications. Are you sure?(y|[n]):y
    
    <INFO> Wait for a moment until restarting this device.
    
    Connection to 192.168.0.10 closed.
    [root@bastionvm-centos ~]#
    

(3) IPCOM VE2m 100 LS PLUS(待機系)のホスト名とPW設定#

(1) IPCOM VE2m 100 LS PLUS(現用系)に対するホスト名・パスワードの設定 と同様の設定を、IPCOM VE2m 100 LS PLUS(待機系)に対して行います。
設定にあたっては、以下のコマンド例をご参照ください。

  • コマンド例
    [root@bastionvm-centos ~]# ssh admin@192.168.0.20
    admin@192.168.0.20's password:
    ipcom# configure
    ipcom(config)# load running-config
    ipcom(edit)# user admin
    ipcom(edit-user)# password “任意のパスワードを入力”
    ipcom(edit-user)# exit
    ipcom(edit)# hostname vipcom-pri vipcom-sco
    ipcom(edit)# user-role remote
    ipcom(edit-user-role)# match user admin
    ipcom(edit-user-role)# exit
    ipcom(edit)# commit force-update
    Do you overwrite "running-config" by the current configuration? (y|[n]):y
    
    <NOTICE> Local authentication database is automatically created at lowest priori
             ty 60000, when saving configuration definition as it does not exist in
             authentication database.
    
    Do you update "startup-config" for the restarting system? (y|[n]):y
    
    
    Dynamic distribution of the configuration is carried out.
    
    -----------------------------------------------------------------
    The configuration was committed and saved to startup-config.
    -----------------------------------------------------------------
    vipcom-pri(edit)#
    

(4) IPCOM VE2m 100 LS PLUS(待機系)に対するインターフェースの冗長化設定#

(2) IPCOM VE2m 100 LS PLUS(現用系)に対するインターフェースの冗長化設定 と同様の設定を、IPCOM VE2m 100 LS PLUS(待機系)に対して行います。
設定にあたっては、以下のコマンド例をご参照ください。

  • コマンド例
    [root@bastionvm-centos ~]# ssh admin@192.168.0.20
    admin@192.168.0.20's password:
    vipcom-pri> admin
    vipcom-pri# configure
    vipcom-pri(config)# load running-config
    vipcom-pri(edit)# protect checksum-inspection disable
    vipcom-pri(edit)# cluster mode secondary
    vipcom-pri(edit)# cluster id 1
    vipcom-pri(edit)# cluster secret-key vipcom
    vipcom-pri(edit)#
    vipcom-pri(edit)# interface lan0.0
    vipcom-pri(edit-if)# ip address 192.168.0.100 255.255.255.0
    vipcom-pri(edit-if)# ip address primary 192.168.0.10
    vipcom-pri(edit-if)# ip address secondary 192.168.0.20
    vipcom-pri(edit-if)# description IPCOM-VE2m-InternalNW-A0
    vipcom-pri(edit-if)# mtu 8950
    vipcom-pri(edit-if)# ip-routing
    vipcom-pri(edit-if)# cluster sync-interface
    vipcom-pri(edit-if)# cluster vrid 10
    vipcom-pri(edit-if)# exit
    vipcom-pri(edit)#
    vipcom-pri(edit)# interface lan0.1
    vipcom-pri(edit-if)# ip address 192.168.20.100 255.255.255.0
    vipcom-pri(edit-if)# ip address primary 192.168.20.10
    vipcom-pri(edit-if)# ip address secondary 192.168.20.20
    vipcom-pri(edit-if)# description IPCOM-VE2m-InternalNW-A1
    vipcom-pri(edit-if)# mtu 8950
    vipcom-pri(edit-if)# ip-routing
    vipcom-pri(edit-if)# cluster sync-interface
    vipcom-pri(edit-if)# cluster vrid 20
    vipcom-pri(edit-if)# exit
    vipcom-pri(edit)#
    vipcom-pri(edit)# interface lan0.2
    vipcom-pri(edit-if)# ip address 192.168.3.100 255.255.255.0
    vipcom-pri(edit-if)# ip address primary 192.168.3.10
    vipcom-pri(edit-if)# ip address secondary 192.168.3.20
    vipcom-pri(edit-if)# description IPCOM-VE2m-Internal-A3
    vipcom-pri(edit-if)# mtu 8950
    vipcom-pri(edit-if)# ip-routing
    vipcom-pri(edit-if)# cluster sync-interface
    vipcom-pri(edit-if)# cluster vrid 30
    vipcom-pri(edit-if)# exit
    vipcom-pri(edit)#
    vipcom-pri(edit)# interface lan0.3
    vipcom-pri(edit-if)# ip address 192.168.4.100 255.255.255.0
    vipcom-pri(edit-if)# ip address primary 192.168.4.10
    vipcom-pri(edit-if)# ip address secondary 192.168.4.20
    vipcom-pri(edit-if)# description IPCOM-VE2m-InternalNW-A4
    vipcom-pri(edit-if)# mtu 8950
    vipcom-pri(edit-if)# ip-routing
    vipcom-pri(edit-if)# cluster sync-interface
    vipcom-pri(edit-if)# cluster vrid 40
    vipcom-pri(edit-if)# exit
    vipcom-pri(edit)#
    vipcom-pri(edit)# ip route 0.0.0.0/0 192.168.20.1 distance 2
    vipcom-pri(edit)# ip route 192.168.30.0/24 192.168.3.1 distance 2
    vipcom-pri(edit)# ip route 192.168.40.0/24 192.168.4.1 distance 2
    vipcom-pri(edit)# save startup-config
    Do you overwrite "startup-config" by the current configuration? (y|[n]):y
    
    <NOTICE> Local authentication database is automatically created at lowest priori
             ty 60000, when saving configuration definition as it does not exist in
             authentication database.
    
    
    ---------------------------------------------------------
    The configuration was saved to startup-config.
    The configuration is applied when the system is restarted.
    Please restart the system.
    ---------------------------------------------------------
    vipcom-pri(edit)# reset
    Restarting of the system disconnects all communications. Are you sure?(y|[n]):y
    
    <INFO> Wait for a moment until restarting this device.
    
    Connection to 192.168.0.20 closed.
    [root@bastionvm-centos ~]#
    

(5) 冗長化設定の確認#

IPCOM VE2m 100 LS PLUS(現用系)またはIPCOM VE2m 100 LS PLUS(待機系)にSSHログインし、冗長化設定が正しく設定できているか確認します。
以下のコマンドを実行し、対向ノードを正しく認識しているか確認します。

  • コマンド例

    [root@bastionvm-centos ~]# ssh admin@192.168.0.10
    admin@192.168.0.10's password:
    vipcom-pri> admin
    vipcom-pri# show cluster
    

  • 実行結果例(抜粋)

    • LocalとPeerのMAC Address/IP Addressが正しく表示されているかを確認
    • 表示されていない場合、セキュリティグループの設定でVRRP(112)が許可されているかを再度確認
            MAC/IP Address Information:
            --------------------  -----------------  ---------------
            Interface             MAC Address        IP Address
            --------------------  -----------------  ---------------
            lan0.0      Delegate  00:00:5e:00:01:0a  192.168.0.100
            lan0.0      Local     fa:16:3e:80:fa:f9  192.168.0.10
            lan0.0      Peer      fa:16:3e:f9:60:6c  192.168.0.20
            --------------------  -----------------  ---------------
            lan0.1      Delegate  00:00:5e:00:01:14  192.168.20.100
            lan0.1      Local     fa:16:3e:be:0d:2c  192.168.20.10
            lan0.1      Peer      fa:16:3e:68:d8:22  192.168.20.20
            --------------------  -----------------  ---------------
            lan0.2      Delegate  00:00:5e:00:01:1e  192.168.3.100
            lan0.2      Local     fa:16:3e:b0:8a:16  192.168.3.10
            lan0.2      Peer      fa:16:3e:e1:71:c9  192.168.3.20
            --------------------  -----------------  ---------------
            lan0.3      Delegate  00:00:5e:00:01:28  192.168.4.100
            lan0.3      Local     fa:16:3e:c1:8f:b2  192.168.4.10
            lan0.3      Peer      fa:16:3e:87:34:db  192.168.4.20
            --------------------  -----------------  ---------------
      

(6) 疎通確認#

2台のIPCOM VE2m 100 LS PLUSにそれぞれにSSHログインし、以下の疎通確認リストに示した各サーバ・ルータに対してpingによる疎通確認を実施します。

  • 疎通確認リスト
項番 ping送信元 ping送信先
(IPアドレス)
備考
1 IPCOM VE2m 100 LS PLUS
(現用系/待機系)
ルータW1
(192.168.70.1)
2 IPCOM VE2m 100 LS PLUS
(現用系/待機系)
サーバW            Windowsファイアウォールの設定でICMPv4受信が許可されていることを事前に確認
3 IPCOM VE2m 100 LS PLUS
(現用系/待機系)
ルータA0
(192.168.0.1)
4 IPCOM VE2m 100 LS PLUS
(現用系/待機系)
踏み台サーバ         Windowsファイアウォールの設定でICMPv4受信が許可されていることを事前に確認
5 IPCOM VE2m 100 LS PLUS
(現用系/待機系)
ルータA1
(192.168.20.1)
6 IPCOM VE2m 100 LS PLUS
(現用系/待機系)
ルータB
(192.168.3.1)
7 IPCOM VE2m 100 LS PLUS
(現用系/待機系)
ルータB
(192.168.30.1)
8 IPCOM VE2m 100 LS PLUS
(現用系/待機系)
サーバB           Windowsファイアウォールの設定でICMPv4受信が許可されていることを事前に確認
9 IPCOM VE2m 100 LS PLUS
(現用系/待機系)
ルータC
(192.168.4.1)
10 IPCOM VE2m 100 LS PLUS
(現用系/待機系)
ルータC
(192.168.40.1)
11 IPCOM VE2m 100 LS PLUS
(現用系/待機系)
サーバC           Windowsファイアウォールの設定でICMPv4受信が許可されていることを事前に確認
  • コマンド・実行結果例(抜粋)
    • IPCOM VE2m 100 LS PLUS(現用系)からサーバWへのping応答
      vipcom-pri# ping 192.168.70.121
      PING 192.168.70.121 (192.168.70.121) 92(120) bytes of data.
      100 bytes from 192.168.70.121: icmp_seq=1 ttl=116 time=11.8 ms
      100 bytes from 192.168.70.121: icmp_seq=2 ttl=116 time=10.6 ms
      100 bytes from 192.168.70.121: icmp_seq=3 ttl=116 time=10.6 ms
      100 bytes from 192.168.70.121: icmp_seq=4 ttl=116 time=10.6 ms
      
      --- 192.168.70.121 ping statistics ---
      4 packets transmitted, 4 received, 0% packet loss, time 3002ms
      rtt min/avg/max/mdev = 10.630/10.953/11.833/0.513 ms
      

西日本リージョン3とFJcloud-O間が問題なく接続されているという前提下でping応答が得られなかった場合には、以下のポイントを中心に設定を再度確認してください。

  • 項番2・4・8・11:サーバからのping応答がない場合
    • Windowsファイアウォールの設定でICMPv4受信が許可されていることを事前に確認
  • 項番2・1・5・3・6・9:サーバW・ルータW1・A1・A0・B(192.168.3.1)・C(192.168.4.1)からのping応答がない場合
    • FJcloud-OのIaaSポータルより、IPCOMの各ポートが設計値通りのIPアドレスを保持し、「状態」が「ACTIVE」となっていることを確認
    • IPCOMのインターフェイス設定・冗長化設定が問題なく構成されていることを確認
  • 項番4:踏み台サーバからのping応答がない場合
    • セキュリティグループSG-A0内のセキュリティグループルールでicmpの送信を許可していることを確認
  • 項番7:ルータB(192.168.30.1)からの応答がない場合
    • IPCOMに192.168.30.0/24宛のスタティックルートが設定されているかを確認
  • 項番10:ルータC(192.168.40.1) からの応答がない場合
    • IPCOMに192.168.40.0/24宛のスタティックルートが設定されているかを確認
  • 項番8:サーバBからの応答がない場合
    • セキュリティグループSG-B内のセキュリティグループルールでicmpの送信を許可していることを確認
    • ルータBの追加のルート設定でデフォルトルート(0.0.0.0/0宛)が設定されていることを確認
  • 項番11:サーバCからの応答がない場合
    • セキュリティグループSG-C内のセキュリティグループルールでicmpの送信を許可していることを確認
    • ルータCの追加のルート設定でデフォルトルート(0.0.0.0/0宛)が設定されていることを確認

11. IPCOM VE2m 100 LS PLUSのファイアウォール機能の設定#

IPCOM VE2m 100 LS PLUSの各インターフェイス(lan.0.0~lan0.3)にファイアウォール機能を設定し、以下の図に示したプロトコルの通信を許可します。

image

  • ファイアウォール設定のポイント
    • 業務用通信は内部ネットワークW1・B間、内部ネットワークW1・C間、内部ネットワークB・C間において両方向で許可
    • WSUS用通信は内部ネットワークB・C側を起点とし、内部ネットワークA1方向に向かう通信のみを許可
    • 疎通確認用通信は構築時の疎通確認のため、全てのインターフェイスで受信・送信とも許可
    • 管理用通信は内部ネットワークA0を起点とし、内部ネットワークB・Cそれぞれの方向に向かう通信のみを許可

(1) IPCOM VE2m 100 LS PLUS(現用系)でのファイアウォール設定#

(A) ファイアウォールルールの作成#

IPCOM VE2m 100 LS PLUS(現用系)にSSHログインした状態で、以下のファイアウォールルールを作成します。
実際の運用においては、適切なファイアウォールルールを設定してください。

  • ファイアウォールの設定内容
    • 以下で作成するファイアウォールルールに該当しない通信は全て破棄(access-control default-deny)
    • アクセスコントロールルールを有効化しアクセス制御(no access-control configuration)
    • 作成するファイアウォールルールは以下設定内容とコマンド例を参照
  • ファイアウォールルール設定内容
    • 以下のファイアウォールルールを作成
用途 ファイアウォール
ルール名
設定内容
業務用 biz-access http(80)・https(443)を許可
WSUS用 wsus-access DNS(53)・WSUS(8530)を許可
管理用(SSH) mng-access-ssh 192.168.0.0/24(内部ネットワークA0)からのSSH(22)を許可
管理用(RDP) mng-access-rdp 192.168.0.0/24(内部ネットワークA0)からのRDP(3389)を許可
疎通確認用 ping-monitor ICMP pingを許可
  • コマンド例
    vipcom-pri> admin
    vipcom-pri# con
    vipcom-pri(config)# load running-config
    vipcom-pri(edit)# access-control default-deny
    vipcom-pri(edit)# no access-control configuration
    All the definitions for the access control map are deleted if the access
     control rule is changed to enable. Are you sure?(y|[n]):y
    vipcom-pri(edit)#
    vipcom-pri(edit)# class-map match-any biz-access
    vipcom-pri(edit-cmap)# match destination-port 80/tcp
    vipcom-pri(edit-cmap)# match destination-port 443/tcp
    vipcom-pri(edit-cmap)# exit
    vipcom-pri(edit)#
    vipcom-pri(edit)# class-map match-any wsus-access
    vipcom-pri(edit-cmap)# match destination-port 53/udp
    vipcom-pri(edit-cmap)# match destination-port 8530/tcp
    vipcom-pri(edit-cmap)# exit
    vipcom-pri(edit)#
    vipcom-pri(edit)# class-map match-all mng-access-ssh
    vipcom-pri(edit-cmap)# match destination-port 22/tcp
    vipcom-pri(edit-cmap)# match source-address ip 192.168.0.0/24
    vipcom-pri(edit-cmap)# exit
    vipcom-pri(edit)#
    vipcom-pri(edit)# class-map match-all mng-access-rdp
    vipcom-pri(edit-cmap)# match destination-port 3389/tcp
    vipcom-pri(edit-cmap)# match source-address ip 192.168.0.0/24
    vipcom-pri(edit-cmap)# exit
    vipcom-pri(edit)#
    vipcom-pri(edit)# class-map match-all ping-monitor
    vipcom-pri(edit-cmap)# match icmp ping
    vipcom-pri(edit-cmap)# exit
    vipcom-pri(edit)#
    
(B) ファイアウォールルールのインターフェイスへの適用#

引き続き、作成したファイアウォールルールを各インターフェイスに指定します。

  • コマンド例
    vipcom-pri(edit)#
    vipcom-pri(edit)# interface lan0.0
    vipcom-pri(edit-if)# rule access 100 in mng-access-ssh accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 110 in mng-access-rdp accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 120 in ping-monitor accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 130 out ping-monitor accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# exit
    vipcom-pri(edit)#
    vipcom-pri(edit)# interface lan0.1
    vipcom-pri(edit-if)# rule access 100 in biz-access accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 110 out biz-access accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 120 out wsus-access accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 130 in ping-monitor accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 140 out ping-monitor accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# exit
    vipcom-pri(edit)#
    vipcom-pri(edit)# interface lan0.2
    vipcom-pri(edit-if)# rule access 100 in biz-access accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 110 out biz-access accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 120 in wsus-access accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 130 out mng-access-ssh accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 140 out mng-access-rdp accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 150 in ping-monitor accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 160 out ping-monitor accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# exit
    vipcom-pri(edit)#
    #vipcom-pri(edit)# interface lan0.3
    vipcom-pri(edit-if)# rule access 100 in biz-access accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 110 out biz-access accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 120 in wsus-access accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 130 out mng-access-ssh accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 140 out mng-access-rdp accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 150 in ping-monitor accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# rule access 160 out ping-monitor accept audit-session-normal audit-match-normal
    vipcom-pri(edit-if)# exit
    vipcom-pri(edit)#
    vipcom-pri(edit)# commit
    Do you overwrite "running-config" by the current configuration? (y|[n]):y
    
    <NOTICE> Local authentication database is automatically created at lowest priori
             ty 60000, when saving configuration definition as it does not exist in
             authentication database.
    
    Do you update "startup-config" for the restarting system? (y|[n]):y
    
    
    Dynamic distribution of the configuration is carried out.
    

(2) IPCOM VE2m 100 LS PLUS(待機系)へのファイアウォール設定の同期#

IPCOM VE2m 100 LS PLUS(現用系)で設定したコンフィグをIPCOM VE2m 100 LS PLUS(待機系)に同期します。
IPCOM VE2m 100 LS PLUS(現用系)にSSHログインした状態で、以下のコマンド例を参照ください。

  • コマンド例
    vipcom-pri>
    vipcom-pri> admin
    vipcom-pri# sync cluster primary-to-secondary
    This System: primary
    primary (2021/03/19(Fri)19:18:05) -> secondary(2021/03/19(Fri)18:32:05)
    Are you sure? (y|[n]):y
    

(3) 疎通確認#

IPCOM VE2m 100 LS PLUSのファイアウォール設定を確認するため、以下の疎通確認リストに示した疎通確認を実施します。
事前準備として、サーバWにIISサービス等を追加し、ポート80番を立ち上げてください。

  • 疎通確認リスト
項番 確認元サーバ 確認先
(IPアドレス)
確認方法
1 踏み台サーバ IPCOMの内部ネットワークA0側代表IPアドレス
(192.168.0.100)
pingによる疎通確認
2 踏み台サーバ IPCOMの内部ネットワークA3側代表IPアドレス
(192.168.3.100)
pingによる疎通確認
3 踏み台サーバ サーバB ①pingによる疎通確認
②RDPによるログイン
ログインした状態で以下を実施
③ブラウザから任意のwebサイトを開くことでインターネットへの接続を確認(ポート80・53)
④ブラウザからサーバWのWebサービスにアクセスできることを確認(ポート80)
⑤項番8の確認に向け、IISサービスを追加
4 踏み台サーバ IPCOMの内部ネットワークA4側代表IPアドレス
(192.168.4.100)
pingによる疎通確認
5 踏み台サーバ サーバC ①pingによる疎通確認
②RDPによるログイン
ログインした状態で以下を実施
③ブラウザから任意のwebサイトを開くことでインターネットへの接続を確認(ポート80・53)
④ブラウザからサーバWのWebサービスにアクセスできることを確認(ポート80)
⑤項番10の確認に向け、IISサービスを追加
6 サーバW IPCOMの内部ネットワークA1側代表IPアドレス
(192.168.20.100)
pingによる疎通確認
7 サーバW IPCOMの内部ネットワークA3側代表IPアドレス
(192.168.3.100)
pingによる疎通確認
8 サーバW   サーバB ①pingによる疎通確認
②ブラウザからサーバBのWebサービスにアクセスできることを確認(ポート80)
9 サーバW IPCOMの内部ネットワークA4側代表IPアドレス
(192.168.4.100)
pingによる疎通確認
10 サーバW サーバC ①pingによる疎通確認
②ブラウザからサーバCのWebサービスにアクセスできることを確認(ポート80)

上記のIPCOM VE2m 100 LS PLUSのファイアウォール設定を正常に完了した後で疎通確認に失敗する場合には、トラブルシューティングとして以下をご確認ください。

  • 項番2~5:踏み台サーバから内部ネットワークA3・A4・B・C宛の疎通確認に失敗する場合
    • 踏み台サーバにスタティックルートの設定が完了していることを再度確認してください。
  • 項番7~10:サーバWから内部ネットワークA3・A4・B・C宛の疎通確認に失敗する場合
    • ルータA1への追加のルーティング設定が完了していることを再度確認してください。
  • 項番1~10:全ての疎通確認に失敗する場合
    • セキュリティグループSG-IPCOM内のセキュリティグループルールを再度確認してください。

12. IPCOM VE2m 100 LS PLUSの各代表IPに対応するダミーポートの作成#

IPCOM VE2m 100 LS PLUSに設定した代表IPアドレスがFJcloud-Oのプロジェクト内で別の仮想サーバに使用されないように、内部ネットワークA0上にダミーポートを作成します。

  • 設定項目(REST API)
リクエストパラメータ名 変数例 設定値例 内容
"name" $PORT_NAME "A0ShareIP" 任意のダミーポート名を指定
"network_id" $NETWORK_ID (仮想ネットワークID) 内部ネットワークA0の仮想ネットワークIDを指定
"subnet_id" $SUBNET_ID (サブネットID) 内部ネットワークA0のサブネットIPを指定
"ip_address" $FIXED_IP_ADDRESS 192.168.20.100 内部ネットワークA0上の代表IPアドレスを指定
"security_groups" $SG_ID (セキュリティグループID) IPCOM VE2m 100 LS PLUSに割り当てたセキュリティグループのIDを指定
"device_owner" $DEVICE_OWNER "nuage:vip" 固定値として指定
  • 実行API
    curl -Ss $NETWORK/v2.0/ports -X POST -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type:application/json" -H "Accept:application/json" -d '{"port": {"network_id":"'$NETWORK_ID'", "name": "'$PORT_NAME'", "admin_state_up": true, "fixed_ips": [{"ip_address": "'$FIXED_IP_ADDRESS'", "subnet_id": "'$SUBNET_ID'"}], "security_groups": ["'$SG_ID'"], "device_owner": "'$DEVICE_OWNER'"}}' | jq .
    

同様の手順で、内部ネットワークA1・A3・A4上にもダミーポートを作成します。

13. WSUSの設定#

サーバB・サーバCに対してWSUSを設定します。
「IaaS機能説明書」 → 「WSUS (Windows Server Update Services) サーバへの接続手順」をご参照ください。

注意事項#

  • 本パターンは2021年3月時点のFJcloud-O 東日本/西日本リージョン3にて動作検証しています。
  • 実際の運用においては、適切なセキュリティグループ・ファイアウォールを設定してください。
  • IPCOM VE2m 100 LS PLUSの設定にあたっては、以下の資料を適宜ご参照ください。