ネットワーク備忘録

アラフォーエンジニアのネットワーク系の備忘録。twitter:@deigo25374582

JUNOS_EVPN_L3gateway

これまでは、VXLAN&EVPNのL2間の通信をやってたので、今回はL3間の通信を実施

以下で構成で確認

f:id:klock_3rd:20190505180726p:plain

 

vQFX-v100・・・VLAN 100(100.0.0.0/24) 100.0.0.254(GW:100.0.0.1)
vQFX-v200・・・VLAN 200(200.0.0.0/24) 200.0.0.254(GW:200.0.0.1) 

vQFX-v100~vQFX-v200の通信を行う為に、vMX-Core1/2をGatewayとして折り返す。

UnderlayはeBGP(AS10,AS20,AS1~4)
OverlayはMP-iBGPでEVPNの情報(AS100)

 

<Underlay>

eBGPのConfigはこんな感じで全台共通

set protocols bgp group UNDERLAY type external
set protocols bgp group UNDERLAY hold-time 10
set protocols bgp group UNDERLAY export to_BGP
set protocols bgp group UNDERLAY multipath multiple-as
set protocols bgp group UNDERLAY neighbor x.x.x.x peer-as y

Underlayはこれくらいで留める。

 

<Overlay>

MP-iBGPのConfigもほぼ共通

set protocols bgp group OVERLAY type internal
set protocols bgp group OVERLAY local-address x.x.x.x
set protocols bgp group OVERLAY hold-time 10
set protocols bgp group OVERLAY family evpn signaling
set protocols bgp group OVERLAY cluster 0.0.0.1
set protocols bgp group OVERLAY local-as 100
set protocols bgp group OVERLAY neighbor y.y.y.y

違うのはiBGPなので、vMX01/02をRoute  Reflectorにしたくらい。

そしてVLANとVNIの対比は数字は今回揃えた

set vlans v100 vlan-id 100
set vlans v100 vxlan vni 100
set vlans v100 vxlan ingress-node-replication
set vlans v200 vlan-id 200
set vlans v200 vxlan vni 200
set vlans v200 vxlan ingress-node-replication

Extend communityで伝える VNIとVRFの構成は・・・

set policy-options community VRF-100 members target:1:100
set policy-options community VRF-200 members target:1:200
set policy-options community comm-leaf_esi members target:9999:9999

set policy-options policy-statement LEAF-IN term import_leaf_esi from community comm-leaf_esi
set policy-options policy-statement LEAF-IN term import_leaf_esi then accept
set policy-options policy-statement LEAF-IN term VNI100 from community VRF-100
set policy-options policy-statement LEAF-IN term VNI100 then accept
set policy-options policy-statement LEAF-IN term VNI200 from community VRF-200
set policy-options policy-statement LEAF-IN term VNI200 then accept

set switch-options vtep-source-interface lo0.0
set switch-options route-distinguisher x.x.x.x:1
set switch-options vrf-import LEAF-IN
set switch-options vrf-target target:9999:9999

「target:9999:9999」はQFXでは必須のcommunity。 RD値は今回はloopbackのIPを流用。

 

ここまでは、ほぼvMXと共通だが、EVPNの設定から微妙に異なる。
vQFXでは・・・

set protocols evpn vni-options vni 100 vrf-target export target:1:100
set protocols evpn vni-options vni 200 vrf-target export target:1:200
set protocols evpn encapsulation vxlan
set protocols evpn multicast-mode ingress-replication
set protocols evpn extended-vni-list 100
set protocols evpn extended-vni-list 200

vMXでは・・・こんな感じ

