第24回 Cisco CMLでスパイン & リーフ構成を構築

## データセンター環境でのネットワーク機器
　AIの需要拡大に伴い、通信量も劇的に増加した結果、近年データセンターの増設が頻繁に行われるようになっています。この**データセンター環境でよく利用されているCiscoの機器がNexusシリーズ**です。
　このNexus機器は、これまでの記事で書いてきた**CiscoのIOS、IOS XE対応機器とはOSも全く異なる**ため使用できる技術も独自のものが多くあります。
　今回はこのNexus機器で**小規模のスパイン & リーフ構成**をCisco CMLで構築し検証を行いました。

## スパイン & リーフ構成とは
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/559536/ea12371b-7891-4b39-98fa-3bdb4a42e229.png)
　今まではコンフィグで制御していたネットワークに比べ**柔軟性やスピード**にも対応した現在主流のデータセンターのネットワーク構成です。
　従来のネットワークは3階層で構成されておりましたが、**スパイン、リーフの2階層**にすることで**ホップ数を減らし通信効率の向上**が可能。
　また、**APIC**と呼ばれる管理コントローラーのGUI画面から設定や制御ができます。

## 検証構成図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/559536/94d2a9f8-349c-4fb7-9ef9-b8f00c5c8631.png)

・LeafとSpineは**Nexus-OS 9000**を使用
・SWは**IOS-OS**を使用



### 検証項目
①**各SWから対向SWのインターフェースに設定されたIPアドレス**に向けてping疎通を行う
②**EVPN-VXLAN**をLeaf1⇔Spine⇔Leaf2で構成し**VXLANトンネル**を作成する
③各Leafスイッチが**対向Leafスイッチの下につながっているスイッチのMACアドレス**を学習する

#### VXLAN
L3ネットワーク上でL2ネットワーク延伸を実現するオーバーレイネットワークと呼ばれる技術。
今回の構成では、Leaf1⇔Spine⇔Leaf2の間を**L3ネットワークのiBGP**で構成し、**その上にL2ネットワークを構築**しています。


## 検証結果
### ①各SWから対向SWのインターフェースに設定されたIPアドレスに向けてping疎通成功
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/559536/7b6b62f9-cb04-47ce-a1a1-a9725e5be6cb.png)

### ②Leaf1⇔Leaf2間でVXLANトンネルが確立
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/559536/439960bb-57d6-40a7-b0aa-f3d5126b863b.png)

### ③各Leafスイッチで対向SWのMACアドレスの学習を確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/559536/195b6059-1ddf-4323-a99a-a85c68e7125f.png)
**VXLANを経由して学習したMACアドレスはBGPから受け取っている。**

## 投入コンフィグ
<!-- SW -->
<details><summary>SW </summary>

```rb
【SW1】
interface GigabitEthernet0/0
 no switchport
 mac-address 0000.1111.1111
 ip address 192.168.10.11 255.255.255.0

interface GigabitEthernet0/1
 no switchport
 mac-address 0000.1111.2992
 ip address 192.168.11.81 255.255.255.0
end

【SW2】
interface GigabitEthernet0/0
 no switchport
 mac-address 0000.2222.2222
 ip address 192.168.10.22 255.255.255.0

interface GigabitEthernet0/1
 no switchport
 mac-address 0000.2222.3773
 ip address 192.168.11.92 255.255.255.0
end
```
</details>

<!-- Leaf1 -->
<details><summary>Leaf1 </summary>

