JUNOS_EVPN_L3gateway
これまでは、VXLAN&EVPNのL2間の通信をやってたので、今回はL3間の通信を実施
以下で構成で確認
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:9999set 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 acceptset 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は↓で