set routing-instances TENANT-VLAN100 vtep-source-interface lo0.0
set routing-instances TENANT-VLAN100 instance-type virtual-switch
set routing-instances TENANT-VLAN100 route-distinguisher 10.10.10.10:100
set routing-instances TENANT-VLAN100 vrf-import LEAF-IN
set routing-instances TENANT-VLAN100 vrf-target target:1:100
set routing-instances TENANT-VLAN100 protocols evpn encapsulation vxlan
set routing-instances TENANT-VLAN100 protocols evpn extended-vni-list 100
set routing-instances TENANT-VLAN100 protocols evpn multicast-mode ingress-replication
set routing-instances TENANT-VLAN100 bridge-domains bd100 vlan-id 100
set routing-instances TENANT-VLAN100 bridge-domains bd100 routing-interface irb.100
set routing-instances TENANT-VLAN100 bridge-domains bd100 vxlan vni 100
set routing-instances TENANT-VLAN100 bridge-domains bd100 vxlan ingress-node-replication
set routing-instances TENANT-VLAN100-L3 instance-type vrf
set routing-instances TENANT-VLAN100-L3 interface irb.100
set routing-instances TENANT-VLAN100-L3 route-distinguisher 1:1
set routing-instances TENANT-VLAN100-L3 vrf-import LEAF-IN
set routing-instances TENANT-VLAN100-L3 vrf-target target:1:100
set routing-instances TENANT-VLAN100-L3 routing-options auto-export

 

まず、各VNI毎に、Routing-InstanceのVirtualSwitchを作成。(TENANT-VLAN100)
そして、そこでevpnの設定を行う。(設定については緑字の箇所だけど、内容的にはQFXと同じはず。)

Bridge-domainについては、vMXでL2スイッチの機能を持たすための設定。
その後、Routing-InstanceでVRFを作成し、赤字の設定でVRF間のroute-leakで疎通可能

 

全台Configを書くので一旦ここまでで、実際の疎通確認

admin@vQFX-v100> ping 200.0.0.254
PING 200.0.0.254 (200.0.0.254): 56 data bytes
64 bytes from 200.0.0.254: icmp_seq=0 ttl=63 time=648.323 ms
64 bytes from 200.0.0.254: icmp_seq=1 ttl=63 time=556.563 ms

→問題ない。

まず、vQFX04のxe-0/0/1をダウンさせてみる。

64 bytes from 200.0.0.254: icmp_seq=21 ttl=63 time=406.039 ms
64 bytes from 200.0.0.254: icmp_seq=23 ttl=63 time=590.243 ms

→1パケ程度ロス

Traceで確認

admin@vQFX-v100> traceroute 200.0.0.254
traceroute to 200.0.0.254 (200.0.0.254), 30 hops max, 40 byte packets
1 100.0.0.2 (100.0.0.2) 280.991 ms 301.597 ms 400.296 ms
2 200.0.0.254 (200.0.0.254) 405.519 ms 501.363 ms 535.183 ms

→「100.0.0.2」を経由していることからvMX01経由とわかる。

 

この状態で、vQFX03の状態を確認

root@vQFX03> show evpn database
Instance: default-switch
VLAN DomainId MAC address    Active source         Timestamp    IP address
   100    00:00:5e:00:01:01 05:00:00:00:0a:00:00:00:64:00 May 05 08:37:02 100.0.0.1
~SNIP~

 

では、Pingを打ち続けた状態で、vMX01のIFをDisableにしてみる。

 

64 bytes from 200.0.0.254: icmp_seq=62 ttl=63 time=405.507 ms
64 bytes from 200.0.0.254: icmp_seq=64 ttl=63 time=261.972 ms

→1パケロス
(ただ、これは仮想でやっているので、正確なものかどうか自信がなし。)

root@vQFX03> show evpn database
Instance: default-switch
VLAN DomainId MAC address    Active source         Timestamp    IP address
   100    00:00:5e:00:01:01 05:00:00:00:14:00:00:00:64:00 May 05 08:57:14 100.0.0.1

~SNIP~

→Active Sourceの値が変わった。

 

各設定値をちゃんと見直ししないといけない(MTU等)けど一旦はここまで。

長くなったのでConfigは↓で

  

klock-3rd.hatenablog.com