JANOG53 NETCON 現地問題4　問題解説

# はじめに
2024年1月15日～18日（JANOG51の会期は1/17～1/19）に行われたJANOG53 NETCONで出題された現地問題4の問題解説です。

# 問題
![netcon.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/133769/d6f5b575-b65a-c901-0f8d-bc2594e6de1a.jpeg)

部長：今度、本社と地方支社を結ぶコアネットワークの更新にあたり、SRv6を導入することになったのでよろしく

部長：ちゃんと冗長化できているかのテストよろしく

部下A：ひとまず設定したもののちゃんと動いているのか・・・？？

部下B：本社側のルータから支社のルータにping打ってるんですが、うまく通信できてないですね

部下B：今回は、L2VPN（evpn）を使っているのですが、支社においている機械と疎通できていません

部下B：支社同士は疎通確認できているようです。

部下A：そうなると、本社側ルータの設定に問題があるのか・・・

部下A：SIDの広報はBGPを使ってるよね

部下B：SIDが生成されているか、広報されているか確認した方がよさそうですね。

:::note info
達成条件
PC01からPC02へpingが通ること(deadmanを使った監視をしているので、監視項目がグリーンになること）
FX2のGi1/1/1.500のケーブルを抜線しても通信ができること
:::

:::note info
制約
Config変更はFX2のみ
SIDの広報にはBGPを使う
必ずSRv6トンネルを使ったL2VPN接続とする
:::
# 問題解説

SRv6ではSIDという識別子を、サービス（今回だとL3VPNとL2VPN、isis）ごとに生成し、このSIDを使って経路制御を行います。SIDはBGPを使ってネイバーを張っているルータへ広報されます。

:::note warn
今回のconfigを見ると、まずBGPのneigborのアドレスが間違っています。
　IPv6を使っているので、わかりにくいですが、対向側のルータのネイバーアドレスはfc00:3001:11ではなく、fc00:3001::11です。IPv6の表記は見にくいので注意が必要です。
  このTypoはやりがちなので注意が必要です。
:::
:::note warn
F220EX-3と接続しているGi1/1/1.400IFがshutdownされている
　IFがShutdownされているためGi1/1/1.400側のケーブルを抜くと通信できなくなります。
:::
:::note warn
EVI1にlocatorの割り当てをしていない
　L2VPNの設定の中にsegment-routing srv6 locator 1を設定して、locator 1でSIDを生成するように設定を入れる必要があります。
　L3VPNの場合も同様にL3VPNのconfigの中でlocator 1でSIDを生成するように設定を入れる必要があります（今回は設定済み）
:::
:::note warn
EVI1のroute-targetに64521:21をimportする必要がある
　BGPで広報されている経路情報からAcceptする経路情報の設定を入れてやる必要があります。
　今回、F220EX-2とF220EX-3のL2VPNの経路情報（64521:22と64521:23）はimportされていますが、64521:11がimportされていないため、経路がわからず通信ができません。
:::

それでは実際にFX2の設定を見てみましょう。
どの部分の変更が必要か、←で必要な部分をさします

```
ip vrf VRF14　←L3VPNをこのVRFで行います
 rd 10.0.0.14:14
 route-target import 64521:11
 route-target import 64521:12
 route-target import 64521:13
 route-target import 64521:14
 route-target export 64521:14
 segment-routing srv6 locator 1
exit
!
evi EVI1　←L2VPN（ブリッジ）用
 rd 10.0.0.14:24
 　　←route-target import 64521:21がないとF220EX-1からBGPで広報されるSIDを受け取ることができません。
 route-target import 64521:22
 route-target import 64521:23
 route-target import 64521:24
 route-target export 64521:24
 　　←segment-routing srv6 locator 1と設定するとSRv6 locator "1"でL2VPNのSIDを生成します
exit
!
bridge-group 1004　←L2VPNのブリッジを設定
 evpn evi EVI1
exit
!
clock timezone JST 9
!
hostname fx2
!
interface GigaEthernet 1/1/1
 vlan-id 1
 bridge-group 1
 speed-duplex auto
exit
!
interface GigaEthernet 1/1/1.400
　shutdown　　　　　　　　　←ここにshutdownが入っていると障害時に経路切り替えできません。
 vlan-id 400
 channel-group 400
exit
!
interface GigaEthernet 1/1/1.500
 vlan-id 500
 channel-group 500
exit
!
interface GigaEthernet 1/1/9
 vlan-id 1004
 bridge-group 1004
exit
!
interface Loopback 100
 ipv6 address fc00:3001::14
 ipv6 router isis core
exit
!
interface Loopback 110
 ip vrf forwarding VRF14
 ip address 10.10.1.1
exit
!
interface Port-channel 400
 ipv6 enable
 ipv6 router isis core
 isis circuit-type level-2
 isis delay-metric 10
 isis hello-interval 1 level-2
 isis metric 100 level-2
 isis network point-to-point
exit
!
interface Port-channel 500
 ipv6 enable
 ipv6 router isis core
 isis circuit-type level-2
 isis delay-metric 10
 isis metric 100 level-2
 isis network point-to-point
 isis hello-interval 1 level-2
exit
!
interface Port-channel 2004
 ip vrf forwarding VRF14
exit
!
interface Tunnel 1
 tunnel mode srv6
exit
!
router bgp 64521
 bgp router-id 10.0.0.14
 bgp log-neighbor-changes
 no bgp default ipv4-unicast
 neighbor fc00:3001:11 remote-as 64521　←よくみるとneighborのアドレスが間違っています。
 neighbor fc00:3001:11 update-source loopback 100　←よくみるとneighborのアドレスが間違っています。
 neighbor fc00:3001::12 remote-as 64521
 neighbor fc00:3001::12 update-source loopback 100
 neighbor fc00:3001::13 remote-as 64521
 neighbor fc00:3001::13 update-source loopback 100
 !
 address-family vpnv4
  segment-routing srv6
  neighbor fc00:3001::11 activate
  neighbor fc00:3001::11 allowas-in 5
  neighbor fc00:3001::11 capability extended-nexthop-encoding
  neighbor fc00:3001::11 send-community both
  neighbor fc00:3001::12 activate
  neighbor fc00:3001::12 allowas-in 5
  neighbor fc00:3001::12 capability extended-nexthop-encoding
  neighbor fc00:3001::12 send-community both
  neighbor fc00:3001::13 activate
  neighbor fc00:3001::13 allowas-in 5
  neighbor fc00:3001::13 capability extended-nexthop-encoding
  neighbor fc00:3001::13 send-community both
 exit
 !
 address-family l2vpn evpn
  neighbor fc00:3001::11 activate
  neighbor fc00:3001::11 allowas-in 5
  neighbor fc00:3001::11 encap type srv6
  neighbor fc00:3001::11 send-community both
  neighbor fc00:3001::12 activate
  neighbor fc00:3001::12 allowas-in 5
  neighbor fc00:3001::12 encap type srv6
  neighbor fc00:3001::12 send-community both
  neighbor fc00:3001::13 activate
  neighbor fc00:3001::13 allowas-in 5
  neighbor fc00:3001::13 encap type srv6
  neighbor fc00:3001::13 send-community both
 exit
 !
 address-family ipv4 vrf VRF14
  redistribute connected
 exit
 !
 address-family ipv6 unicast
 exit
 !
exit
!
router isis core
 log-adjacency-changes
 is-type level-2
 metric-style wide
 net 49.0000.0000.0000.0014.00
 srv6 locator 1
 topology ipv6-unicast
exit
!
segment-routing srv6
 encapsulation source-address fc00:3001::14
 locator 1 fc00:ff01:14::/64
exit
!
end
```

なお、FX2の場合はconfig後に

```
FX2# commit
```
とcommitしないと変更した設定が反映されません。