すぐ使える！Cisco ACIとCisco SD-WANの連携 

#はじめに

　この記事では、マルチドメイン 連携の代表例として、実機検証の結果に基づきCisco ACIとCisco SD-WANの連携の動作仕組みと設定方法を説明します。
　近年、各ネットワーク領域のSDN技術の成熟とAPIの充実を背景に、様々なベンダはネットワーク領域の垣根を跨いでエンドーツーエンドのポリシー運用・自動化を目指して「マルチドメイン連携」（ベンダによっては呼び方が異なるが）という構想を鮮明に打ち出しています。
　一方、マルチドメイン連携の構想は壮大に語られているだけに、「夢のような話ではないか」や「複数のSDNソリューションへの深い理解が必要で返って運用しづらくなるのではないか」などの疑問や懸念をお持ちの技術者も少なくないと思います。この記事は特にこのような技術者を対象に、マルチドメイン連携は夢ではなく簡単な設定ですぐ使える実用的な機能である点にフォーカスして記載していきたいと思います。

#動作仕組み

　この章では、Cisco ACIとCisco SD-WANはどのような連携ができるか、その連携をどのように実現しているかについて説明します。
 
　Cisco ACIとCisco SD-WANの連携により、「ACIは配下アプリケーションの通信要件に基づきSLA（Service Level Agreement）を定め、SD-WANがWANにおいてそのSLAに基づき当該アプリケーションの最適な通信経路を自動的に・ダイナミックに選択すること」は可能になります。さらに簡単にいうと、要はACI側で設定されたアプリケーションのSLA要件はデータセンタだけでなくWANも含めてエンドツーエンドで適用されるということですね。
　Cisco ACIとCisco SD-WANの連携はCisco ACIのコントローラに相当するAPICとCisco SD-WANのコントローラに相当するvManage間のAPIコール等による実現しています。具体的な連携の仕組みは以下の図を参照しながら一緒に見ていきましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/a3bc657b-8432-a4a0-a64c-cfe78a1e3028.png)

　**ステップ１：**
　vManageはAPICへ使えるサービスVPN番号、デフォルトSLA（新規に連携専用のSLAを作成することも可能）を通知します

　**ステップ２：**：
　ユーザは対象アプリケーションを表すEPG（Application EPG）からL3out（External EPG）への通信を許可するContractを定義して、そのContractの中にステップ１でvManageから通知されたSLAを選択して適用します。
　その時点でAPICはランダムである特定のDSCPコードを決め、そのContractにより許可された通信のパケットを当該DSCPでマーキングするようにします。
　ユーザは前述のL3Outが属するVRFをステップ1でvManageから通知されたサービスVPN番号と紐付けます。

　**ステップ３：**
　APICはvManageへステップ2で適用した以下の情報をvManageへ通知します。
   - SLAと紐づけられているDSCP情報
   - SLAと紐づけられている対象Application EPGのIPアドレス情報(prefix listの形)

　**ステップ４：**
　vManageはvSmartを経由でL3Outに接続されているSD-WAN Edgeを対象に、ステップ3でAPICから通知されたDSCPでマーキング済みで且つACIのL3OutからSD-WAN Edgeへ流入したパケットを対象SLAで通信品質を守るためのApplication Aware Routingポリシーを適用します
　（オプショナル）ステップ3でAPICから通知された対象アプリケーションのIPアドレスを表すPrefix listをマッチング条件にして、マッチングしたパケットを対象にSLAで通信品質を守るためのApplication Aware Routingポリシーを適用します


#検証環境

検証環境の構成とバージョン情報は以下の通りです。

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/6a156e3c-3403-8b5e-c168-0faa8c2ad01c.png)

　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/a6f65358-05ab-48b3-020c-7c43fbc917c5.png)

　 

#設定方法：

設定方法は4つの手順に分けて順番に説明していきます。設定の全体の流れは以下の通りです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/7cba6dba-eebb-97de-5b72-fce2eddc66f1.png)


 

　以下は、各手順の詳細の設定内容について説明します。

