Juniper vQFX-REでEVPN-XVLANを構築(アンダーレイ編)

# はじめに

春なので触ったことのないJuniperで作ったことのないEVPN-XVLANを構築する。
技術習得と備忘録のために記事にしました。
Juniperマスターがいらっしゃればコメント等頂けると幸いです。

# 構成図
![無題.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/219627/f06a0ea5-4152-f636-0f90-c770379a3a0e.png)



# 準備
- 環境
EVE-NG Community版 

 - 機器
以下からDL(検証版・要登録)
https://support.juniper.net/support/downloads/?p=vqfxeval


## REとPFEの違いについて
ざっくり言うとPEはコントロールプレーン、PFEはデータプレーンで処理が異なる。
PEはルーティングに関する処理・PFEはスイッチングに関する処理を行うため、
em1インターフェース同士を直接接続し、同時に起動する必要がある。
※私の環境ではQEMU NicがRE・PFE共にe1000でないとPing疎通が出来ませんでした。
　(2日ハマりました…)

■確認コマンド
root@vqfx-re> show pfe terse
fpc0:
\--------------------------------------------------------------------------
Slot Type Slot      State     Uptime
 0   FXPC Present   Online    00:24:21

{master:0}

StateがOnlineであることを確認。

## 機器のログイン
Login: root/Juniper


## 権限の昇格について
Shellモード(%)
　↓ cli
Operationalモード(> CiscoでいうEnable)
　↓ configure
Configureモード(# CiscoでいうConfigre terminal)

## 管理IP設定
管理I/Fは基本的に"em0"インターフェースに設定。
以下ではem0インターフェースに設定
\# 固定IP設定
ex) set interfaces em0 unit 0 family inet address 192.168.0.101/24 
\# デフォルトのDHCP設定の削除
ex) delete interfaces em0 unit 0 family inet dhcp


# 機器の設定
ステップ毎に設定を行う。

## 1.インターフェースへのIPアドレスの設定

Spine-2, Leaf-2～3については適宜修正する。

#### Spine-1
set interfaces xe-0/0/0 unit 0 family inet address 192.168.0.254/24
set interfaces xe-0/0/1 unit 0 family inet address 192.168.10.254/24
set interfaces xe-0/0/2 unit 0 family inet address 192.168.20.254/24
set interfaces lo0 unit 0 family inet address 10.10.100.10/32

### Leaf-1
set interfaces xe-0/0/0 unit 0 family inet address 192.168.0.1/24
set interfaces xe-0/0/1 unit 0 family inet address 192.168.100.1/24
set interfaces lo0 unit 0 family inet address 10.10.10.10/32


## 2.ループバックへのStaticルート設定

### Spine-1
set routing-options static route 10.10.10.10/32 next-hop 192.168.0.1
set routing-options static route 10.10.10.20/32 next-hop 192.168.10.2
set routing-options static route 10.10.10.30/32 next-hop 192.168.20.3


### Spine-2

set routing-options static route 10.10.100.10/32 next-hop 192.168.0.254
set routing-options static route 10.10.200.10/32 next-hop 192.168.100.253


## 3.BGPルートの設定
設定数が多いため、BGPをグルーピングして設定する。

eBGPによるLoopBack同士での通信となるため、TTLがデフォルトの1のままではLoopBackへと届かない。以下の設定を行う。
・ルータIDの設定
・eBGPの明示的な指定
・TTLを2以上に変更(今回は2とする)
・ソースIPをLoopbackのIPに変更

### Spine-1
set routing-options autonomous-system 65100
set protocols bgp group underlay neighbor 10.10.10.10 peer-as 65010
set protocols bgp group underlay neighbor 10.10.10.20 peer-as 65020
set protocols bgp group underlay neighbor 10.10.10.30 peer-as 65030

set routing-options router-id 10.10.100.10
set protocols bgp group underlay type external
set protocols bgp group underlay multihop ttl 2
set protocols bgp group underlay local-address 10.10.100.10


### Leaf-1
set routing-options autonomous-system 65010
set protocols bgp group underlay neighbor 10.10.100.10 peer-as 65100
set protocols bgp group underlay neighbor 10.10.200.10 peer-as 65200

set routing-options router-id 10.10.10.10
set protocols bgp group underlay type external
set protocols bgp group underlay multihop ttl 2
set protocols bgp group underlay local-address 10.10.10.10



# 通信確認
root@Spine-1> show bgp summary
Threading mode: BGP I/O
Groups: 1 Peers: 3 Down peers: 0
Table          Tot Paths  Act Paths Suppressed    History Damp State    Pending inet.0
                       0          0          0          0          0          0
Peer                     AS      InPkt     OutPkt    OutQ   Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped...
10.10.10.10           65010       2850       2849       0       1    21:24:21 **Establ**   inet.0: 0/0/0/0
10.10.10.20           65020       2795       2793       0       0    20:59:39 **Establ**  inet.0: 0/0/0/0
10.10.10.30           65030        126        124       0       0       56:00 **Establ**  inet.0: 0/0/0/0

LeafのLoopback IPアドレスとEstablishedされていることを確認


# 最後に
UnderLayの目的は各機器のLoopBackを広報するために必要となので、BGPでなくOSPFでも問題はない。
…問題はないのだが、Spine数・Leaf数共に膨大になる場合、
OSPFでは集約に時間が掛かる可能性を考慮しBGPを使用したほうがいいのかも。


## 参考
https://www.juniper.net/documentation/jp/ja/software/nce/sg-005-data-center-fabric/topics/task/ip-fabric-underlay-cloud-dc-configuring.html

https://community.juniper.net/discussion/evpn-vxlan-on-vqfx-eve-ng-lab