###################################################################### # All Rights Reserved, Copyright FUJITSU LIMITED 2015-2018 # # API実行サンプル名: # 05-002_ルータの設定変更(ルーティング設定追加) # # 内容: # ルータへのルーティング設定を変更する手順です。 # # 版数:v1.2 # 更新日:2017/11/21 ###################################################################### 手順: ───────────────────────────────── 項番1.ルータの確認 項番2.ルータ1のルーティング設定変更 項番3.ルータ1の確認 項番4.ルータ2のルーティング設定変更 項番5.ルータ2の確認 項番6.疎通確認 項番6-1.仮想サーバ2から仮想サーバ4への疎通確認 項番6-2.仮想サーバ4から仮想サーバ2への疎通確認 項番6-3.仮想サーバ1から仮想サーバ4への疎通確認 項番6-4.仮想サーバ4から仮想サーバ1への疎通確認 項番6-5.仮想サーバ3から仮想サーバ4への疎通確認 項番6-6.仮想サーバ4から仮想サーバ3への疎通確認 ───────────────────────────────── 事前準備: あらかじめ以下を準備する必要があります。 ─────────────────────────────────── ・ネットワーク1 ・ネットワーク2 ・ネットワーク3 ・ネットワーク4 ・サブネット1 ・サブネット2 ・サブネット3 ・サブネット4 ・ルータ1 ・ルータ2 ・ファイアーウォール1(ルータ1に設定) ・SSL-VPN接続1(ルータ1に設定) ・仮想サーバ1 ・仮想サーバ2 ・仮想サーバ3 ・仮想サーバ4 ─────────────────────────────────── ルーティング設定構成例: 以下のような多段ネットワーク構成を作成する際のルータへの ルーティング設定構成例を示します。 ====================================================================== 【ルータ1】 【サブネット1】 (192.168.0.1)━━━(192.168.0.0/24) ━━━━┳━━━━━━┳━ (192.168.2.1)┓ ┃ ┃ (192.168.3.1)┃ (192.168.0.11) (192.168.0.50) ┃ ┃ 【仮想サーバ1】 【ルータ2】 ┃ ┃ 【サブネット2】 (192.168.4.1) ┃ ┗━ (192.168.2.0/24) ━━━━┳━━ ┃ 【サブネット4】 ┃ ┃ ┻━━━━(192.168.4.0/24)━━┳━ ┃ (192.168.2.12) ┃ ┃ 【仮想サーバ2】 (192.168.4.14) ┃ 【サブネット3】 【仮想サーバ4】 ┗━━━━━━(192.168.3.0/24)━━━━━┳━━ ┃ (192.168.3.13) 【仮想サーバ3】 ====================================================================== ルーティング例: 上記の「ルーティング設定構成例」のルーティングは以下を設定します。 ─────────────────────────────────── ルータ1:宛先 192.168.4.0/24 : ネクストホップ 192.168.0.50 ルータ2:宛先 192.168.2.0/24 : ネクストホップ 192.168.0.1 宛先 192.168.3.0/24 : ネクストホップ 192.168.0.1 宛先 192.168.0.0/24 : ネクストホップ 192.168.0.1 注意事項: ・上記のルーティング設定構成例のような多段ネットワーク構成において、 「ルータ1」にファイアーウォール設定が行われている場合は、「サブ ネット1」から「サブネット4」への通信を行った際に、レスポンスの パケットが「ルータ1」のファイアーウォールで遮断される可能性があり ます。 疎通させる場合、「サブネット4」へのルーティング情報を「サブネッ ト1」に追加する必要があります。(設定方法については、 API実行サンプル「05-001_サブネットの設定変更(ルーティング追加)」 を参照ください。) 項番1.ルータの確認 ルーティングを追加する前のルータ1、ルータ2のルーティング(routes) 設定を確認します。 APIの実行例: ====================================================================== curl -Ss $NETWORK/v2.0/routers -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "routers": [ { "availability_zone": "jp-west-2a", "id": "51318b80-bf98-4ede-a093-db1619639f52", "routes": [ { "destination": "192.168.246.0/24", "nexthop": "192.168.0.13" } ], "tenant_id": "<プロジェクトID>", "admin_state_up": true, "name": "TEST_Router_01", "external_gateway_info": { "enable_snat": true, "network_id": "b3ca0a26-abc5-46e8-82f2-3f27b5e7a81c" }, "status": "ACTIVE" }, { "availability_zone": "jp-west-2a", "id": "8ee2338f-f281-414f-b3d7-da23d329bc5f", "routes": [], "tenant_id": "<プロジェクトID>", "admin_state_up": true, "name": "TEST_Router_02", "external_gateway_info": null, "status": "ACTIVE" } ] } ====================================================================== 項番2.ルータ1のルーティング設定変更 ルータ1のルーティング(routes)設定を変更します。 注意事項: ・ルータに既存のルーティング情報がある場合、設定変更時に既存の ルーティング情報を含む、すべての情報を記載してください。 記載されていないルーティング情報は削除されます。 ・SSL-VPN接続を利用している場合は、自動設定されているSSL-VPN接続の ルーティング情報も記載してください。記載しない場合は、設定情報が 削除され、SSL-VPN接続ができなくなります。 環境定義コマンド例: ====================================================================== # ROUTER_ID=<ルータ1のID> ROUTER_ID=51318b80-bf98-4ede-a093-db1619639f52 # ROUTES=<ルータのルーティング設定({\"nexthop\":\"<ネクストホップIP # アドレス>\",\"destination\":\"<宛先CIDR>\"}の形式で指定)> ROUTES={\"nexthop\":\"192.168.0.50\",\"destination\":\"192.168.4.0/24\"},{\"nexthop\":\"192.168.0.13\",\"destination\":\"192.168.246.0/24\"} APIの実行例: ====================================================================== curl -Ss $NETWORK/v2.0/routers/$ROUTER_ID -X PUT -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"router": { "routes": ['$ROUTES'] }}' | jq . レスポンス例: ====================================================================== { "router": { "availability_zone": "jp-west-2a", "id": "51318b80-bf98-4ede-a093-db1619639f52", "routes": [ { "destination": "192.168.246.0/24", "nexthop": "192.168.0.13" }, { "destination": "192.168.4.0/24", "nexthop": "192.168.0.50" } ], "tenant_id": "<プロジェクトID>", "admin_state_up": true, "name": "TEST_Router_01", "external_gateway_info": { "enable_snat": true, "network_id": "b3ca0a26-abc5-46e8-82f2-3f27b5e7a81c" }, "status": "ACTIVE" } } ====================================================================== 項番3.ルータ1の確認 ルータ1に追加したルーティング(routes)設定を確認します。 環境定義コマンド例: ====================================================================== # ROUTER_ID=<ルータ1のID> ROUTER_ID=51318b80-bf98-4ede-a093-db1619639f52 API実行コマンド例: ====================================================================== curl -Ss $NETWORK/v2.0/routers/$ROUTER_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "router": { "availability_zone": "jp-west-2a", "id": "51318b80-bf98-4ede-a093-db1619639f52", "routes": [ { "destination": "192.168.246.0/24", "nexthop": "192.168.0.13" }, { "destination": "192.168.4.0/24", "nexthop": "192.168.0.50" } ], "tenant_id": "<プロジェクトID>", "admin_state_up": true, "name": "TEST_Router_01", "external_gateway_info": { "enable_snat": true, "network_id": "b3ca0a26-abc5-46e8-82f2-3f27b5e7a81c" }, "status": "ACTIVE" } } ====================================================================== 項番4.ルータ2のルーティング設定変更 ルータ2のルーティング(routes)設定を変更します。 注意事項: ・ルータに既存のルーティング情報がある場合、設定変更時に既存の ルーティング情報を含む、すべての情報を記載してください。 記載されていないルーティング情報は削除されます。 ・SSL-VPN接続を利用している場合は、自動設定されているSSL-VPN接続の ルーティング情報も記載してください。記載しない場合は、SSL-VPN 接続の情報が削除され、SSL-VPN接続ができなくなります。 環境定義コマンド例: ====================================================================== # ROUTER_ID=<ルータ2のID> ROUTER_ID=8ee2338f-f281-414f-b3d7-da23d329bc5f # ROUTES=<ルータのルーティング設定({\"nexthop\":\"<ネクストホップIP # アドレス>\",\"destination\":\"<宛先のCIDR>\"}の形式で指定)> ROUTES={\"nexthop\":\"192.168.0.1\",\"destination\":\"192.168.2.0/24\"},{\"nexthop\":\"192.168.0.1\",\"destination\":\"192.168.3.0/24\"},{\"nexthop\":\"192.168.0.1\",\"destination\":\"192.168.0.0/24\"} API実行コマンド例: ====================================================================== curl -Ss $NETWORK/v2.0/routers/$ROUTER_ID -X PUT -H "X-Auth-Token: $OS_AUTH_TOKEN" -H "Content-Type: application/json" -d '{"router": { "routes": ['$ROUTES'] }}' | jq . レスポンス例: ====================================================================== { "router": { "availability_zone": "jp-west-2a", "id": "8ee2338f-f281-414f-b3d7-da23d329bc5f", "routes": [ { "destination": "192.168.0.0/24", "nexthop": "192.168.0.1" }, { "destination": "192.168.2.0/24", "nexthop": "192.168.0.1" }, { "destination": "192.168.3.0/24", "nexthop": "192.168.0.1" } ], "tenant_id": "<プロジェクトID>", "admin_state_up": true, "name": "TEST_Router_02", "external_gateway_info": null, "status": "ACTIVE" } } ====================================================================== 項番5.ルータ2の確認 ルータ2に追加したルーティング(routes)設定を確認します。 環境定義コマンド例: ====================================================================== # ROUTER_ID=<ルータ2のID> ROUTER_ID=8ee2338f-f281-414f-b3d7-da23d329bc5f API実行コマンド例: ====================================================================== curl -Ss $NETWORK/v2.0/routers/$ROUTER_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "routers": [ { "availability_zone": "jp-west-2a", "id": "8ee2338f-f281-414f-b3d7-da23d329bc5f", "routes": [ { "destination": "192.168.0.0/24", "nexthop": "192.168.0.1" }, { "destination": "192.168.2.0/24", "nexthop": "192.168.0.1" }, { "destination": "192.168.3.0/24", "nexthop": "192.168.0.1" } ], "tenant_id": "<プロジェクトID>", "admin_state_up": true, "name": "TEST_Router_02", "external_gateway_info": null, "status": "ACTIVE" } ] } ====================================================================== 項番6.疎通確認 ルーティング設定の確認のため、仮想サーバにログインして疎通確認を行い ます。 注意事項: 疎通確認を行う場合、事前にセキュリティグループルールとファイアー ウォールルールにICMP、SSH(22ポート)等が設定されている必要が あります。(設定方法はAPIユーザーズガイドを参照してください。) 項番6-1.仮想サーバ2から仮想サーバ4への疎通確認 仮想サーバ2(192.168.2.12)にログインし、仮想サーバ4 (192.168.4.14)へ疎通確認を行います。 コマンド実行例: ====================================================================== # traceroute -I <仮想サーバ4のIPアドレス> traceroute -I 192.168.4.14 レスポンス例: ====================================================================== traceroute to 192.168.4.14 (192.168.4.14, 30 hops max, 60 byte packets 1 192.168.2.1 (192.168.2.1) 1.546 ms 1.546 ms 1.565 ms 2 192.168.0.50 (192.168.0.50) 2.943 ms 2.971 ms 2.897 ms 3 192.168.4.14 (192.168.4.14) 4.274 ms 4.274 ms 4.266 ms ====================================================================== 項番6-2.仮想サーバ4から仮想サーバ2への疎通確認 仮想サーバ4(192.168.4.14)にログインし、仮想サーバ2 (192.168.2.12)へ疎通確認を行います。 コマンド実行例: ====================================================================== # traceroute -I <仮想サーバ2のIPアドレス> traceroute -I 192.168.2.12 レスポンス例: ====================================================================== traceroute to 192.168.2.12 (192.168.2.12), 30 hops max, 60 byte packets 1 192.168.4.1 (192.168.4. 1) 1.045 ms 1.036 ms * 2 * * * 3 * * * 4 * * * 5 * * * 6 * 192.168.2.12 (192.168.2.12) 5.984 ms * ====================================================================== 項番6-3.仮想サーバ1から仮想サーバ4への疎通確認 仮想サーバ1(192.168.0.11)にログインし、仮想サーバ4 (192.168.4.14)へ疎通確認を行います。 コマンド実行例: ====================================================================== # traceroute -I <仮想サーバ4のIPアドレス> traceroute -I 192.168.4.14 レスポンス例: ====================================================================== traceroute to 192.168.4.14 (192.168.4.14), 30 hops max, 60 byte packets 1 192.168.0.1 (192.168.0.1) 1.275 ms 1.271 ms 1.284 ms 2 192.168.0.50 (192.168.0.50) 1.861 ms 1.873 ms 2.004 ms 3 192.168.4.14 (192.168.4.14) 2.003 ms 2.008 ms 2.006 ms ====================================================================== 項番6-4.仮想サーバ4から仮想サーバ1への疎通確認 仮想サーバ4(192.168.4.14)にログインし、仮想サーバ1 (192.168.0.11)へ疎通確認を行います。 コマンド実行例: ====================================================================== # traceroute -I <仮想サーバ1のIPアドレス> traceroute -I 192.168.0.11 レスポンス例: ====================================================================== traceroute to 192.168.0.11 (192.168.0.11), 30 hops max, 60 byte packets 1 192.168.4.1 (192.168.4.1) 1.135 ms 1.119 ms * 2 * * * 3 * * * 4 * * * 5 * * * 6 * 192.168.0.11 (192.168.0.11) 4.108 ms 3.856 ms ====================================================================== 項番6-5.仮想サーバ3から仮想サーバ4への疎通確認 仮想サーバ3(192.168.3.13)にログインし、仮想サーバ4 (192.168.4.14)へ疎通確認を行います。 コマンド実行例: ====================================================================== # traceroute -I <仮想サーバ4のIPアドレス> traceroute -I 192.168.4.14 レスポンス例: ====================================================================== traceroute to 192.168.4.14 (192.168.4.10), 30 hops max, 60 byte packets 1 192.168.3.1 (192.168.3.1) 1.254 ms 1.261 ms 1.238 ms 2 192.168.0.50 (192.168.0.50) 2.584 ms 2.573 ms 2.575 ms 3 192.168.4.104(192.168.4.14) 4.081 ms 4.077 ms 4.081 ms ====================================================================== 項番6-6.仮想サーバ4から仮想サーバ3への疎通確認 仮想サーバ4(192.168.4.14)にログインし、仮想サーバ3 (192.168.3.13)へ疎通確認を行います。 コマンド実行例 ====================================================================== # traceroute -I <仮想サーバ3のIPアドレス> traceroute -I 192.168.3.13 レスポンス例: ====================================================================== traceroute to 192.168.3.13 (192.168.3.13), 30 hops max, 60 byte packets 1 192.168.4.1 (192.168.4.1) 0.969 ms 0.938 ms * 2 * * * 3 * * * 4 * * * 5 * * * 6 * 192.168.3.13 (192.168.3.13) 22.805 ms * ====================================================================== 変更履歴: ───────────────────────────────── v1.1版: ・「注意事項」:誤記修正 v1.2版: ・「項番5.ルータ2の確認」:誤記修正 ───────────────────────────────── 以上