**手順１：APIC、vManage間の連携設定**
1.1	APICのGUIへログインし、Integration -> Create Groupにて任意の新規Groupを作成します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/e5029fce-a0c0-e15f-4a82-93664c936e71.png)

 
1.2	「1.1」で新規に作成したGroupを選択し、「vManage」という名前の連携対象項目を選択して「Create Integration Manager」をクリックします。「Create Integration」画面で連携先のvManageのアクセス情報を入力して「Submit」をクリックします
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/34c4d696-ca94-aa3a-a107-5194161a0188.png)


1.3	「1.2」で作成した「SDWAN」という名前のvManage Integrationを選択してSystem Infoタブをクリックし、「Status」欄は「Registration Successful」になっていることを確認します
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/da35c76b-5ed8-d9da-7009-d39e36f1cb95.png)

「Issues」欄は「Error in pushing SLA DSCP mapping to remote vManage Device」となっていますが、現時点では期待通りの表示であり、問題がありません。
「Partner ID」欄に表示されるIDは後ほどvManage側でも確認できます。

1.4	vManage GUIへログインし、Administration -> Integration Managementにて、APIC側で設定した連携内容はvManage側に反映されていることを確認できます。「Partner ID」に表示されているIDはAPIC側の連携設定のPartner IDと一致していることを確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/26d4a472-e488-d305-9000-f33efe10a0aa.png)

 
これにより、APIC、vManage間の連携設定が完了しました。

**手順2：WAN SLAの適用**
2.1 vManage GUIへログインし、Configuration->Policy->Centralized Policy->Define Lists->SLA Classにて、予め用意されているACI連携用のSLA Class Listを確認します。
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/ed41a5e7-82ee-3ca5-ba8e-9714c99f456c.png)

2.2 WAN SLA適用対象のcontractを選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/d574cbdc-ab5f-52bb-77a2-1804497c2586.png)

 
2.3 前述のコントラクトのサブジェクトにて適用するWAN SLAを選択します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/865b2908-2e7b-ea92-cbe5-d41db795da02.png)
 

2.4 適用したWAN SLAの各値はvManage側のSLA Class Listのものと一致していることを確認します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/ce12fbf4-84df-7b86-0d03-a2388a3508a8.png)

 
2.5注意：QoS Priorityを「Unspecified」以外の値に設定する必要があります
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/1d166351-0782-9804-c047-0939236ec165.png)


**手順3：VRFとVPNのマッピング**
3.1 WAN SLA適用対象通信のL3outが属するVRFを選択し、WAN VPNで当該VRFをVPN 777とマッピングします。]
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/7c42b8e2-9170-9b30-91d9-92408b4773ba.png)

 
これにより、ACI側のVRFとSD-WAN側のVPNのマッピングが完了しました

**手順4：連携対象のSD-WAN Edgeの登録**
4.1 vManage GUIへログインし、Administration -> Integration Management -> 「・・・」 をクリック -> Attach Deviceにて、連携対象のSD-WAN Edgeを登録（アタッチ）します
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/0a6c1fa7-6cd5-6736-aff2-fde3740275c0.png)


4.2 連携対象のSD-WAN Edgeを左のパネルから右のパネルへ移動し、「Attach」をクリックします
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/4cbe05f2-dde9-b53b-8213-26110fb6d5ff.png)


#動作確認


**動作確認１：Application EPGの増設サーバのIPアドレスはSD-WAN側へ自動的に反映**

1.1 ACI側の対象アプリケーションのサーバ増設後、増設されたサーバはすぐ同じApplication EPG配下のendpointとして検出されました。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/3d2248bf-b01e-5e25-3a98-a150472f277e.png)


1.2 同増設サーバのIPアドレスは、SD-WAN側の戻り通信用Prefix listにも自動的に追加されました。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/bf498b2c-d80a-4bb1-085c-da30ce0fd262.png)


**動作確認2: SD-WAN側のSLA変更はACI側へ自動的に反映**

2.1 ACI側のWAN SLAの「Voice-And-Video」の遅延値はデフォルトの45msになっています
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/af06957a-8a5e-20f4-6d87-f2f7b7a8a54c.png)

 

2.2 SD-WAN側のVoice-And-VideoのSLAの遅延値を45msから100msへ変更します
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/e479de12-8dfb-f2aa-db2d-1684ba45507d.png)


