SD-Accessを検証したいのに1 -ファブリックの設定

## 概要
ciscoが提供するsandboxでSD-ACCESSを勉強しています。
動画などで見るとスムーズに設定しているのですが、意外と検証できるまでの初期設定が難しいです。
エラーになったところを備忘として記録します。メモ書きなので、これを見ればわかる！とは言えませんが、同じところで悩んでいる方の参考になれば嬉しいです。


この記事はファブリックを設定して、各ノードにEdgeとかControl plane nodeとかの役割を割り当てるまでです。
間違えていたら教えてほしい..

##
環境はこちらを使用しました。
無料でSD-AccessやSD-WAN環境が試せます。
cisco sandbox

https://developer.cisco.com/site/sandbox/

Catalyst Center Sandbox
Cisco DNA Center Release 2.3.7.4 with ISE

## 構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/861c24cb-07f4-42e5-2415-662290f55a24.png)


sandboxの構成を少しシンプルに変更
sw2を削除、外部接続用としてR1を追加

## 手順
１．ISEと紐づけ

２．サイトの作成

３．ネットワークの設定
　３－１．AAAサーバとしてISEを設定
　３－２．IP address pool登録

４．デバイスの設定
　４－１．デバイスをサイトに登録
　４－２．デバイスのプロビジョニング

５．ファブリックの設定
　５－１．ファブリックの作成
　５－２．各nodeにRoleの割り当て

--ここまで--
６．Layer3 Virtual Networks/Anycast Gatewayの作成
７．Edgeのportを有効化
８．L3 Handoff
<br>

##
**太字**はGUIで選択するところ
sandboxのスクショ載せていいかわからないので、画像は少なめです
<br>
## １．ISEと紐づけ
**System > Settings > External Services - Authentication and Policy Servers**
**Actions - Edit > Advanced Settings pxGridを有効化**
　・sandboxではすでにISEが登録されているけれど、PxGridを有効にする必要がある
　・UsernameとPasswordはISEのもの
　・[Add]で登録後、Integrationが開始される
　・Integrationの最後 Connection to pxGrid.. で×になる場合は、[Retry]すればだいたい完了する　タイミングによる？
 　・登録する情報はISEの　Administration > System > Deploymentから確認できる


PxGridとは
Cisco Platform Exchange Grid
platform integrations:統合プラットホーム
ISEで管理しているユーザ情報(SGT)をCatalyst centerと連携するために必要？

https://www.cisco.com/c/ja_jp/td/docs/security/ise/3-1/admin_guide/b_ise_admin_3_1/b_ISE_admin_31_pxgrid.html

## ２．サイトの作成
**Design > Network Hierarchy**
 　・buildingを追加する場合、Lattitude/Longitude(緯度/経度)を指定する必要がある
 　・検証の場合は適当に1とかで登録可能
<br>

## ３．ネットワークの設定
３－１．AAAサーバとしてISEを設定
**Design > Network Settings > Servers**
**Client/Endpoint - Add AAA servers**
 　・Globalで設定
 　・ISEの紐づけが完了していれば、PANが選択できるようになる
    
PANとは
　・Policy Administration Node (PAN): 管理ノードのこと
　・ISEは複数ノードでそれぞれのペルソナ(役割り？)を分散でき、PANもそのひとつ
　・管理ノードとなるPANは必ず指定する必要がある
　・ペルソナはPANの他にもPSN(Policy Services Node)とか
　・sandboxの場合はひとつのISE(=スタンドアローン)で、PANもPSNもおなじISE

ペルソナとは 他、ISEの用語

https://www.cisco.com/c/ja_jp/td/docs/security/ise/2-7/InstallGuide27/b_ise_InstallationGuide27/b_ise_InstallationGuide27_chapter_00.html

<br>

３－２．IP address pool登録
**Design > Network Settings > IP Address Pools**

今回の設定
|Name|Type|IPv4 Subnet|
|---|---|---|
|GLOBAL|Generic|10.0.0.0/8 |
|EMPLOYEE|Generic|10.0.1.0/24|
|GUEST|Generic|10.0.2.0/24|

 　・GLOBALはおおまかなアドレス、VN(ここではEMPLOYEE/GUEST)ごとに払い出す範囲を指定する
 　・GLOBALはAddで追加、VNは使用したい範囲(今回はFloor)を指定してReserve
 　・LAN Automationの場合はTypeをLANに設定する必要がありそう(←まだ上手くできたことない)
