7.4. 外部ネットワークの作成

OpenStack Networking は、レイヤー 3 (L3) エージェントを外部ネットワークに接続する 2 つのメカニズムを提供します。第 1 の方法は、外部ブリッジ (br-ex) への直接接続で、Open vSwitch プラグインが使用されている場合 (または機能的には ML2 で実装されている場合) にのみサポートされます。ML2 プラグインがサポートする第 2 の方法は、外部プロバイダーネットワークを使用した接続で、Open vSwitch プラグインと Linux Bridge プラグインの両方でサポートされています。
以下の手順に記載するステップはすべて、OpenStack Networking コマンドラインインターフェース (python-neutronclient パッケージにより提供) がインストールされたサーバーで実行する必要があります。Identity サービスの管理者ユーザーの認証情報が格納されている keystonerc_admin ファイルへのアクセスも必要です。
以下の手順に記載するステップで生成される一意識別子をメモしておきます。これらの識別子は、L3 エージェントの設定時に必要となります。

手順7.13 外部ネットワークの作成と設定

  1. Keystone に管理ユーザーとしてアクセスするためのシェルを設定します。
    # source ~/keystonerc_admin
  2. 新規プロバイダーネットワークを作成します。
    [(keystone_admin)]# neutron net-create EXTERNAL_NAME \
       --router:external \
       --provider:network_type TYPE \
       --provider:physical_network PHYSNET \
       --provider:segmentation_id VLAN_TAG
    以下の値を置き換えてください。
    • EXTERNAL_NAME は、新規の外部ネットワークプロバイダーの名前に置き換えます。
    • TYPE は、使用するプロバイダーネットワークの種別に置き換えます。サポートされている値は flat (フラットネットワーク用)、vlan (VLAN ネットワーク用)、local (ローカルネットワーク用) です。
    • PHYSNET は、物理ネットワークの名前に置き換えます。これは、ローカルネットワークを使用する場合には適用されません。PHYSNET は、/etc/neutron/plugin.ini ファイルの bridge_mappings の下で定義されている値と一致する必要があります。
    • VLAN_TAG は、ネットワークトラフィックを識別するために使用する VLAN タグを指定します。指定の VLAN タグは、ネットワーク管理者により定義する必要があります。network_typevlan 以外の値に設定されている場合は、パラメーターは必要ありません。
    次のステップで必要となるため、返された外部ネットワークの一意識別子をメモしておきます。
  3. 外部プロバイダーネットワークの新しいサブネットを作成します。
    [(keystone_admin)]# neutron subnet-create --gateway GATEWAY \
       --allocation-pool start=IP_RANGE_START,end=IP_RANGE_END \
       --disable-dhcp EXTERNAL_NAME EXTERNAL_CIDR
    以下の値を置き換えてください。
    • GATEWAY は、新しいサブネットのゲートウェイとして機能するシステムの IP アドレスまたはホスト名に置き換えます。このアドレスは、EXTERNAL_CIDR が指定する IP アドレスのブロック内にあり、開始値 IP_RANGE_START、終了値 IP_RANGE_END で指定した IP アドレスブロックの範囲外でなければなりません
    • IP_RANGE_START は、Floating IP アドレスが確保される新規サブネット内の IP アドレス範囲の開始値を指定します。
    • IP_RANGE_END は、Floating IP アドレスが確保される新しいサブネット内の IP アドレス範囲の終了値に置き換えます。
    • EXTERNAL_NAME は、サブネットが関連付ける外部ネットワークの名前に置き換えます。これは、上記の手順の net-create アクションで指定した名前と一致する必要があります。
    • EXTERNAL_CIDR は、192.168.100.0/24 などの、サブネットが表現する IP アドレスブロックの CIDR (Classless Inter-Domain Routing) 表記に置き換えます。開始値 IP_RANGE_START と終了値 IP_RANGE_END の範囲で指定された IP アドレスのブロックは、EXTERNAL_CIDR で指定した IP アドレスのブロック内にも収まる 必要があります
    次のステップで必要となるため、返されたサブネットの一意識別子をメモしておきます。
  4. 新しいルーターを作成します。
    [(keystone_admin)]# neutron router-create NAME
    NAME は、新規ルーターの名前に置き換えます。次のステップや、L3 エージェントの設定時に必要となるため、返されたルーターの一意識別子をメモしておきます。
  5. ルーターと外部プロバイダーネットワークを関連付けます。
    [(keystone_admin)]# neutron router-gateway-set ROUTER NETWORK
    ROUTER はルーターの一意識別子に、NETWORK は外部プロバイダーネットワークの一意識別子に置き換えます。
  6. 各プライベートネットワークのサブネットにルーターを関連付けます。
    [(keystone_admin)]# neutron router-interface-add ROUTER SUBNET
    ROUTER はルーターの一意識別子に、SUBNET はプライベートネットワークサブネットの一意識別子に置き換えます。ルーターのリンク先となる、既存のプライベートネットワークサブネットごとにこのステップを実行してください。