キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
cancel
644
閲覧回数
0
いいね!
0
コメント
DCNhowtoAdmin
Level 2
Level 2

ACIとOpenStackの連携については、IceHouseから対応しているNeutronのML2 (Moduler Layer2) プラグインに対するAPIC Driverによる連携と、Junoから対応しているGroup-Based Policyに対するAPIC Group Driverによる連携の2種類があります。

01.png

 

APIC driverは、ML2に対するメカニズムドライバとして組み込まれます。

02.png

本ドキュメントでは、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とは別に構成情報を構成する必要があります。

  • auth_protocol
  • auth_host
  • auth_port

 

[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_hostsml2_cisco_apicはい

コンマで区切ることによって、複数台のAPICのIPアドレスを指定することができます。

apic_usernameml2_cisco_apicはい

APICに対する接続アカウントを指定します。複数テナントに対して管理権限を持つアカウントを指定してください。

apic_passwordml2_cisco_apicはい

apic_usernameで指定したアカウントに対応するパスワードを指定します。

apic_modelml2_cisco_apicはい

Red Hatを使用している場合、および apic_icehouse パッケージを使用する場合には、必ずapic_ml2.neutron.plugins.ml2.drivers.cisco.apic.apic_modelと定義する必要があります。

 

それ以外の場合は、省略してもかまいません。

root_helperml2_cisco_apicはい

Red Hatを使用している場合は、必ず sudo と定義する必要があります。

それ以外の場合は、省略してもかまいません。

apic_system_idDEFAULTいいえ

APIC側のFabricにおいて物理ドメイン名として使用される名前を定義します。この名前は、複数のOpenStackインスタンスがACIの同一Fabricにおいて連携している際に識別のために使用されます。

apic_provision_inframl2_cisco_apicいいえ

インフラ構成を手動で行いたい場合は False を指定してください。

デフォルトは True となります。

enable_aci_routingml2_cisco_apicいいえ

OpenStackが routing のために ACIを使用するかどうかを指定します(True / False)。

デフォルトは True となります。

enable_arp_floodingml2_cisco_apicいいえ

NeutronネットワークにおいてARP floodingを使用するかどうかを指定します(True / False)。

デフォルトは False となります。

apic_vpc_pairsml2_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の場合は、ドメイン完全修飾名が標準となります。

 

  • vPC接続ではない場合
[apic_switch:nodeid]
hostname1,hostname2=moduleid/portid
  • vPC接続の場合(1) ※vPCを手動構成するが、vPCのバンドルIDは自動生成する場合
[apic_switch:nodeid]
hostname1,hostname2=vpc-moduleid-portid/auto
  • vPC接続の場合(2) ※vPCを手動構成し、vPC バンドルIDも指定する場合 (この場合、apic_provision_infraパラメータは必ず "false" に設定する必要があります)
[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
Getting Started

検索バーにキーワード、フレーズ、または質問を入力し、お探しのものを見つけましょう

シスコ コミュニティをいち早く使いこなしていただけるよう役立つリンクをまとめました。みなさんのジャーニーがより良いものとなるようお手伝いします