【机上検討】Cisco Catalyst SD-WAN Site-ID戦略を考えてみた

:::note warn
今回のテーマはCisco Catalyst SD-WAN運用担当者向けの少々マニアックな記事となりますのでご了承ください
:::

いつも記事を読んでいただきありがとうございます！
モブエンジニア（[@mob-engineer](https://qiita.com/mob_engineer))です！

某Cisco勉強会でCisco Catalyst SD-WANについてキャッチアップしていく中で**最適なSite-ID戦略って何だろう**とふと思ったため、机上検討もかねて個人検討してみました。

Cisco Catalyst SD-WAN運用に関するニッチな話になるため需要はそこまでないかと思いますが、極力平易な表現でまとめますので、お気軽に読んでいただければ幸いです。

:::note info
OMP、TLOC、コントロールプレーンなどの説明を含めると複雑になるので、いったん省きます。（各項目だけで1記事以上の分量になるので）
:::

:::note info
Cisco Catalyst SD-WANに関しては開発者ガイドをお読みください。
（本記事も開発者ガイドをもとに執筆しております）

https://www.cisco.com/c/en/us/td/docs/solutions/CVD/SDWAN/cisco-sdwan-design-guide.html
:::

# 目次
- Site-IDとは
- Site-ID戦略を考えなくていい場合
- Site-ID戦略を考える必要がある場合
- 最適なSite-ID戦略を考えるポイント
    - 将来の変更を踏まえたゆとりある設計
    - 桁に対して意味を持たせる
    - 可読性が高い数字を設定する
- まとめ

## Site-IDとは

公式ガイドを見ると以下の通り示されています。
- 原文
>A site ID is a unique identifier of a site in the SD-WAN overlay network with a numeric value 1 through 4294967295 (2^32-1) and it identifies the source location of an advertised prefix. This ID must be configured on every WAN Edge device, including the control components, and must be the same for all WAN Edge devices that reside at the same site. A site could be a data center, a branch office, a campus, or something similar. By default, IPsec tunnels are not formed between WAN Edge routers within the same site which share the same site-id.

- 翻訳
>サイト ID は、SD-WAN オーバーレイ ネットワーク内のサイトの一意の識別子で、数値は 1 ～ 4294967295 (2^32-1) です。アドバタイズされたプレフィックスのソースの場所を識別します。この ID は、制御コンポーネントを含むすべての WAN エッジ デバイスで設定する必要があり、同じサイトにあるすべての WAN エッジ デバイスで同じである必要があります。サイトは、データ センター、ブランチ オフィス、キャンパスなどです。デフォルトでは、同じサイト内の同じサイト ID を共有する WAN ルータ間では IPsec トンネルは形成されません。

上記説明だけを見ると、**各ルータに対して一意に設定する識別子なのね**だけで終わってしまうので、以下のような構成をもとに考えてみたいと思います。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/ca53c9d6-e453-13c9-bb20-03c7d60af24d.png)

ポリシーなどの設定も何も行わない場合は以下のような通信経路になります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/c50bb4bb-3fe8-d137-2a3c-4cefe97519ae.png)

Cisco Catalyst SD-WANのデフォルトルーティングが**フルメッシュ構成**となるため、ポリシーなどで制御を行わない限り、各ルータごとに接続する構成となります。

正直、上記構成であればSite-IDを意識する必要はほとんどありませんが、例えば、東京拠点を**ハブスポーク構成＋大阪拠点と接続しない**場合を考えてみましょう。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3846878/efb1c6e8-3386-282f-51c5-9f8a0938dcd3.png)

上記構成の場合、**東京拠点はハブ拠点経由の通信しか行わない**ため、ポリシーによる制御が必要となります。あわせて、大阪拠点に関しても**東京拠点のルータと接続しないようにポリシーを定義**する必要があります。

そのうえで、Site-IDに関して以下条件を加えてみました。

- 東京拠点（ハブ） Site-ID ：5
- 東京拠点（スポーク） Site-ID：1、２
- 大阪拠点（フルメッシュ） Site-ID：3、4

上記、Site-IDを振ってみましたが**各ルータがどのような役割を担っているか分からない**といった状態が発生するかと思います。

もちろん、Configを見ればハブ or スポーク or フルメッシュのいずれかを判別することは可能ですが、正直手間がかかります。

そのうえで、Cisco Catalyst SD-WANの最大の機能として**インターネット（ローカル）ブレイクアウト**に関しても、どの拠点がインターネットブレイクアウトを設定しているのかSite-IDからわかるようにしたほうが運用上の手間が省けます。

