ネットワークオプション 2: セルフサービスネットワーク

ネットワークオプション 2: セルフサービスネットワーク

コントローラー ノードにおいて、Networking のコンポーネントのインストールと設定を行います。

コンポーネントのインストール

Networking コンポーネントのインストールおよび設定

  1. # apt-get install neutron-server neutron-plugin-linuxbridge-agent \
      neutron-dhcp-agent neutron-metadata-agent
    

    ネットワークオプション 2 の場合、neutron-l3-agent パッケージもインストールします。

  2. Respond to prompts for database management, Identity service credentials, service endpoint registration, and message queue credentials.

  3. ML2 プラグインを選択します。

    _images/neutron_1_plugin_selection.png

    注釈

    ML2 プラグインを選択すると、/etc/neutron/neutron.conf ファイルのオプション service_pluginsallow_overlapping_ips にも適切な値が入ります。

ML2 プラグインの設定

ML2 プラグインは、Linux ブリッジ機構を使用して、インスタンス用の L2 (ブリッジとスイッチ) 仮想ネットワークインフラを構築します。

  • /etc/neutron/plugins/ml2/ml2_conf.ini ファイルを編集して、以下の作業をすべて行います。

    • [ml2] セクションで、フラット、VLAN、VXLAN ネットワークを有効にします。

      [ml2]
      ...
      type_drivers = flat,vlan,vxlan
      
    • [ml2] セクションで、VXLAN プロジェクト (プライベート) ネットワークを有効にします。

      [ml2]
      ...
      tenant_network_types = vxlan
      
    • [ml2] セクションで、Linux ブリッジ機構および layer-2 population 機構を有効にします。

      [ml2]
      ...
      mechanism_drivers = linuxbridge,l2population
      

      警告

      ML2 プラグインの設定後に、type_drivers オプションから値を削除すると、データベース不整合が発生する可能性があります。

      注釈

      Linux ブリッジエージェントは、VXLAN オーバーレイネットワークのみをサポートします。

    • [ml2] セクションで、ポートセキュリティー拡張ドライバーを有効にします。

      [ml2]
      ...
      extension_drivers = port_security
      
    • [ml2_type_flat] セクションで、パブリックフラットプロバイダーネットワークを設定します。

      [ml2_type_flat]
      ...
      flat_networks = public
      
    • [ml2_type_vxlan] セクションで、プライベートネットワーク用の VXLAN ネットワーク ID 範囲を設定します。

      [ml2_type_vxlan]
      ...
      vni_ranges = 1:1000
      
    • [securitygroup] セクションで、 ipset を有効にし、セキュリティーグループルールの効率性を向上させます。

      [securitygroup]
      ...
      enable_ipset = True
      

Linux ブリッジエージェントの設定

Linux ブリッジエージェントは、プライベートネットワーク向けの VXLAN トンネルなどの、インスタンス用の L2 (ブリッジおよびスイッチ) 仮想ネットワークインフラを構築して、セキュリティーグループを処理します。

  • /etc/neutron/plugins/ml2/linuxbridge_agent.ini ファイルを編集し、以下の作業をすべて行います。

    • [linux_bridge] セクションにおいて、仮想パブリックネットワークを物理パブリックネットワークのインターフェースに対応付けます。

      [linux_bridge]
      physical_interface_mappings = public:PUBLIC_INTERFACE_NAME
      

      PUBLIC_INTERFACE_NAME を物理パブリックネットワークのインターフェース名で置き換えます。

    • [vxlan] セクションにおいて、VXLAN オーバーレイネットワークを有効にし、オーバーレイネットワークを処理する物理ネットワークインターフェースの IP アドレスを設定し、layer-2 population を有効にします。

      [vxlan]
      enable_vxlan = True
      local_ip = OVERLAY_INTERFACE_IP_ADDRESS
      l2_population = True
      

      OVERLAY_INTERFACE_IP_ADDRESS を、オーバーレイネットワークを処理するベースの物理ネットワークインターフェースの IP アドレスで置き換えます。サンプルアーキテクチャーでは、他のノードへのトラフィックをトンネリングするのに管理インターフェースを使用します。したがって、 OVERLAY_INTERFACE_IP_ADDRESS を各ノードの管理用の IP アドレスで置き換えます。

    • [agent] セクションにおいて、ARP スプーフィングの保護を有効にします。

      [agent]
      ...
      prevent_arp_spoofing = True
      
    • [securitygroup] セクションで、セキュリティグループを有効にし、 Linux ブリッジ iptables ファイアウォールドライバーを設定します。

      [securitygroup]
      ...
      enable_security_group = True
      firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
      

