仮想ルータの情報変更(外部ネットワークにアタッチ)

既存の仮想ルータに対し、設定情報を更新することによって仮想ルータを外部ネットワークに接続する手順を解説します。



  1. 以下で必要な設定を行います。
    $ ROUTER_ID=<対象の仮想ルータID>
    $ EXT_NET_ID=<接続する外部ネットワークID>

    外部ネットワークIDはネットワーク作成の手順3で実行しているAPIで確認ができます。

    $ curl -Ss $NETWORK/v2.0/networks -X GET -H "X-Auth-Token: $OS_AUTH_TOKEN" | jq .

    ネットワーク名が、"inf_az1_ext_net01"および"inf_az2_ext_net01"と表記されているものはデ フォルトで存在する外部ネットワークです。

  2. 次の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": {"external_gateway_info":
     { "network_id":  "'$EXT_NET_ID'"}}}' | jq .

    以下のレスポンスが返ってきます。

    {
      "router": {
        "status": "ACTIVE",
        "external_gateway_info": {
          "network_id": "<指定した外部ネットワークID>",
          "enable_snat": true
        },
        "name": "指定した仮想ルータ名",
        "admin_state_up": true,
        "tenant_id": "プロジェクトID",
        "routes": [],
        "id": "指定した仮想ルータのID",
        "availability_zone": "<アベイラビリティゾーン>"
      }
    }

    アベイラビリティゾーンは、AZ1がjp-east-1a、AZ2がjp-east-1bで表現されます。