ICTSC2025 本戦 問題解説: [7256] SSR

概要

L2VPNをEVPN over SRv6のPoint-to-Point接続に構成変更しろと上からのお達しがきたので作業をしています。構成変更の作業終了後に通信が通らなくなってしまいました。 通信が繋がらない原因を特定し、EVPN over SRv6のL2VPNで通信ができるようにしてください。
topology

制約

  • IS-ISのエリアを変更してはならない
  • データプレーンはSRv6を使用すること
  • Containerlabを再展開してもpingが通ること

初期状態

  • EVPN over SRv6のL2VPNで通信が行えない
user@SV-01:~$ ping 100.100.100.2
PING 100.100.100.2 (100.100.100.2) from 100.100.100.1 : 56(84) bytes of data.
^C
--- 100.100.100.2 ping statistics ---
13 packets transmitted, 0 received, 100% packet loss, time 12316ms

終了状態

  • EVPN over SRv6のL2VPNで通信が行える
user@SV-01#ping 100.100.100.2 source-address 100.100.100.1
PING 100.100.100.2 (100.100.100.2) from 100.100.100.1 : 56(84) bytes of data.
64 bytes from 100.100.100.2: icmp_seq=1 ttl=64 time=1.08 ms
64 bytes from 100.100.100.2: icmp_seq=2 ttl=64 time=0.970 ms
64 bytes from 100.100.100.2: icmp_seq=3 ttl=64 time=1.36 ms
64 bytes from 100.100.100.2: icmp_seq=4 ttl=64 time=0.946 ms
^C
--- 100.100.100.2 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 0.946/1.090/1.363/0.165 ms

解説

今回の問題では、EVPN over SRv6のL2VPNを構成する上で複数の設定ミスが重なっており、それぞれが通信不能の原因となっていました。

原因1: IS-ISのlevelの不一致

RT-01はis-type level-1、RT-02はis-type level-2-onlyと、IS-ISのlevelが異なる設定になっていました。IS-ISではlevelが一致しないルータ同士はadjacencyを確立できないため、iBGPのためのloopbackへの経路情報が交換できない状態でした。制約としてIS-ISのエリアを変更できないため、RT-02をlevel-1に変更し、RT-01と合わせることで解決できます。(RT-01をlevel-2-onlyにしても良いですが、同じエリアIDを持つためにRT-02をlevel-1にすることが望ましいです。)
また、RT-01のIS-ISインターフェイスにpoint-to-pointの設定が入っており、IS-ISのnetwork typeは両端で一致している必要があります。RT-01のpoint-to-pointの設定を削除することで、RT-02側との整合性が取れるようになります。(RT-02の方にpoint-to-pointの設定を入れても良いです。)

原因2: l2vpnのinterfaceがサブインターフェイスになっていない

RT-01/RT-02のl2vpn設定で指定しているインターフェイスがGigabitEthernet0/0/0/2になっていました。

l2vpn
 xconnect group EVPN
  p2p EVPN
   interface GigabitEthernet0/0/0/2

SV-01/SV-02とはdot1qタグ付きのトランクで接続されているため、MACアドレスを正しく広報するためにはサブインターフェイスであるGigabitEthernet0/0/0/2.100を指定する必要があります。

原因3: EVPNのneighbor設定にlocatorが指定されていない

RT-01/RT-02のl2vpn evpn neighborの設定で、使用するSRv6 locatorが指定されていませんでした。locatorを指定しないとどのlocatorを使用すればよいかが不明なため、SRv6でのカプセル化が行えません。neighborの設定にlocator ictscを追加することで解消されます。

evpn
 segment-routing srv6
  locator ictsc

以上の設定変更をすることで、EVPN over SRv6が正しく設定されて、SV-01からSV-02へpingが通るようになります。

採点基準

  • IS-IS neighborがUPしていること 100点
  • EVPN over SRv6が正しく設定されていること 100点
  • SV-01からSV-02へEVPN over SRv6のL2VPN経由でpingが通ること 100点

講評

今回の問題は本戦問題の中で唯一Containerlabを使用した問題でした。CiscoのIOS-XRをコンテナとして動かすことができるXRdを使用しており、普段なかなか触れる機会のない機器を体験できる問題となっていました。
作問のきっかけは、作問者がSRv6を勉強していてL2VPNの設定方法を調べていた際に実際に遭遇したトラブルです。自分が詰まった経験をそのまま問題に落とし込みました。
問題を開いた瞬間にSRv6という文字を見て尻込みしたチームもいたかと思います。しかし、多くのチームが挑戦してくれていたのは、AIを活用したりネット上の設定例を参考にしてくれたからかなと感じています。この問題をきっかけに、手軽に検証環境を構築できるContainerlabや、SRv6という技術に興味を持ってもらえれば幸いです。