上記のような観点から、設計段階からSite-IDの構成を考えたほうがよろしいかと思います。まとめると、次の3点に集約されると思います。

- 追加で変更する際のメンテナンスコストの削減
    - Site-ID変更による影響範囲調査を都度行う必要がない
- トラブルシューティングの対処速度向上
    - Site-IDから各ルータの設定内容を類推できるようにすることで原因の絞り込みを容易に行える
- 運用引継ぎに関する簡素化
    - 新規担当者へSite-IDの付与規則を伝えるだけで、このルータがどのような役割を果たしているか理解することができる

といえど、すべての場合でSite-ID戦略を考える必要があるかどうか検討する必要があるので、ユースケースごとに見ていきたいと思います。

## Site-ID戦略を考えなくていい場合

Site-ID戦略を考えなくていい場合はただ一つだと考えています。
それは、**Cisco Catalyst SD-WANを個人利用している場合**のみに限られるからかともいます。

理由として、
- ユーザへの影響がないため、通信断が発生しても問題ない
- メンテナンスに関して個人で行うため、基本考えなくていい
- 新規担当者への引継ぎという概念が存在しないため、自身だけがわかっていればいい

## Site-ID戦略を考える必要がある場合

Site-ID戦略を考えたほうがいい場合として以下のユースケースかと思います。

- 実ユーザ環境
- 検証環境
- 後任向けの教育環境
- その他（ハンズオン環境）

## 最適なSite-ID戦略を考えるポイント

最適なSite-ID戦略のポイントとして次の3点があると個人的に考えています。

- 将来の変更を踏まえたゆとりある設計
- 桁に対して意味を持たせる
- 可読性が高い数字を設定する

### 将来の変更を踏まえたゆとりある設計

例えば、若番から1,2,3とSite-IDを付与するのは最初のうちはいいかもしれませんが、Site-IDがポリシー設定時必要不可欠となります。上記のような付与規則だと、Site-IDが増えるたびにポリシー設定を修正する必要があるため、**運用担当者のメンテナンスコストが増加**してしまいます。

そのため、**レンジを持たせた付与規則**をあらかじめていぎすることでポリシー設定にかかるメンテナンスコストを削減できると考えています。

### 桁に対して意味を持たせる

例えば、**1桁目は所属部署**、**2桁目～4桁目は利用サービス**、**5桁目～9桁目は付与番号（若番）**といった形で**桁に対して意味を持たせる**ことで、Site-IDを一目見ただけでどのような設定が含まれているのか**視覚化できるかと思います。

### 可読性が高い数字を設定する

**ゆとりある設計**と**桁数に意味を持たせる**に関してはCiscoコミュニティ内の勉強会でも割と言われているので、認知している方は多くいらっしゃるかと思います。そのうえで、私個人として一番重要なのは**可読性の高い数字**だと考えています。

例えば、最初に構築したルータのSite-IDが**999990001**だった場合、読み手はどのような印象を持つでしょうか？

私だけかもしれませんが、**99999**といった数字に対して**ダミールータ**といった印象を持ってしまい、**このルータは適当に扱っていいな**と思い軽視する可能性があります。（私だけかもしれませんが）

伝えたいこととして、**付与した数字に対して適切な根拠を説明できるかどうか**を留意して設計してみるとよろしいかと思います。

## まとめ

Site-IDの付与規則に関しては公式ドキュメントでもベストプラクティスを説明していないため、見解が分かれるかと思います。

そのうえで、私個人の意見ですが、Site-IDを正しく付与することで**ユーザに対してネットワーク構成の説明可能性が高まる**と考えています。（付与規則を説明すれば、ユーザも各ルータのざっくりとした役割を理解できるので）

最後に、**Site-IDは利用ユーザも目に触れる可能性のあるパラメータ（ユーザ側の運用チームへ引き渡す場合は必須）**なので、**その場限りの設計**でなく**将来を考えたより最適な設計**を行うことが必要だと考えています。

本記事が**Cisco Catalyst SD-WANの運用に携わっている方**にお役立てできればうれしいです。

最後まで記事を読んでいただきありがとうございました

PS：
Cisco Catalyst SD-WANのより実務的な運用を知りたい方はコミュニティリソースへアクセスするとよいと思われます。

https://community.cisco.com/t5/networking-knowledge-base/sd-wan-community-resources/ta-p/4604647