###################################################################### # All Rights Reserved, Copyright FUJITSU LIMITED 2015-2018 # # API実行サンプル名: # 05-017_グローバルIPアドレス作成 # # 内容: # 作成したポートにグローバルIPアドレスを割り当てる手順です。 # # 版数:v1.0 # 更新日:2017/11/21 ###################################################################### 手順: ─────────────────────────────────── 項番1.ポート確認 項番2.外部ネットワーク確認 項番3.グローバルIPアドレス作成 項番3-1.グローバルIPアドレス作成 項番3-2.グローバルIPアドレス確認 ─────────────────────────────────── 事前準備: あらかじめ以下を準備する必要があります。 ─────────────────────────────────── ・ルータ ・ファイアーウォール ・セキュリティグループ ・ネットワーク ・サブネット ・ポート ─────────────────────────────────── 注意事項: ・事前に外部ネットワークと接続した環境の構築が必要になります。 ・グローバルIPアドレスを関連付ける外部ネットワークはルータにアタッチ した外部ネットワークを指定してください。 項番1.ポート確認 グローバルIPアドレスを割り当てるポートの状態を確認します。 環境定義コマンド例: ====================================================================== # PORT_ID=<グローバルIPアドレスを割り当てるポートID> PORT_ID=5095fbfc-861e-4cde-9f23-e378395d6g54 API実行コマンド例: ====================================================================== curl -Ss $NETWORK/v2.0/ports/$PORT_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "port": { "availability_zone": "jp-west-2a", "device_id": "", "security_groups": [ "beb2e81d-a67f-4d18-9270-93324f225748" ], "id": "5095fbfc-861e-4cde-9f23-e378395d6g54", "fixed_ips": [ { "ip_address": "192.168.212.11", "subnet_id": "a6d8ecf7-385c-4ccd-8528-e2c0b4892139" } ], "mac_address": "fa:16:3e:e5:f8:73", "device_owner": "", "status": "DOWN", "name": "TEST_PORT_01", "allowed_address_pairs": [], "admin_state_up": true, "network_id": "0e47de93-7142-4ff0-b7c3-5a1edfb12107", "tenant_id": "<プロジェクトID>", "extra_dhcp_opts": [], "binding:vnic_type": "normal" } } ====================================================================== 項番2.外部ネットワーク確認 グローバルIPアドレスを関連付ける外部ネットワークの状態を確認します。 注意事項: ・グローバルIPアドレスを関連付ける外部ネットワークはルータに アタッチした外部ネットワークを指定してください。 環境定義コマンド例: ====================================================================== # NETWORK_ID=<グローバルIPアドレスを関連付ける外部ネットワークID> NETWORK_ID=b3ca0a26-abc5-46e8-82f2-3f27b5e7f32m API実行コマンド例: ====================================================================== curl -Ss $NETWORK/v2.0/networks/$NETWORK_ID -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq . レスポンス例: ====================================================================== { "network": { "availability_zone": "jp-west-2a", "status": "ACTIVE", "subnets": [ "94899ab5-1489-4ee3-83b5-3429b66c9fg5", "d0f5c20f-8668-4741-b0f8-3d3b82b7sa24" ], "name": "inf_az1_ext-net03", "router:external": true, "tenant_id": "<プロジェクトID>", "admin_state_up": true, "shared": true, "id": "b3ca0a26-abc5-46e8-82f2-3f27b5e7a81c" } } ====================================================================== 項番3.グローバルIPアドレス作成 ポートにグローバルIPアドレスを割り当てし、グローバルIPアドレスが 割り当てられたことを確認します。 項番3-1.グローバルIPアドレス作成 ポートにグローバルIPアドレスを割り当てます。 環境定義コマンド例: ====================================================================== # NETWORK_ID=<グローバルIPアドレスを関連付ける外部ネットワークID> NETWORK_ID=b3ca0a26-abc5-46e8-82f2-3f27b5e7f32m # PORT_ID=<グローバルIPアドレスを割り当てるポートID> PORT_ID=5095fbfc-861e-4cde-9f23-e378395d6g54 # AZ=<アベイラビリティゾーン名> AZ=jp-west-2a API実行コマンド例: ====================================================================== curl -Ss $NETWORK/v2.0/floatingips -X POST -H "X-Auth-Token:$OS_AUTH_TOKEN" -H "Content-Type:application/json" -d '{"floatingip":{"floating_network_id":"'$NETWORK_ID'", "port_id":"'$PORT_ID'", "availability_zone": "'$AZ'"}}' | jq . レスポンス例: ====================================================================== { "floatingip": { "availability_zone": "jp-west-2a", "router_id": "f8fcc5ae-5b7b-4a71-81dd-b15117225yn8", "status": "DOWN", "tenant_id": "<プロジェクトID>", "floating_network_id": "b3ca0a26-abc5-46e8-82f2-3f27b5e7f32m", "fixed_ip_address": "192.168.212.11", "floating_ip_address": "133.162.150.8", "port_id": "5095fbfc-861e-4cde-9f23-e378395d6g54", "id": "abbf0ff5-05b6-4b65-937e-943e12e47194" } } ====================================================================== 項番3-2.グローバルIPアドレス確認 ポートにグローバルIPアドレスが割り当てられたことを確認します。 環境定義コマンド例: ====================================================================== # FLOATINGIP_ID=<作成したグローバルIPのID> FLOATINGIP_ID=abbf0ff5-05b6-4b65-937e-943e12e47194 API実行コマンド例: ====================================================================== curl -Ss $NETWORK/v2.0/floatingips/$FLOATINGIP_ID -X GET -H "X-Auth-Token:$OS_AUTH_TOKEN" -H "Content-Type:application/json" | jq . レスポンス例: ====================================================================== { "floatingip": { "availability_zone": "jp-west-2a", "router_id": "f8fcc5ae-5b7b-4a71-81dd-b15117225yn8", "status": "ACTIVE", "tenant_id": "<プロジェクトID>", "floating_network_id": "b3ca0a26-abc5-46e8-82f2-3f27b5e7f32m", "fixed_ip_address": "192.168.212.11", "floating_ip_address": "133.162.150.8", "port_id": "5095fbfc-861e-4cde-9f23-e378395d6g54", "id": "abbf0ff5-05b6-4b65-937e-943e12e47194" } } ====================================================================== 以上