JANOG57 NETCON Level3-1 問題解説
問題文

あなたはEVPN/VXLANの勉強を始めた学生です。ようやく設定を完了して、SV-01からSV-02への通信確認をしようとすると繋がらないことが確認できました。
原因を特定して、SV-01からSV-02へpingが通ることを確認してください。
達成条件
- SV-01からSV-02に対して通信ができること。
SV-01:~# ping -c 3 192.168.10.2
PING 192.168.10.2 (192.168.10.2) 56(84) bytes of data.
64 bytes from 192.168.10.2: icmp_seq=1 ttl=64 time=4.38 ms
64 bytes from 192.168.10.2: icmp_seq=2 ttl=64 time=4.65 ms
64 bytes from 192.168.10.2: icmp_seq=3 ttl=64 time=3.94 ms
--- 192.168.10.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 3.935/4.320/4.652/0.295 ms
制約
- Static Routeを設定するのは禁止です。
解説
SV-02へ繋がらない原因は、3つあります。
1つ目は、RT-S-01が広報しているアドレスが間違っている。
2つ目は、RT-L-01,02にebgp-multihopの設定を入れていない。
3つ目は、send-community extendedの設定を入れていない。
1つ目の問題は、show bgp summaryによるUNDERLAYのBGPピアが上がっているのかとshow bgp evpn summaryによるOVERLAYのBGPピアが上がっているのかを確認することによってわかると思います。
RT-S-01#show ip bgp summary
BGP summary information for VRF default
Router identifier 10.1.254.11, local AS number 65100
Neighbor Status Codes: m - Under maintenance
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc PfxAdv
fe80::a8c1:abff:fe40:7e3f%Et2 4 65202 35 35 0 0 00:26:02 Estab 1 1 1
fe80::a8c1:abff:fea3:7b01%Et1 4 65201 35 35 0 0 00:26:02 Estab 1 1 1
UNDERLAYのBGPのピアに関してはちゃんと上がっていますね。
RT-S-01#show bgp evpn summary
BGP summary information for VRF default
Router identifier 10.1.254.11, local AS number 65100
Neighbor Status Codes: m - Under maintenance
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc PfxAdv
OVERLAYのBGPピアは上がっていないようです。
原因を調査していきたいと思います。show runで該当する設定を見ていきたいと思います。
router bgp 65100
router-id 10.1.254.11
no bgp default ipv4-unicast
bgp default ipv4-unicast transport ipv6
bgp listen range 10.1.254.0/24 peer-group EVPN peer-filter ALLOW-ASN
neighbor EVPN peer group
neighbor EVPN update-source Loopback0
neighbor EVPN ebgp-multihop
neighbor EVPN send-community extended
neighbor LEAF peer group
neighbor LEAF bfd
neighbor interface Et1-2 peer-group LEAF peer-filter ALLOW-ASN
!
address-family evpn
neighbor EVPN activate
!
address-family ipv4
neighbor LEAF activate
neighbor LEAF route-map ACCEPT_PREFIX_LOOPBACK in
neighbor LEAF route-map ACCEPT_PREFIX_LOOPBACK out
neighbor LEAF next-hop address-family ipv6 originate
network 10.1.255.11/32
!
OVERLAYの部分はpeer grouとしてEVPNで設定されているみたいです。加えてLoopbackでピアをあげているみたいですね。他のルータのLoopbackアドレスで通信できるかどうかを確かめてみましょう。
RT-S-01#ping 10.1.254.21 source Loopback 0
PING 10.1.254.21 (10.1.254.21) from 10.1.254.11 : 72(100) bytes of data.
--- 10.1.254.21 ping statistics ---
5 packets transmitted, 0 received, 100% packet loss, time 40ms
繋がらなかったですね。
RT-S-01#show ip route bgp
B E 10.1.254.21/32 [200/0]
via fe80::a8c1:abff:fea3:7b01, Ethernet1
B E 10.1.254.22/32 [200/0]
via fe80::a8c1:abff:fe40:7e3f, Ethernet2
RT-L-01#show ip route bgp
B E 10.1.254.22/32 [200/0]
via fe80::a8c1:abff:fef0:b889, Ethernet1
受け取っている経路を見てみると他のルータのLoopbackアドレスは受け取れているみたいです。他のルータの受け取っている経路を見てみるとRT-S-01のLoopbackアドレスについては受け取っていないことがわかると思います。もう一度設定を見て、Loopbackアドレスが広報されるようにしましょう。
!
interface Loopback0
ip address 10.1.254.11/32
!
ip prefix-list PREFIX_LOOPBACK seq 5 permit 10.1.254.0/24 ge 32
!
router bgp 65100
router-id 10.1.254.11
no bgp default ipv4-unicast
bgp default ipv4-unicast transport ipv6
bgp listen range 10.1.254.0/24 peer-group EVPN peer-filter ALLOW-ASN
neighbor EVPN peer group
neighbor EVPN update-source Loopback0
neighbor EVPN ebgp-multihop
neighbor EVPN send-community extended
neighbor LEAF peer group
neighbor LEAF bfd
neighbor interface Et1-2 peer-group LEAF peer-filter ALLOW-ASN
!
address-family evpn
neighbor EVPN activate
!
address-family ipv4
neighbor LEAF activate
neighbor LEAF route-map ACCEPT_PREFIX_LOOPBACK in
neighbor LEAF route-map ACCEPT_PREFIX_LOOPBACK out
neighbor LEAF next-hop address-family ipv6 originate
network 10.1.255.11/32
!
グッと睨むとroute-mapが正しくないのかなと思いますが、network 10.1.255.11/32の方が間違いで正しいLoopbackアドレスは10.1.254.11/32なのでアドレスを書き換えるとLoopbackアドレスが広報されるようになり、OVERLAYのBGPピアも上がるようになります。
- network 10.1.255.11/32
+ network 10.1.254.11/32
RT-S-01#ping 10.1.254.21 source Loopback 0
PING 10.1.254.21 (10.1.254.21) from 10.1.254.11 : 72(100) bytes of data.
80 bytes from 10.1.254.21: icmp_seq=1 ttl=65 time=1.54 ms
80 bytes from 10.1.254.21: icmp_seq=2 ttl=65 time=0.617 ms
80 bytes from 10.1.254.21: icmp_seq=3 ttl=65 time=0.528 ms
80 bytes from 10.1.254.21: icmp_seq=4 ttl=65 time=0.537 ms
80 bytes from 10.1.254.21: icmp_seq=5 ttl=65 time=0.522 ms
--- 10.1.254.21 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 5ms
rtt min/avg/max/mdev = 0.522/0.748/1.537/0.395 ms, ipg/ewma 1.251/1.127 ms
Loopbackアドレス同士で通信ができるようになりましたね
RT-S-01#show bgp evpn summary
BGP summary information for VRF default
Router identifier 10.1.254.11, local AS number 65100
Neighbor Status Codes: m - Under maintenance
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc PfxAdv
しかし、BGPのピアが上がってきてないみたいです。対向の機器についても見に行ってみようと思います。
RT-L-01#show bgp evpn summary
BGP summary information for VRF default
Router identifier 10.1.254.21, local AS number 65201
Neighbor Status Codes: m - Under maintenance
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc PfxAdv
10.1.254.11 4 65100 0 0 0 0 01:14:36 Idle(NoIf)
状態がIdle(NoIf)となっていますね。原因としては、物理インターフェイスがダウンしているのか複数ホップ離れたLoopbackアドレスかルータ間でeBGPピアを張ろうとしているのかのどちらかです。今回に関してはLoopbackアドレスでeBGPを張ろうとしている方が該当しています。解決策としては、ebgp-multihopを設定することです。
RT-S-01の方には設定されているようなので、RT-L-01,02について設定の追加を行なっていこうと思います。
RT-L-01#conf t
RT-L-01(config)#router bgp 65201
RT-L-01(config-router-bgp)#neighbor EVPN ebgp-multihop
RT-S-01#show bgp evpn summary
BGP summary information for VRF default
Router identifier 10.1.254.11, local AS number 65100
Neighbor Status Codes: m - Under maintenance
Neighbor V AS MsgRcvd MsgSent InQ OutQ Up/Down State PfxRcd PfxAcc PfxAdv
10.1.254.21 4 65201 5 5 0 0 00:00:30 Estab 1 1 1
10.1.254.22 4 65202 5 5 0 0 00:00:05 Estab 1 1 1
設定の投入後、EVPNのBGPピアが上がっていることが確認できました。これでSV-01とSV-02でEVPN/VXLANによるL2VPNができているのか確認してみましょう。
SV-01:~# ping 192.168.10.2
PING 192.168.10.2 (192.168.10.2) 56(84) bytes of data.
From 192.168.10.1 icmp_seq=1 Destination Host Unreachable
From 192.168.10.1 icmp_seq=2 Destination Host Unreachable
From 192.168.10.1 icmp_seq=3 Destination Host Unreachable
^C
--- 192.168.10.2 ping statistics ---
4 packets transmitted, 0 received, +3 errors, 100% packet loss, time 3065ms
pipe 3
まだ繋がりませんね。EVPNのBGPピアは上がっているはずなので経路を正しく受け取っているのか確認してみましょう。
RT-S-01#show bgp evpn detail
BGP routing table entry for imet 10.1.254.21, Route Distinguisher: 10.1.254.21:1010
Paths: 1 available
65201
10.1.254.21 from 10.1.254.21 (10.1.254.21)
Origin IGP, metric -, localpref 100, weight 0, tag 0, valid, external, best
+ Extended Community: Route-Target-AS:10:1010 TunnelEncap:tunnelTypeVxlan
VNI: 1010
PMSI Tunnel: Ingress Replication, MPLS Label: 1010, Leaf Information Required: false, Tunnel ID: 10.1.254.21
RT-L-01#show bgp evpn detail
BGP routing table entry for imet 10.1.254.21, Route Distinguisher: 10.1.254.21:1010
Paths: 1 available
Local
- from - (0.0.0.0)
Origin IGP, metric -, localpref -, weight 0, tag 0, valid, local, best
+ Extended Community: Route-Target-AS:10:1010 TunnelEncap:tunnelTypeVxlan
VNI: 1010
PMSI Tunnel: Ingress Replication, MPLS Label: 1010, Leaf Information Required: false, Tunnel ID: 10.1.254.21
RT-L-02#show bgp evpn detail
BGP routing table entry for imet 10.1.254.21, Route Distinguisher: 10.1.254.21:1010
Paths: 1 available
65100 65201
10.1.254.21 from 10.1.254.11 (10.1.254.11)
Origin IGP, metric -, localpref 100, weight 0, tag 0, valid, external, best
-
VNI: 1010
PMSI Tunnel: Ingress Replication, MPLS Label: 1010, Leaf Information Required: false, Tunnel ID: 10.1.254.21
少しわかりやすいようにハイライトしていますが、同じ経路情報に対してExtended CommunityによるRoute Targetの情報がRT-L-02に届いていないようです。この経路はRT-L-01から送信されている経路なのでRT-S-01までは届いているみたいですが、RT-L-02まで届いていないことがわかります。このExtended Communityを送信できるようになるにはsend-community extendedの設定がRT-S-01に入っている必要があります。
RT-S-01のコンフィグを見てみるとsend-community extendedの設定が予想通り入っていなかったので、設定します。
router bgp 65100
router-id 10.1.254.11
no bgp default ipv4-unicast
bgp default ipv4-unicast transport ipv6
bgp listen range 10.1.254.0/24 peer-group EVPN peer-filter ALLOW-ASN
neighbor EVPN peer group
neighbor EVPN update-source Loopback0
neighbor EVPN ebgp-multihop
+ neighbor EVPN send-community extended
neighbor LEAF peer group
neighbor LEAF bfd
neighbor interface Et1-2 peer-group LEAF peer-filter ALLOW-ASN
!
設定投入後、経路を受け取れていなかったRT-L-02をもう一度確認してみます。
RT-L-02#show bgp evpn detail
BGP routing table information for VRF default
Router identifier 10.1.254.22, local AS number 65202
BGP routing table entry for imet 10.1.254.21, Route Distinguisher: 10.1.254.21:1010
Paths: 1 available
65100 65201
10.1.254.21 from 10.1.254.11 (10.1.254.11)
Origin IGP, metric -, localpref 100, weight 0, tag 0, valid, external, best
+ Extended Community: Route-Target-AS:10:1010 TunnelEncap:tunnelTypeVxlan
VNI: 1010
PMSI Tunnel: Ingress Replication, MPLS Label: 1010, Leaf Information Required: false, Tunnel ID: 10.1.254.21
Extended Communityを受け取っていますね。それではSV-01とSV-02の間でpingが通るのか確認しましょう。
SV-01:~# ping -c 3 192.168.10.2
PING 192.168.10.2 (192.168.10.2) 56(84) bytes of data.
64 bytes from 192.168.10.2: icmp_seq=1 ttl=64 time=12.5 ms
64 bytes from 192.168.10.2: icmp_seq=2 ttl=64 time=3.83 ms
64 bytes from 192.168.10.2: icmp_seq=3 ttl=64 time=3.34 ms
--- 192.168.10.2 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 3.341/6.556/12.495/4.203 ms
ちゃんと繋がることを確認できたので以上でEVPN/VXLANの環境が構築できました。
Arista EOSでのEVPN/VXLAN環境の基本的な設定例のリンクをおいておきます。
Discussion