2021-10-15 02:52 PM
ACIとOpenStackの連携については、IceHouseから対応しているNeutronのML2 (Moduler Layer2) プラグインに対するAPIC Driverによる連携と、Junoから対応しているGroup-Based Policyに対するAPIC Group Driverによる連携の2種類があります。
APIC driverは、ML2に対するメカニズムドライバとして組み込まれます。
本ドキュメントでは、Ubuntu 14.04をベースとしたOpenStack環境に対するAPIC Driverを使った連携の構成方法について記載します。RHEL7およびRH OSP5をベースとした構成方法については、後日アップデートしていく予定です。
Ubuntu 14.04に対するOpenStack環境の構成手順については、OpenStack.org のページを参照してください。
本ドキュメントでは、NeutronおよびOVSドライバを含むML2プラグインが構成済の環境を前提としています。
また、python-pip を事前に導入しておいてください。
コントローラノード
まず、APIC APIをインストールします。
sudo pip install apicapi
IceHouseを使用している場合は、APICドライバもインストールしてください。Juno以降の場合は、標準でAPICドライバは含まれています。
pip install apic-icehouse
APICサービスを使用するための構成を行います。
cat > /etc/init/neutron-driver-apic-svc.conf <<EOF # vim:set ft=upstart ts=2 et: description "Neutron APIC Service Agent" author "Mandeep Dhami <dhami@noironetworks.com>" start on runlevel [2345] stop on runlevel [!2345] respawn chdir /var/run pre-start script mkdir -p /var/run/neutron chown neutron:root /var/run/neutron end script exec start-stop-daemon --start --chuid neutron \ --exec /usr/local/bin/neutron-cisco-apic-service-agent -- \ --config-file=/etc/neutron/neutron.conf \ --config-file=/etc/neutron/plugins/ml2/ml2_conf_cisco.ini \ --log-file=/var/log/neutron/cisco-apic-service-agent.log EOF
あわせて、Neutron Serverの構成も行います。
cat > /etc/init/neutron-server.conf << EOF # vim:set ft=upstart ts=2 et: description "Neutron API Server" author "Chuck Short <zulcss@ubuntu.com>" start on runlevel [2345] stop on runlevel [!2345] respawn chdir /var/run pre-start script mkdir -p /var/run/neutron chown neutron:root /var/run/neutron end script script [ -r /etc/default/neutron-server ] && . /etc/default/neutron-server [ -r "$NEUTRON_PLUGIN_CONFIG" ] && CONF_ARG="--config-file $NEUTRON_PLUGIN_CONFIG" exec start-stop-daemon --start --chuid neutron --exec /usr/bin/neutron-server -- \ --config-file /etc/neutron/neutron.conf \ --config-file /etc/neutron/plugins/ml2/ml2_conf.ini \ --config-file /etc/neutron/plugins/ml2/ml2_conf_cisco.ini \ --log-file /var/log/neutron/server.log $CONF_ARG end script EOF
ネットワークノードおよびコンピュートノード
LLDPDをインストールします。
apt-get install lldpd
APICエージェントの構成を行います。
cat > /etc/init/neutron-driver-apic-agent.conf <<EOF # vim:set ft=upstart ts=2 et: description "Neutron APIC Host Agent" author "Mandeep Dhami <dhami@noironetworks.com>" start on runlevel [2345] stop on runlevel [!2345] respawn chdir /var/run pre-start script mkdir -p /var/run/neutron chown neutron:root /var/run/neutron end script exec start-stop-daemon --start --chuid neutron \ --exec /usr/local/bin/neutron-cisco-apic-host-agent -- \ --config-file=/etc/neutron/neutron.conf \ --config-file=/etc/neutron/plugins/ml2/ml2_conf_cisco.ini \ --log-file=/var/log/neutron/cisco-apic-host-agent.log EOF
全ノード共通(コントローラ、ネットワーク、コンピュート)
neutron.conf ファイルの構成
※IceHouseの場合
service_plugins = apic_ml2.neutron.services.l3_router.l3_apic.ApicL3ServicePlugin core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin
※Junoの場合
service_plugins = neutron.services.l3_router.l3_apic.ApicL3ServicePlugin core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin
上記のほかに、[keystone_authtoken]セクションに以下のidentity_uriとは別に構成情報を構成する必要があります。
[keystone_authtoken] ... auth_uri = http://controller:5000/v2.0 identity_uri = http://controller:35357 auth_protocol=http auth_host= controller auth_port= 35357 admin_tenant_name = admin admin_user = admin admin_password = ADMIN_PASS
ml2_conf.ini ファイルの構成
cat >/etc/neutron/plugins/ml2/ml2_conf.ini << EOF [ml2] type_drivers = local,flat,vlan,gre,vxlan tenant_network_types = vlan mechanism_drivers = openvswitch,cisco_apic [ml2_type_vlan] network_vlan_ranges = physnet1:100:200 [securitygroup] enable_security_group = True firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver [ovs] integration_bridge = br-int bridge_mappings = physnet1:br-eth enable_tunneling = False [agent] polling_interval = 2 l2_population = False arp_responder=False EOF
ネットワークノードおよびコンピュートノード
ml2_conf_cisco.ini ファイルの構成
項目 | セクション | 必須 | 概要 |
apic_hosts | ml2_cisco_apic | はい | コンマで区切ることによって、複数台のAPICのIPアドレスを指定することができます。 |
apic_username | ml2_cisco_apic | はい | APICに対する接続アカウントを指定します。複数テナントに対して管理権限を持つアカウントを指定してください。 |
apic_password | ml2_cisco_apic | はい | apic_usernameで指定したアカウントに対応するパスワードを指定します。 |
apic_model | ml2_cisco_apic | はい | Red Hatを使用している場合、および apic_icehouse パッケージを使用する場合には、必ずapic_ml2.neutron.plugins.ml2.drivers.cisco.apic.apic_modelと定義する必要があります。
それ以外の場合は、省略してもかまいません。 |
root_helper | ml2_cisco_apic | はい | Red Hatを使用している場合は、必ず sudo と定義する必要があります。 それ以外の場合は、省略してもかまいません。 |
apic_system_id | DEFAULT | いいえ | APIC側のFabricにおいて物理ドメイン名として使用される名前を定義します。この名前は、複数のOpenStackインスタンスがACIの同一Fabricにおいて連携している際に識別のために使用されます。 |
apic_provision_infra | ml2_cisco_apic | いいえ | インフラ構成を手動で行いたい場合は False を指定してください。 デフォルトは True となります。 |
enable_aci_routing | ml2_cisco_apic | いいえ | OpenStackが routing のために ACIを使用するかどうかを指定します(True / False)。 デフォルトは True となります。 |
enable_arp_flooding | ml2_cisco_apic | いいえ | NeutronネットワークにおいてARP floodingを使用するかどうかを指定します(True / False)。 デフォルトは False となります。 |
apic_vpc_pairs | ml2_cisco_apic | いいえ | VPCペアとなっている Switch ID をコンマ区切りで指定します。 |
<see below> | apic_switch:<ID> | いいえ | ホストがスイッチにたいして接続している接続ポイントを手動で構成する際に指定します。 |
switch | [apic_external_network:network_name] | はい※ | 外部ルータが接続されている Switch ID を指定します。 |
port | [apic_external_network:network_name] | はい※ | 外部ルータが接続されている Switch Port を指定します。 |
encap | [apic_external_network:network_name] | いいえ | 外部ルータに対して使用するEncapを指定します。 |
cidr_exposed | [apic_external_network:network_name] | はい※ | 外部ルータに通知するCIDR情報を指定します。 |
gateway_ip | [apic_external_network:network_name] | はい※ | 外部ゲートウェイのIPアドレスを指定します。 |
※外部ネットワークに関する構成を使用しない場合は、省略してかまいません。
コンピューティングノードおよびネットワークノードの指定について
デフォルトでは、APICドライバはLLDPの情報に基づいてホストの接続先Leafスイッチおよびポートに関する情報を自動的に検出します。ただし、この構成については、手動で定義することも可能です。手動での定義については、トラブルシューティングもしくはホストをvPC構成で接続している場合などに使用してください。ホスト名については、hostnameコマンドの出力値と同じである必要があります。Red Hatの場合は、ドメイン完全修飾名が標準となります。
[apic_switch:nodeid] hostname1,hostname2=moduleid/portid
[apic_switch:nodeid] hostname1,hostname2=vpc-moduleid-portid/auto
[apic_switch:nodeid] hostname1,hostname2=vpc-moduleid-portid/vpc-bundleid
外部ネットワークの構成
OpenStackを通じて外部ネットワークを構成する場合は、APICにおける External Routed Network 構成に対して構成が行われます。この設定は、構成ファイルにおける[apic_external_network:network_name]の設定に基づいて動作します。
※ network_name パラメータは、OpenStack環境において実際に使用されている名前に置き換える必要があります
APICにおいて外部ネットワークを使用するためには、BGP Route Reflector (RR) が事前に構成されている必要があります。APIC GUIでは、BGP RRは以下の項目にて構成することができます。
Fabric > Fabric Policies > Pod Policies > Policies > BGP Route Reflector default
default ポリシーにおいては、AS番号の指定および1つ以上のRRノードの指定が必要となります。
全てのSpineノードをRRとして構成する場合には、以下のapicapiを使用すると簡易に構成することが可能です。
apic-route-reflector apic_ip apic_username apic_password [--ssl {True|False}] [--asn autonomous_system_number]
上記設定に加えて、外部ネットワークを使用するためには以下の構成が必要となります。以下の参考例では、10.0.0.0/16サブネットのネットワークを構成した場合を例示しています。
[apic_external_network:ext] switch=203 port=1/34 cidr_exposed=192.168.0.2/24 gateway_ip=192.168.0.1
ip route add 10.100.0.0/16 dev eth1
1. OpenStackを通じて外部ネットワークを構成する
neutron net-create ext --shared --router:external=True
※ --shared はオプションです
※ 作成する外部ネットワーク名はかならず構成ファイルにおける apic_external_network の設定値と同じである必要があります
2. 構成したネットワークにサブネットを構成する
neutron subnet-create ext --name extsub 192.168.0.0/24
※ ゲートウェイとなるIPアドレスを含むサブネットを指定してください
3. テナントのためのネットワークを構成する
neutron net-create net1 Neutron subnet-create net1 –name net1sub 10.100.0.0/24
4. Neutron Routerとゲートウェイを構成する
neutron router-create myrouter neutron router-gateway-set myrouter <ext-ID> neturon router-interface-add myrouter <net1-ID>
※ net1-ID となる点に注意してください
ネットワークノードおよびコンピュートノード
Open vSwitch を構成します。以下では、ens33 インターフェイスがすでに構成されている br-eth に対して紐づけられ、ens33 インターフェイスを通じてACIファブリックに接続される構成例を示します。
ovs-vsctl add-port br-eth ens33
※ ml2構成ファイルにおいて physnet1 パラメータを変更する場合は ml2_type_vlan と ovs の両方で同じ名前を指定してください
以下は、ml2_conf_cisco.ini ファイルの構成例となります。各環境に合わせて構成ファイルを作成してください。
※構成ファイルの構成例
[DEFAULT] apic_system_id=openstack [ml2_cisco_apic] apic_hosts=10.10.0.123 apic_username=admin apic_password=password apic_name_mapping=use_name apic_vpc_pairs=201:202,203:204 root_helper='sudo' [apic_external_network:ext] switch=203 port=1/34 cidr_exposed=192.168.0.2/24 gateway_ip=192.168.0.1 #note: optional and needed only for manual configuration [apic_switch:201] compute11,compute21=1/10 compute12=1/11 [apic_switch:202] compute11,compute21=1/20 compute12=1/21
検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう
シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします
下記より関連するコンテンツにアクセスできます