L3 エージェントの設定

L3 エージェント は、仮想ネットワーク用のルーティングおよび NAT サービスを提供します。

  • /etc/neutron/l3_agent.ini ファイルを編集して、以下の作業をすべて行います。

    • [DEFAULT] セクションで、Linux ブリッジインターフェースドライバー、外部ネットワークブリッジを設定します。

      [DEFAULT]
      ...
      interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
      external_network_bridge =
      

      注釈

      external_network_bridge オプションは、1 つのエージェントに複数の外部ネットワークを有効にすることができません。これは意図的なものです。

    • (オプション) トラブルシューティングしやすくするために、冗長ロギングを [DEFAULT] セクションで有効にします。

      [DEFAULT]
      ...
      verbose = True
      

DHCP エージェントの設定

DHCP エージェント は、仮想ネットワーク向けに DHCP サービスを提供します。

  • /etc/neutron/dhcp_agent.ini ファイルを編集して、以下の作業をすべて行います。

    • [DEFAULT] セクションにおいて、Linux ブリッジインターフェースドライバー、Dnsmasq DHCP ドライバーを設定して、 isolated metadata を有効にします。これにより、パブリックネットワークにあるインスタンスがネットワーク経由でメタデータにアクセスできます。

      [DEFAULT]
      ...
      interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver
      dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
      enable_isolated_metadata = True
      
    • (オプション) トラブルシューティングしやすくするために、冗長ロギングを [DEFAULT] セクションで有効にします。

      [DEFAULT]
      ...
      verbose = True
      

    VXLAN などのオーバーレイネットワークは追加のパケットヘッダーが必要で、このため、オーバーヘッドが増え、ペイロードやユーザーデータで利用可能な空間が減ります。仮想ネットワーク基盤に関する情報がないと、インスタンスが、デフォルトの Ethernet 最大転送単位 (MTU) 1500 バイトを使用して、パケットを送信しようとします。インターネットプロトコル (IP) には path MTU discovery (PMTUD) 機構があり、通信エンド間の MTU を検知して、パケットサイズを適切に調整します。しかしながら、オペレーティングシステムやネットワークによっては、パフォーマンス劣化や接続エラーを引き起こす PMTUD がブロックされていたり、対応していなかったりします。

    理想的には、プロジェクトの仮想ネットワークを含む物理ネットワークにおいて、ジャンボフレーム を有効にすることで、これらの問題を防げます。ジャンボフレームは最大で約 9000 バイトの MTU をサポートしています。 9000 バイトくらいになると、仮想ネットワークにおける VXLAN オーバーヘッドの影響がなくなります。しかしながら、ジャンボフレームをサポートしていないネットワークデバイスは多数あり、また、OpenStack の管理者がネットワーク基盤の管理権限を持っていないこともよくあります。後者の場合、VXLAN オーバーヘッドを考慮して、インスタンスの MTU を減らすことにより、MTU の問題を防ぐこともできます。適切な MTU 値を判断するには、しばしば実験を必要としますが、ほとんどの環境で 1450 バイトでうまく動くでしょう。IP アドレスを割り当てる DHCP サーバーを設定して、インスタンスに MTU を調整させることもできます。

    注釈

    クラウドイメージによっては DHCP MTU オプションは無視されます。この場合には、メタデータ、スクリプトや他の適切な方法を使って、MTU を設定する必要があります。

    • [DEFAULT] セクションで、dnsmasq 設定ファイルを有効にします。

      [DEFAULT]
      ...
      dnsmasq_config_file = /etc/neutron/dnsmasq-neutron.conf
      
    • /etc/neutron/dnsmasq-neutron.conf ファイルを作成、編集して、DHCP MTU オプション (26) を有効にし、値を 1450 バイトに設定します。

      dhcp-option-force=26,1450
      

Networking コントローラーノードの設定 に戻ります。

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.