2.3 APIC側のWAN SLAの「Voice-And-Video」の遅延は自動的に更新されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/187c6346-fa1d-bc6d-075f-04e7ed536e22.png)
 

**動作確認3: ACI側のWAN SLAの設定に従い、SD-WAN側はApplication Aware Routingポリシーを使って最適経路を選択**

3.1 WAN SLA適用対象通信のL3outに接続されているSD-WAN EdgeであるISR4331にログインして、ACI側のcontractで定義された通りのWAN SLAは、SD-WANのApplication Aware Routingポリシーとして当該ISR4331に適用されていることを確認できます
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/40fae004-a0e4-9ba5-ec8e-41c45bda5fc3.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/46f415f4-8bfd-ce78-6d2a-9c02bec1c611.png)


3.2 WANエミュレーターを使用してprivate2という回線で約200msの遅延を発生させます。vManageのGUIでprivate2回線の遅延発生を確認できます。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/b7d83029-f537-badb-e1c0-03f080098f7e.png)


3.3 音声アプリサーバー相当端末からブランチ側の端末へ通信を発生させます
 
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/aee7532f-7a6d-b71d-504d-773f919aa7e7.png)


3.4 連携対象SD-WAN EdgeであるISR4331で通信開始直後の状況をnetflowで確認します。ECMPの結果、192.168.123.1から192.158.52.1や192.168.52.2への通信はGE0/0/1（Private2回線）から出力されることを確認できます。

 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/52176808-3a33-ac8d-6215-d63191a40d2d.png)


3.5 迅速に経路切り替えを行うため、vManage側でApplication Aware Routngポリシーの関連タイマーを短い値に設定します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/7105c451-c536-68b9-40fb-50f1371676eb.png)

 
3.6 連携対象SD-WAN EdgeであるISR4331でタイマー変更数秒後の状況をnetflowで確認します。
WAN SLA適用の結果、遅延発生中のPrivate2回線が使用されなくなり、192.168.123.1から192.158.52.1や192.168.52.2への通信はGE0/0/0（Private1回線）から出力されることを確認できます。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/61ab9788-cf82-d39b-a69f-21448a8973d6.png)


3.7 WANエミュレーターを使用してprivate2回線で発生させた200msの遅延をなくします。vManageのGUIでprivate2回線の遅延の解消を確認できます。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/a13e0ec8-5f94-1b56-c5f8-feaa00884720.png)


3.8 連携対象SD-WAN EdgeであるISR4331で遅延解消数秒後の状況をnetflowで確認します。
WAN SLA適用の結果、遅延解消後のPrivate2回線が再び使用されるようになり、ECMPにより192.168.123.1から192.158.52.1や192.168.52.2への通信はGE0/0/1（Private2回線）から出力されることを確認できます。
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/927754/b0a885e2-bb46-4304-2cd1-69901182b3ae.png)



#終わりに

　話題のマルチドメイン 連携の一例として、Cisco ACIとCisco SD-WANの連携を実機検証の結果に基づきご紹介しました。今回ご紹介した連携機能以外にも、Cisco SD-AccessとCisco ACIの連携やCisco SD-Access/TrustSecとCisco SD-WANの連携などの「すぐ使える」連携機能はすでにリリースされています。
　これからもCiscoは複数のSDN、製品群を跨いでエンドツーエンドのポリシーの実現・運用を目指して継続的にマルチドメイン 連携機能を進化させていくと思いますが、それを待たずにDevNetの知識と各SDNソリューションのAPIを活用すればもっと実用的もっと面白い我流マルチドメイン 連携をどんどん生み出すことは究極的なマルチドメイン 連携と考えています。次回はこの辺りのネタでまた記事を書きたいと思います。

#参考：
Cisco ACI and SDWAN Integration
https://www.cisco.com/c/en/us/td/docs/switches/datacenter/aci/apic/sw/kb/Cisco-ACI-and-SDWAN-Integration.html#id_94958

Integration with Cisco ACI
https://sdwan-docs.cisco.com/Product_Documentation/Software_Features/Release_18.4/07Policy_Applications/Integration_with_Cisco_ACI