この製品のマニュアルセットは、偏向のない言語を使用するように配慮されています。このマニュアルセットでの偏向のない言語とは、年齢、障害、性別、人種的アイデンティティ、民族的アイデンティティ、性的指向、社会経済的地位、およびインターセクショナリティに基づく差別を意味しない言語として定義されています。製品ソフトウェアのユーザーインターフェイスにハードコードされている言語、RFP のドキュメントに基づいて使用されている言語、または参照されているサードパーティ製品で使用されている言語によりドキュメントに例外が存在する場合があります。シスコのインクルーシブランゲージに対する取り組みの詳細は、こちらをご覧ください。
このドキュメントは、米国シスコ発行ドキュメントの参考和訳です。リンク情報につきましては、日本語版掲載時点で、英語版にアップデートがあり、リンク先のページが移動/変更されている場合がありますことをご了承ください。あくまでも参考和訳となりますので、正式な内容については米国サイトのドキュメントを参照ください。
この章の内容は、次のとおりです。
開始するには、次の前提条件を満たしている必要があります。
Red Hat Linux、OpenStack、および Application Policy Infrastructure Controller(APIC)の十分な知識がある。
Cisco Application Centric Infrastructure(ACI)ファブリックが機能している。
サーバまたは仮想マシンで Red Hat または Centos バージョンを実行している(リポジトリ「サーバ」)。
コントローラまたはネットワーク ノード、およびコンピューティング ノードが ACI リーフ スイッチに接続されている(ネットワーク ノードとコントローラが同じノード上にある場合、本マニュアルで使われる「ネットワーク ノード」はコントローラを指します)。
OpenStack の RPM ディストリビューション(RDO)または Red Hat 7 以降の Red Hat OpenStack(RHOS)6(Juno)で EPEL がイネーブルになっており、可能であればデモ ネットワークがプロビジョニングされていない(EPEL をイネーブルにしてデモ ネットワークをディセーブルにするには、応答ファイルに次の行を追加します)。
CONFIG_USE_EPEL=y CONFIG_PROVISION_DEMO=n
OpenStack にネットワーク/ルータおよび仮想マシンが作成されていない(OpenStack にある既存のネットワーク/ルータおよび仮想マシンは削除してください)。
次のワークフローを使用して、OpenStack Neutron Modular Layer 2(ML2)用 Cisco ACI プラグインをインストールします。
設置場所を準備します。
設置場所の準備を参照してください。
サーバを準備します。
サーバの準備を参照してください。
OpenStack 修正をインストールします。
OpenStack 修正のインストールを参照してください。
OpFlex エージェントと Application Policy Infrastructure Controller(APIC)OVS エージェントをインストールします。
OpFlex エージェントおよび APIC OVS エージェントのインストールを参照してください。
OpFlex を設定します。
OpFlex の設定を参照してください。
ホスト エージェントとサービス エージェントを起動します。
ホスト エージェントおよびサービス エージェントの起動を参照してください。
次の手順を実行して、コンピューティング ノードをすべて設定します。
外部接続を設定します。
外部接続の設定を参照してください。
YUM リポジトリを作成して、Red Hat OpenStack プラットフォームをインストールする場所を準備する必要があります。
ネットワーク ノードとしても機能するコントローラを含む、すべてのサーバについて次の手順を実行します。この手順の設定例では、次の内容を前提とします。
OpenStack コントローラまたはネットワーク ノードに、追加の OpenStack 修正パッケージをインストールする必要があります。パッケージには EPEL リポジトリが必要です。EPEL が有効な状態で OpenStack をインストールしなかった場合は、EPEL を手動で有効にする必要があります。
ステップ 1 |
次のパッケージをインストールします。
# yum install python-pip # yum install python-pbr # yum install neutron-opflex-agent apicapi neutron-ml2-driver-apic |
||
ステップ 2 |
oslo-concurrency との依存関係の欠落に関するエラーが表示された場合は、/etc/yum.repos.d/epel-testing.repo ファイルを修正して [epel-testing] セクションに「enabled=1」を設定することで、epel-testing リポジトリを有効にしてください。[epel-testing] name=Extra Packages for Enterprise Linux 7 - Testing - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/testing/7/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=testing-epel7&arch=$basearch failovermethod=priority enabled=1 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-7
|
||
ステップ 3 |
/etc/neutron/neutron.conf ファイルを編集して service_plugins パラメータを更新します。service_plugins = cisco_apic_l3,lbaas,metering |
||
ステップ 4 |
/etc/neutron/plugins/ml2/ml2_conf.ini ファイルを編集して、mechanism_drivers、type_drivers、および tenant_network_type パラメータを更新します。mechanism_drivers = cisco_apic_ml2 type_drivers = opflex,local,flat,vlan,gre,vxlan tenant_network_types = opflex |
||
ステップ 5 |
/etc/neutron/dhcp_agent.ini ファイルを編集して dhcp_driver パラメータを更新します。dhcp_driver = apic_ml2.neutron.agent.linux.apic_dhcp.ApicDnsmasq |
||
ステップ 6 |
DHCP エージェントを再起動します。
# systemctl restart neutron-dhcp-agent.service |
||
ステップ 7 |
/etc/neutron/plugins/ml2/ml2_conf_cisco.ini ファイルを編集して次のパラメータを設定します。[DEFAULT] apic_system_id = <any string> [opflex] networks = '*' [ml2_cisco_apic] apic_hosts = comma-separated IP address list of APIC controllers 10.1.2.1 or 10.1.2.1,10.1.2.2,10.1.2.3 apic_username = Username for APIC controller apic_password = Password for 'apic_username' apic_domain_name = <string> use_vmm = True apic_use_ssl = True apic_clear_node_profiles = True enable_aci_routing = True enable_arp_flooding = True apic_name_mapping = use_name (If there are multiple OpenStack instances per fabric, use use_uuid) apic_entity_profile = <any string> apic_vmm_domain = <any string> apic_app_profile_name = <any string> apic_function_profile = <any string> apic_sync_interval = 0 apic_agent_report_interval = 30 apic_agent_poll_interval = 2 apic_provision_infra = True apic_provision_hostlinks = True (Set to False if the interface profiles, switch profiles, policy groups are pre-existing on the APIC) apic_vpc_pairs = leave blank if not VPC, otherwise 101:102,103:104 (101,102,103 and 104 are switch ids as registered in APIC and pc pair between switch ids 101 and 102, 103 and 104) [group_policy] policy_drivers = implicit_policy,apic [group_policy_implicit_policy] default_ip_pool = 192.168.0.0/16 |
||
ステップ 8 |
コンピューティング ノードが接続されたスイッチごとに、[apic_switch:<switch id>] という名前のセクションを作成し、このセクションにコンピューティング ノードおよび対応するスイッチ インターフェイスをリストします。 VPC を使用していない場合は、次の形式を使用してください。 <compute_fqdn>=<switch port> 例: [apic_switch:201] fab102-compute-1.noironetworks.com=1/5 fab102-compute-2.noironetworks.com=1/6 VPC を使用している場合は、次の形式を使用してください。 <compute_fqdn>=vpc-<mod>-<port>/<vpc_policy_group_name> 次の例は、以下のように設定されます。
/etc/neutron/plugins/ml2/ml2_conf_cisco.ini ファイルのエントリは次のとおりです。 [apic_switch:101] compute-1.noiro.lab=vpc-1-17/bundle-101-1-17-and-102-1-17 [apic_switch:102] compute-1.noiro.lab=vpc-1-17/bundle-101-1-17-and-102-1-17 [apic_switch:103] compute-2.noiro.lab=vpc-1-18/bundle-101-1-18-and-102-1-18 [apic_switch:104] compute-2.noiro.lab=vpc-1-18/bundle-101-1-18-and-102-1-18 |
||
ステップ 9 |
/usr/lib/systemd/system/neutron-server.service ファイルを編集して ExecStart 行に「--config-file /etc/neutron/plugins/ml2/ml2_conf_cisco_apic.ini」を追加することで、/etc/neutron/plugins/ml2/ml2_conf_cisco.ini ファイルを読み込む neutron-server プロセスを設定します。追加された行は次のようになります
ExecStart=/usr/bin/neutron-server --config-file /usr/share/neutron/neutron-dist.conf --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugin.ini --config-file /etc/neutron/plugins/ml2/ml2_conf_cisco.ini --log-file /var/log/neutron/server.log |
||
ステップ 10 |
サービス コンフィギュレーションをリロードします。
# systemctl daemon-reload |
||
ステップ 11 |
ネットワーク ノード(ネットワーク コントローラがない場合はコントローラ ノード)で neutron-server サービスを再起動します。
# service neutron-server restart |
ネットワーク ノード、またはコントローラ ノード(ネットワーク コントローラがない場合)で、OpFlex エージェントと Application Policy Infrastructure Controller(APIC)OVS エージェントをインストールします。
ステップ 1 |
OpFlex エージェントと APIC OVS エージェントをインストールします。
# yum install neutron-opflex-agent # yum install agent-ovs |
ステップ 2 |
/etc/neutron/plugins/openvswitch/ovs_neutron_plugin.ini ファイルを編集して次の行を追加します。[ovs] enable_tunneling = False integration_bridge = br-int local_ip = <ip address of openstack controller> |
ネットワーク ノード、またはコントローラ ノード(ネットワーク コントローラがない場合)で、OpFlex エージェントをインストールした後に設定を行う必要があります。
ステップ 1 |
デフォルトの Open vSwitch エージェントをディセーブルにします。
# systemctl disable neutron-openvswitch-agent # service neutron-openvswitch-agent stop |
ステップ 2 |
シスコの修正 Open vSwitch パッケージをインストールします。
# yum install openvswitch-gbp |
ステップ 3 | インストールした Open vSwitch パッケージが、前に存在したカーネル バージョンと異なる場合は、サーバをリブートします。 |
ステップ 4 |
Open vSwitch モジュールをリロードします。
# rmmod openvswitch # modprobe openvswitch |
ステップ 5 |
OpFlex エージェントのコンフィギュレーション ファイルを設定します。OpFlex エージェントは、/etc/opflex-agent-ovs/opflex-agent-ovs.conf ファイルから設定を読み取ります。設定は JSON 形式です。次のサンプル ファイルで、<apic_system_id> を以前の ini ファイルの設定値に変更し、<hostname of the system> を適切なホスト名に変更します。インフラ VLAN と VLAN インターフェイスおよびブリッジの名前が正しいことを確認します。
{ "log": { "level": "debug2" }, "opflex": { "domain": "comp/prov-OpenStack/ctrlr-[<apic_system_id>]-<apic_system_id>/sw-InsiemeLSOid", "name": "<hostname of this system>", "peers": [ {"hostname": "10.0.0.30", "port": "8009"} ], "ssl": { "mode": "enabled", "ca-store": "/etc/ssl/certs/" } }, "endpoint-sources": { "filesystem": ["/var/lib/opflex-agent-ovs/endpoints"] }, "renderers": { "stitched-mode": { "ovs-bridge-name": "br-int", "encap": { "vxlan" : { "encap-iface": "br-int_vxlan0", "uplink-iface": "eth1.4093", "uplink-vlan": 4093, "remote-ip": "10.0.0.32", "remote-port": 8472 } }, "forwarding": { "virtual-router": { "enabled": true, "mac": "00:22:bd:f8:19:ff", "ipv6": { "router-advertisement": "false" } }, "virtual-dhcp": { "enabled": "true", "mac": "00:22:bd:f8:19:ff" } }, "flowid-cache-dir": "/var/lib/opflex-agent-ovs/ids" } } } |
ステップ 6 |
ディレクトリ オーナーを neutron に変更します。
# chown -R neutron /var/lib/opflex-agent-ovs |
ステップ 7 |
agent-ovs および OpFlex サービスをイネーブルにして、起動または再起動します。
# service agent-ovs restart # service neutron-opflex-agent restart # systemctl enable agent-ovs # systemctl enable neutron-opflex-agent |
ステップ 8 |
br-int_vxlan0 インターフェイスを作成します。
# ovs-vsctl add-port br-int br-int_vxlan0 -- set Interface br-int_vxlan0 type=vxlan options:remote_ip=flow options:key=flow options:dst_port=8472 |
ネットワーク ノードで OpFlex を設定した後、ホスト エージェントとサービス エージェントを起動する必要があります。
ステップ 1 |
ホスト エージェントおよびサービス エージェントを起動して、インフラ VLAN サブインターフェイスを起動します。
# service neutron-cisco-apic-host-agent restart # service neutron-cisco-apic-service-agent restart # systemctl enable neutron-cisco-apic-host-agent # systemctl enable neutron-cisco-apic-service-agent これらのコマンドによってリーフ ポートの適切なポート設定が起動され、インターフェイス上のインフラ VLAN が有効になります。 |
ステップ 2 |
数秒待ってエージェントの起動とサブインターフェイスの起動を確認してから、インターフェイスを起動します。
# ifup eth1.4093 |
コンピューティング ノードの設定後に、外部接続を設定する必要があります。
ステップ 1 |
ネクストホップ IP アドレスが 1.101.2.1 の場合は、Cisco Application Centric Infrastructure(ACI)L3Out ルータの IP アドレスを 1.101.2.2/30、ホストの SNAT プールを 2.101.2.1/24 に設定して、コントローラの設定にこれらの IP アドレスが含まれていることを確認します。
[apic_external_network:Datacenter-Out] router_id=1.0.0.2 switch=101 port=1/2 encap=vlan-1011 gateway_ip=1.101.2.1 cidr_exposed=1.101.2.2/30 host_pool_cidr = 2.101.2.1/24 |
ステップ 2 |
すべてのコンピューティング ノードおよびネットワーク ノードで、SNAT を必要とする外部セグメントに「opflex_external_segment」という名前の新しいセクションを作成して次の行を追加し、SNAT アドレス割り当て/ゲートウェイが設定に含まれていることを確認します。
ip_gateway = <same as host_pool_cidr on the controller> ip_address_range <start,end range from host_pool_cidr on the controller for the IP addresses to be used for SNAT from this host> 例: [opflex_external_segment:Datacenter-Out] ip_gateway = 2.101.2.1/24 ip_address_range = 2.101.2.2 |