7.6. L3 エージェントの設定

レイヤー 3 エージェントを設定します。以下の手順に記載するステップはすべて、OpenStack Networking をホストするサーバーに root ユーザーとしてログインして実行する必要があります。

手順7.16 L3 エージェントの設定

  1. L3 エージェントが認証に Identity サービスを使用するように設定します。
    1. 認証ストラテジーを keystone に設定します。
      # openstack-config --set /etc/neutron/metadata_agent.ini \
         DEFAULT auth_strategy keystone
    2. L3 エージェントが使用する必要のある Identity サービスのホストを設定します。
      # openstack-config --set /etc/neutron/metadata_agent.ini \
         keystone_authtoken auth_host IP
      IP は、Identity サービスをホストするシステムの IP アドレスまたはホスト名に置き換えます。
    3. L3 エージェントが正しいテナントとして認証を行うように設定します。
      # openstack-config --set /etc/neutron/metadata_agent.ini \
         keystone_authtoken admin_tenant_name services
      services は、OpenStack Networking を使用するために作成したテナントの名前に置き換えます。本ガイドの例では、services を使用しています。
    4. L3 エージェントが neutron の管理ユーザーアカウントを使用して認証を行うように設定します。
      # openstack-config --set /etc/neutron/metadata_agent.ini \
         keystone_authtoken admin_user neutron
    5. L3 エージェントが neutron の管理ユーザーアカウントのパスワードを使用して認証を行うように設定します。
      # openstack-config --set /etc/neutron/metadata_agent.ini \
         keystone_authtoken admin_password PASSWORD
      PASSWORD は、neutron ユーザーの作成時に設定したパスワードに置き換えます。
    6. neutron-metadata-agent サービスと nova-metadata-api サービスが同じサーバー上にインストールされていない場合は、nova-metadata-api サービスのアドレスを設定します。
      # openstack-config --set /etc/neutron/metadata_agent.ini \
         DEFAULT nova_metadata_ip IP
      IP は、nova-metadata-api サービスをホストするサーバーの IP アドレスに置き換えます。
  2. 使用する OpenStack Networking プラグインに応じて、/etc/neutron/l3_agent.ini ファイルでインターフェースドライバーを設定します。環境で使用するプラグインに適したコマンドを使用してください。
    • Open vSwitch インターフェースドライバー

      # openstack-config --set /etc/neutron/l3_agent.ini \
         DEFAULT interface_driver neutron.agent.linux.interface.OVSInterfaceDriver
    • Linux Bridge インターフェースドライバー

      # openstack-config --set /etc/neutron/l3_agent.ini \
         DEFAULT interface_driver neutron.agent.linux.interface.BridgeInterfaceDriver
  3. L3 エージェントは、外部ブリッジまたは外部プロバイダーネットワークを使用して外部ネットワークに接続します。Open vSwitch プラグインを使用する場合には、これらのいずれの方法もサポートされます。Linux Bridge プラグインを使用する場合は、外部プロバイダーネットワークの使用のみがサポートされます。環境に最も適したオプションを設定してください。
    • 外部ブリッジの使用

      外部ブリッジを作成/設定して、OpenStack Networking がこのブリッジを使用するように設定します。L3 エージェントのインスタンスをホストする各システムで以下の手順を実行してください。
      1. 外部ブリッジ br-ex を作成します。
        # ovs-vsctl add-br br-ex
      2. /etc/sysconfig/network-scripts/ifcfg-br-ex ファイルを作成して以下の行を追加し、br-ex デバイスが再起動後も永続的に存在するようにします。
        DEVICE=br-ex
        DEVICETYPE=ovs
        TYPE=OVSBridge
        ONBOOT=yes
        BOOTPROTO=none
      3. L3 エージェントが確実に外部ブリッジを使用するようにします。
        # openstack-config --set /etc/neutron/l3_agent.ini \
           DEFAULT external_network_bridge br-ex
    • プロバイダーネットワークの使用

      プロバイダーネットワークを使用して L3 エージェントを外部ネットワークに接続するには、最初にプロバイダーネットワークを作成する必要があります。また、そのネットワークに関連付けるサブネットとルーターも作成する必要があります。以下のステップを完了するには、ルーターの一意識別子が必要となります。
      external_network_bridge 設定キーの値は空欄にしてください。これの設定により、L3 エージェントはこの外部ブリッジの使用を試みません。
      # openstack-config --set /etc/neutron/l3_agent.ini \
         DEFAULT external_network_bridge ""
  4. neutron-l3-agent サービスを起動して、ブート時に起動するように設定します。
    # systemctl start neutron-l3-agent.service
    # systemctl enable neutron-l3-agent.service
  5. OpenStack Networking のメタデータエージェントにより、仮想マシンインスタンスはコンピュートメタデータサービスと通信することができます。このエージェントは、L3 エージェントと同じホストで実行されます。neutron-metadata-agent サービスを起動して、ブート時に起動するように設定します。
    # systemctl start neutron-metadata-agent.service
    # systemctl enable neutron-metadata-agent.service
  6. leastrouter スケジューラーは、L3 エージェントのルーター割り当てを列挙し、その結果として、最もルーター数が少ない L3 エージェントにルーターをスケジュールします。これは、L3 エージェントの候補プールから無作為に選択する ChanceScheduler の動作とは異なります。
    1. leastrouter スケジューラーを有効化します。
      # openstack-config --set /etc/neutron/neutron.conf \
         DEFAULT router_scheduler_driver neutron.scheduler.l3_agent_scheduler.LeastRoutersScheduler
    2. Keystone に管理ユーザーとしてアクセスするためのシェルを設定します。
      # source ~/keystonerc_admin
    3. ネットワークに接続されると、ルーターがスケジュールされます。ルーターのスケジュールを解除するには、以下のコマンドを使用します。
      [(keystone_admin)]# neutron l3-agent-router-remove L3_NODE_ID ROUTER_ID
      L3_NODE_ID はルーターが現在ホストされるエージェントの一意識別子に、ROUTER_ID はルーターの一意識別子に置き換えます。
    4. ルーターを割り当てます。
      [(keystone_admin)]# neutron l3-agent-router-add L3_NODE_ID ROUTER_ID
      L3_NODE_ID はルーターを割り当てるエージェントの一意識別子に、ROUTER_ID はルーターの一意識別子に置き換えます。