はじめに
2024年1月15日~18日(JANOG51の会期は1/17~1/19)に行われたJANOG53 NETCONで出題された現地問題4の問題解説です。
問題
部長:今度、本社と地方支社を結ぶコアネットワークの更新にあたり、SRv6を導入することになったのでよろしく
部長:ちゃんと冗長化できているかのテストよろしく
部下A:ひとまず設定したもののちゃんと動いているのか・・・??
部下B:本社側のルータから支社のルータにping打ってるんですが、うまく通信できてないですね
部下B:今回は、L2VPN(evpn)を使っているのですが、支社においている機械と疎通できていません
部下B:支社同士は疎通確認できているようです。
部下A:そうなると、本社側ルータの設定に問題があるのか・・・
部下A:SIDの広報はBGPを使ってるよね
部下B:SIDが生成されているか、広報されているか確認した方がよさそうですね。
達成条件
PC01からPC02へpingが通ること(deadmanを使った監視をしているので、監視項目がグリーンになること)
FX2のGi1/1/1.500のケーブルを抜線しても通信ができること
制約
Config変更はFX2のみ
SIDの広報にはBGPを使う
必ずSRv6トンネルを使ったL2VPN接続とする
問題解説
SRv6ではSIDという識別子を、サービス(今回だとL3VPNとL2VPN、isis)ごとに生成し、このSIDを使って経路制御を行います。SIDはBGPを使ってネイバーを張っているルータへ広報されます。
今回のconfigを見ると、まずBGPのneigborのアドレスが間違っています。
IPv6を使っているので、わかりにくいですが、対向側のルータのネイバーアドレスはfc00:3001:11ではなく、fc00:3001::11です。IPv6の表記は見にくいので注意が必要です。
このTypoはやりがちなので注意が必要です。
F220EX-3と接続しているGi1/1/1.400IFがshutdownされている
IFがShutdownされているためGi1/1/1.400側のケーブルを抜くと通信できなくなります。
EVI1にlocatorの割り当てをしていない
L2VPNの設定の中にsegment-routing srv6 locator 1を設定して、locator 1でSIDを生成するように設定を入れる必要があります。
L3VPNの場合も同様にL3VPNのconfigの中でlocator 1でSIDを生成するように設定を入れる必要があります(今回は設定済み)
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しないと変更した設定が反映されません。