```rb
interface loopback0
  ip address 172.16.255.2/32

interface loopback1
  ip address 172.16.254.1/32
  
interface Ethernet1/1
  no switchport
  ip address 172.16.13.3/24
  no shutdown

interface Ethernet1/2
  switchport
  switchport access vlan 120
  no shutdown

interface Ethernet1/3
  switchport
  switchport access vlan 140
  no shutdown

feature ospf

router ospf 1
  router-id 172.16.255.2
  
interface loopback0
  ip router ospf 1 area 0.0.0.0  

interface loopback1  
  ip router ospf 1 area 0.0.0.0

interface Ethernet1/1
  ip ospf network point-to-point
  ip router ospf 1 area 0.0.0.0

feature bgp
nv overlay evpn

router bgp 65005
  neighbor 172.16.255.1
    remote-as 65005
    update-source loopback0
    address-family l2vpn evpn
      send-community both

feature vn-segment-vlan-based
feature nv overlay

vlan 120
  vn-segment 10120
  
vlan 140
  vn-segment 10140

evpn
  vni 10120 l2
    rd auto
    route-target import auto
    route-target export auto  

  vni 10140 l2
    rd auto
    route-target import auto
    route-target export auto

interface nve1
  no shutdown
  host-reachability protocol bgp
  source-interface loopback1
  member vni 10120
    ingress-replication protocol bgp

  member vni 10140
    ingress-replication protocol bgp

```
</details>

<!-- Leaf2 -->
<details><summary>Leaf2 </summary>

```rb
interface loopback0
  ip address 172.16.255.3/32

interface loopback1
  ip address 172.16.254.2/32
  
interface Ethernet1/1
  no switchport
  ip address 172.16.14.4/24
  no shutdown

interface Ethernet1/2
  switchport
  switchport access vlan 120
  no shutdown

interface Ethernet1/3
  switchport
  switchport access vlan 140
  no shutdown

feature ospf

router ospf 1
  router-id 172.16.255.3
  
interface loopback0
  ip router ospf 1 area 0.0.0.0  

interface loopback1  
  ip router ospf 1 area 0.0.0.0

interface Ethernet1/1
  ip ospf network point-to-point
  ip router ospf 1 area 0.0.0.0

feature bgp
nv overlay evpn

router bgp 65005
  neighbor 172.16.255.1
    remote-as 65005
    update-source loopback0
    address-family l2vpn evpn
      send-community both

feature vn-segment-vlan-based
feature nv overlay

vlan 120
  vn-segment 10120
  
vlan 140
  vn-segment 10140

evpn
  vni 10120 l2
    rd auto
    route-target import auto
    route-target export auto  

  vni 10140 l2
    rd auto
    route-target import auto
    route-target export auto

interface nve1
  no shutdown
  host-reachability protocol bgp
  source-interface loopback1
  member vni 10120
    ingress-replication protocol bgp

  member vni 10140
    ingress-replication protocol bgp
```
</details>


<!-- Spine -->
<details><summary>Spine </summary>

```rb
interface loopback0
  ip address 172.16.255.1/32

interface Ethernet1/1
  no switchport
  ip address 172.16.13.1/24
  no shutdown

interface Ethernet1/2
  no switchport
  ip address 172.16.14.1/24
  no shutdown 

feature ospf

router ospf 1
  router-id 172.16.255.1
  
interface loopback0
  ip router ospf 1 area 0.0.0.0  
  
interface Ethernet1/1
  ip ospf network point-to-point
  ip router ospf 1 area 0.0.0.0

interface Ethernet1/2
  ip ospf network point-to-point
  ip router ospf 1 area 0.0.0.0

feature bgp
nv overlay evpn

router bgp 65005
  neighbor 172.16.255.2
    remote-as 65005
    update-source loopback0
    address-family l2vpn evpn
      send-community both
      route-reflector-client
      
  neighbor 172.16.255.3
    remote-as 65005
    update-source loopback0
    address-family l2vpn evpn
      send-community both
      route-reflector-client

```
</details>

## 参考
https://note.com/s_thinzar/n/n7047858a126e

https://www.infraexpert.com/study/virtual3.html

https://www.cisco.com/c/ja_jp/td/docs/switches/datacenter/nexus9000/sw/93x/vxlan/configuration/guide/b-cisco-nexus-9000-series-nx-os-vxlan-configuration-guide-93x/b-cisco-nexus-9000-series-nx-os-vxlan-configuration-guide-93x_appendix_010101.html

https://sa-today.jp/articles/many-datacenter

## 次回
**アンダーレイ、オーバーレイの概念**に関して記事を作成予定