IPCOMを利用した共通ネットワークパターン#
本構成はFJcloud-O 東日本/西日本リージョン3向けとなります。
要求事項#
- 「部門別」や「システム別」などに分けてFJcloud-O環境を構築する際、プロジェクトという単位で管理したい
- インターネットやイントラネットなどの外部接続は、セキュリティの統制上1つのプロジェクトにまとめたい
対応するデザインパターン概要#
- ハブとなるプロジェクトを起点に、複数のプロジェクトをネットワークRBAC(プロジェクト間でネットワークリソースを共有する機能)で接続します。これにより、インターネットやイントラネットへの外部接続や、メンテナンス用の管理ネットワークを一括管理することができます。
- ネットワークRBACで接続した複数プロジェクトをルーティングするため、IPCOMを使用します。またIPCOMは冗長化し、可用性を高めます。
- 業務用仮想サーバのWindows updateは、FJcloud-O IaaSが提供するWSUS (Windows Server Update Services) を使用します。
構造(イメージ図)#
1. システム構成図#
- 本検証では「西日本リージョン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アドレスは、重複しないよう設計してください。
2. IPCOMネットワーク論理構成図#
- 本構成では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用のセキュリティグループを作成します。
- セキュリティグループ
- セキュリティグループ名:SG-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用のセキュリティグループを作成します。
- セキュリティグループ
- セキュリティグループ名:SG-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接続)用のセキュリティグループを作成します。
- セキュリティグループ
- セキュリティグループ名:SG-SSLVPN
- 説明: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サービスを設定
- 作成手順は初期構築ガイド VPNサービスを作成 を参照
- 以下の設定値例を参照
項目 | 設定値例 |
---|---|
仮想ルータ名 | routerA0 |
サブネット名 | subnetA0 |
VPNサービス名 | ssl-vpn-service |
説明 | (空欄) |
管理状態 | TRUE |
Note
「指定した仮想ルータにファイアウォールが設定されていません。VPNサービス作成後に設定してください。」というポップアップが現れますが、ここではOKをクリックします。
(2) SSL-VPNコネクションの作成#
- 以下のSSL-VPNコネクションを作成
- 作成手順は初期構築ガイド 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 .
- 以下のcurlコマンドを実行し、内部ネットワークA3をプロジェクトBに共有するためのネットワークのアクセスポリシーを作成
-
実行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 .
- 以下のcurlコマンドを実行し、内部ネットワークA4をプロジェクトCに共有するためのネットワークのアクセスポリシーを作成
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 | [Hourly] Red Hat Enterprise Linux 8.x 64bit (English) | 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 .
- 以下のcurlコマンドを実行し、
-
実行結果例
- 出力されるサーバグループ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に対して、それぞれライセンス認証を行います。
手順は以下の資料を参照ください。
- FUJITSU Hybrid IT Service FJcloud-O IaaS IPCOM VE2m スタートガイド
- 第5 章 【LS/SC】ライセンス登録 > 5.1【LS】IPCOM VE2m LS にリモートコンソールログイン
- 第5 章 【LS/SC】ライセンス登録 > 5.2【LS】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-rhel ~]# 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-rhel ~]#
(3) IPCOM VE2m 100 LS PLUS(待機系)のホスト名とPW設定#
(1) IPCOM VE2m 100 LS PLUS(現用系)に対するホスト名・パスワードの設定 と同様の設定を、IPCOM VE2m 100 LS PLUS(待機系)に対して行います。
設定にあたっては、以下のコマンド例をご参照ください。
- コマンド例
[root@bastionvm-rhel ~]# 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-rhel ~]# 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-rhel ~]#
(5) 冗長化設定の確認#
IPCOM VE2m 100 LS PLUS(現用系)またはIPCOM VE2m 100 LS PLUS(待機系)にSSHログインし、冗長化設定が正しく設定できているか確認します。
以下のコマンドを実行し、対向ノードを正しく認識しているか確認します。
-
コマンド例
[root@bastionvm-rhel ~]# 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
- IPCOM VE2m 100 LS PLUS(現用系)からサーバWへのping応答
西日本リージョン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)にファイアウォール機能を設定し、以下の図に示したプロトコルの通信を許可します。
- ファイアウォール設定のポイント
- 業務用通信は内部ネットワーク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の設定にあたっては、以下の資料を適宜ご参照ください。