第17回 SD-WAN

今までのネットワークはオンプレ環境にある物理機器に**テラタームからのリモート接続やコンソールケーブルでログイン**し設定を変更していました。
しかし昨今、**新しいネットワーク技術として注目されているSDN**その中の技術の1つである**SD-WAN**に関して今回は説明していきます。
#SD-WAN(Software-defined Wide Area Network)
直訳すると**ソフトウェアで定義されたWAN**になります。これは最初にヒトの手で仮想的なネットワーク環境を構築したら、その後の運用は**vManage**と呼ばれる中央のコンソール上にあるソフトウェアによる**GUI画面**を通じて、すべての拠点を**一元管理、可視化**することができるようになります。またソフトウェアということもあり**REST-API機能を使用したプログラミングによる設定の自動化**にも対応しているのでケーブルの誤った抜栓などの**人為的なミスの削減**にも対応している技術となります。

##SD-WANを構成する要素
###vEdge
データセンター、キャンパス、支店などに設置される**物理ルーター**
対応ルーターは[こちら](https://www.cisco.com/c/ja_jp/solutions/collateral/enterprise-networks/sd-wan/nb-07-vedge-routers-data-sheet-cte-en.html)を参照
**vEdgeの上にvSmartが設置されvManageの設定変更内容を送信する。**

###vBond
オーケストレータ的な役割をするもので、vEdgeの**ブートストラップ時やNATトラバーサル**をする。
###vSmart
vEdge間でのルーティング情報交換の中継、vManageから学習したポリシーをvEdgeに送信する**橋渡し**的な役割。
###vManage
SD-WAN環境**全体の設定変更や状態確認**を行うコンポーネント。
管理者はvManageにwebからアクセスして、**GUIによる管理画面経由**で設定を操作する。
###OMP(Overlay Management Protocol)
**BGPをベース**にしたViptela独自のルーティングプロトコル。
**拠点間のルーティングとIPsecの鍵計算**を行う。
BGPは[こちら](https://qiita.com/infra-blog/items/8dce6e30385625fae515)の記事参照
###DTLS(Datagram Transport Layer Security)
**L2,L3層の送受信単位であるデータグラム**を扱うプログラムがやり取りするデータを暗号化して送受信するプロトコル
###BFD(Bidirectional Forwarding Detection)
**2台の隣接するルータ間の転送パス**の生存状況を調べて、高速に障害を検知してルーティングプロトコルに通知する機能
###オーバーレイネットワーク
オンプレミスなど物理的なネットワークの上、つまり**インターネット空間に構築された仮想的なネットワーク**のこと。オーバーレイネットワークを使用した通信技術の代表例が**VPN**

#VPN
SD-WAN環境において暗号化された通信を支える技術
詳細は[こちら](https://qiita.com/infra-blog/items/e45e660fd30d93b888e4)の記事参照

##SD-WAN環境で使用するVPNの種類

転送VPN **番号0**
WAN側のインターフェイスを介して制御トラフィックを伝送するVPN

サービスVPN **番号1-511**
サービス側データトラフィック用(LAN側)のvEdgeルーター上のVPN

管理VPN **番号512**
オーバーレイネットワーク内のViptelaデバイス間で帯域外ネットワーク管理トラフィックを伝送

#構築ネットワーク Cisco CMLにて作成
![SD-WAN.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/559536/e3e9e7f3-cd33-b7e5-922e-56155df40cb9.png)



##投入コンフィグ
```ruby:vEdge1の設定
system
 host-name               TEST_vEdge01
 system-ip               1.1.1.1
 site-id                 1
 organization-name       "TEST01"
 vbond 172.16.10.21
!
vpn 0　※転送VPN
 interface ge0/0
  ip address 172.16.1.1/24
  tunnel-interface
   encapsulation ipsec
   color biz-internet restrict ※パブリック向けカラー
　 max-control-connections 0 ※インターネット空間への通信を禁止
!
  no shutdown
!
 interface ge0/1
  ip address 172.20.1.1/24
  tunnel-interface
   encapsulation ipsec
   color metro-ethernet restrict ※プライベート向けカラー
   max-control-connections 5
!
  no shutdown
!
 ip route 0.0.0.0/0 172.16.1.254
 ip route 0.0.0.0/0 172.20.1.2
!
vpn 11　※サービスVPN
 interface ge0/2
  ip address 10.1.1.1/24
  no shutdown
!
```

```ruby:vEdge2の設定
system
 host-name               TEST_vEdge02
 system-ip               2.2.2.2
 site-id                 2
 organization-name       "TEST02"
 vbond 172.16.10.21
!
vpn 0　※転送VPN
 interface ge0/0
  ip address 172.16.2.2/24
  tunnel-interface
   encapsulation ipsec
   color biz-internet restrict ※パブリック向けカラー
   max-control-connections 0 ※インターネット空間への通信を禁止
  !
  no shutdown
 !
 interface ge0/1
  ip address 172.20.1.2/24
  tunnel-interface
   encapsulation ipsec
   color metro-ethernet restrict ※プライベート向けカラー
   max-control-connections 5
  !
  no shutdown
 !
 ip route 0.0.0.0/0 172.16.2.254
 ip route 0.0.0.0/0 172.20.1.1
!
vpn 11　※サービスVPN
 ecmp-hash-key layer4
 interface ge0/2
  ip address 20.1.1.2/24
  no shutdown
!
```

##結果
```ruby:TEST_vEdge01結果
TEST_vEdge01# show control connections | tab

                                           LOCAL                                                                                                                                 CFG     V             
          PEER   SITE  DOMAIN  LOCAL       PRIVATE                PUBLIC  SYSTEM                                                           PRIVATE                   CONTROLLER  SYSTEM  ORG   BEHIND  
INSTANCE  TYPE   ID    ID      PRIVATE IP  PORT     PUBLIC IP     PORT    IP       PROTOCOL  LOCAL COLOR     REMOTE COLOR    PRIVATE IP    PORT     STATE    UPTIME  GROUP ID    IP      NAME  PROXY   
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0         vbond  0     0       172.20.1.1  12426    172.16.10.21  12346   0.0.0.0  dtls      metro-ethernet  metro-ethernet  172.16.10.21  12346    connect  -       0           -       -     -       

TEST_vEdge01# 
```

```ruby:TEST_vEdge02結果
TEST_vEdge02# show control connections | tab

                                           LOCAL                                                                                                                                 CFG     V             
          PEER   SITE  DOMAIN  LOCAL       PRIVATE                PUBLIC  SYSTEM                                                           PRIVATE                   CONTROLLER  SYSTEM  ORG   BEHIND  
INSTANCE  TYPE   ID    ID      PRIVATE IP  PORT     PUBLIC IP     PORT    IP       PROTOCOL  LOCAL COLOR     REMOTE COLOR    PRIVATE IP    PORT     STATE    UPTIME  GROUP ID    IP      NAME  PROXY   
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
0         vbond  0     0       172.20.1.2  12426    172.16.10.21  12346   0.0.0.0  dtls      metro-ethernet  metro-ethernet  172.16.10.21  12346    connect  -       0           -       -     -       

TEST_vEdge02# 
```

##参考
[ゆるふわネットワーク](https://y-network.jp/2020/04/15/viptela-009/)
[Cisco SD-WAN（Viptela）解説](https://www.cisco.com/c/m/ja_jp/solutions/enterprise-networks/sd-wan.html)
[SD-WANコマンドリファレンス](https://www.cisco.com/c/ja_jp/support/routers/sd-wan/products-command-reference-list.html)