<br>

## ４．デバイスの設定
４－１．デバイスをサイトに登録
**Provision > Inventory**
**デバイスを選択**
**Action > Provision > Assign Device to Site**
 　・ファブリックを作成したいサイトを指定
 　・３－２．でpoolを作成したサイト
<br>
４－２．デバイスのプロビジョニング
**Provision > Inventory**
**Action > Provision > Provision Device**
 　・②Advanced ConfigurationでL0 IPアドレスを指定する
 　・sandbox環境ではSW1のみすでに設定されている
 　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/6d89bfd6-0a8e-888a-327e-9f29863ac259.png)

 　・SW3/SW4は適当に指定
  
今回の設定
|sw|Loopback0 アドレス|
|---|---|
|sw1|10.1.1.1|
|sw3|10.3.3.3|
|sw4|10.4.4.4|

 　・このプロビジョンを実行しないとfabricの設定でエラーになる
 　・copy run startを実行しているみたい
 　・プロビジョン完了後、該当デバイスにLoopback0アドレスが設定される
 　　RLOCで使用するためにLoopback0を指定させてる？

## ５．ファブリックの設定
５－１．ファブリックの作成
**Provision > Fabric Sites**
**Create Fabric Site**
 　・ISEを使用するときはAuthentication TemplateにClosed Authenticationを選択  
 　・Closed Authenticationはdot1Xで認証されたendpointのみ許可
 　・３－１．でAAAを有効化していないとエラーになる
	
<br>

作成完了後のfabric
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/b93f5415-5099-5f27-5dfb-233eb6a9e051.png)

sw1のDevice RoleをBORDER ROUTERに指定
**Provision > Inventory**
**sw1選択**
**Action > Inventory > Edit Device**
**Device RoleをBORDER ROUTERに変更**

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/d282aeb4-d984-18f4-62a7-09d894788478.png)
<br>
 
５－２．各nodeにRoleの割り当て
**デバイスを選択 > 割り当てたいRole(Edge Node/Control Plane Node/Border Node)を有効化**


 　・ip routingを有効にしていないとエラーになる
 　　その場合、CLIからip routingを有効化後に再同期
 　　**Provision > Inventory**
 　　**Action > Inventory > Resync Device**
 　　![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/5aa2bbd4-2974-dfbf-b7f1-501b3c2677e5.png)

:::note info
エラーになった場合はすべてのノードでRole割り当てがやり直しなる
修正後はControl Plane Nodeだけ試しに登録して修正できているか確認するのがおすすめ
Border nodeにたくさん設定した後でやり直しになると悲しい
:::
なぜControl Plane Nodeかというと
Control Plane Nodeはendpointのマッピングを担っている大事なNode
BGPでいうRR、ファブリックの脳にあたるため必ず1つは必要で、Control Plane Nodeを指定しないと[Deploy]できないため

<br>

今回の設定
|sw|Role|
|---|---|
|sw1|Control Plane Node/Border Node|
|sw3|Edge Node|
|sw4|Edge Node|

  ・Control Plane NodeはLISP/BGPを指定
  ・Border Nodeで入力するのはlocal(Border Node)の情報
　今回はBGPでL3 Handoff
 　✓Enable Layer-3 Handoff
 　 Local Autonomus Number 100 を指定
  ・ここの登録でよくエラーになる
  　その場合は表示の通りに修正後、ProvisioningかResyncでだいたい解決する
  ・Roleを修正したい場合は、デバイス選択後[Remove From Fabric]で取り消しできる
  
設定完了後
ファブリックらしくなりました！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/122841/bd89c07b-2bdb-6ebf-ac7f-8c29b726a8a9.png)



## 参考

Configuring Campus Fabrics - SD-Access

https://www.youtube.com/watch?v=pPFx-kmAgE8

最近配信された動画で、GUIがsandboxとほぼ同じです。
英語ですが、動画なのでいっしょに操作しながら学習できます。
今回の記事もこちらの構成を参考にしています。

<br>

Cisco SD-Access解説 ( CCIE EI Candidate向け )

https://www.youtube.com/watch?v=mdtqxpzhevo

SD-Accessて用語とか概念とかがとっつきづらい印象なのですが、この動画はすごくわかりやすいです。

<br>

『Cisco Software-Defined Access』

https://www.ciscopress.com/store/cisco-software-defined-access-9780136448389

細かい用語などはこちらを参照しました。