🌐

JANOG55 NETCON Level2-5 問題解説

2025/01/28に公開

問題文


あなたは新入社員です。OSPFとBGPについて勉強をしようと環境を構築してみました。
しかし、SV-01 から SV-02に対してPingが通りません。Routerの設定やOSPF,BGPの状態を確認して、SV-01からSV-02へPingが通るようにしてください。

RT-03はFRRを利用しており、vtyshでCLIに入ることができます。

bash-5.1# vtysh
Hello, this is FRRouting (version 8.4.1_git).
Copyright 1996-2005 Kunihiro Ishiguro, et al.
 
RT-03#

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
RT-01はユーザモードのみで、設定変更することはできません。
ID: user
PW: user
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

達成条件

SV-01とSV-02の間でPingが通ること
RT-01とRT-02間のOSPFのNeighborが上がっていること
BGPで特定の経路のみが広報されていること

制約

Static Routeを設定するのは禁止です。
トポロジ図にある通りの特定の経路のみを広報してください。

解説

この問題では、2つの問題が起こっています。1つ目はRT-01とRT-02の間でのOSPFのNeighborが上がっておらず、ExstartとDownの状態を繰り返している。2つ目はRT-02とRT-03の間のeBGPでNeighborは上がっていますが、RT-03の方で経路の受信・広報と共にPolicyと表示されて、経路の受信・広報がされていない状態が起こっている。

まず1つ目の問題であるRT-01とRT-02の間でOSPFがFullになっていない問題を解消していきます。

  • 初期状態
RP/0/RP0/CPU0:RT-02#show ip ospf neighbor
Sat Jan 25 11:38:15.361 UTC
 
* Indicates MADJ interface
# Indicates Neighbor awaiting BFD session up
 
Neighbors for OSPF 1
 
Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1         0     EXSTART/  -           -        10.0.1.1        GigabitEthernet0/0/0/1
 
Total neighbor count: 1

解決方法としては、debug ip ospf 1 adjdebug ip ospf 1 eventsを設定し、OSPFの状態を確認します。そうすると、以下のようにMTUが異なり問題が起きていることがわかります。

OSPFでは、MTU値が異なるとFullになりません。[1]

そして対向のRT-01のインターフェイスのMTU値は2011で設定されているようです。

RP/0/RP0/CPU0:Jan 21 12:48:18.525 UTC: ospf[1035]:  Rcv DBD  from 1.1.1.1(10.0.1.1) on GigabitEthernet0/0/0/1 seq 0x68e49c34 opt 0x42 flag 0 len 52 mtu 2011 state EXSTART vrf default vrfid 0x60000000
RP/0/RP0/CPU0:Jan 21 12:48:18.525 UTC: ospf[1035]: Nbr 1.1.1.1 has larger interface MTU

RT-01の方では、設定の変更はできないのでRT-02の方の設定を修正していきます。
解決方法としては、2つあります。インターフェイスのMTU値を合わせる。もしくは、mtu ignoreの設定を入れることです。

解決方法1:MTU値を合わせる

interface GigabitEthernet0/0/0/1
 mtu 9000
 ipv4 mtu 2011
 ipv4 address 10.0.1.2 255.255.255.252

もしくは、

interface GigabitEthernet0/0/0/1
 mtu 2025
 ipv4 address 10.0.1.2 255.255.255.252

解決方法2:mtu ignoreの設定を入れる

router ospf 1
 router-id 2.2.2.2
 area 0
  interface Loopback0
   cost 1
  interface GigabitEthernet0/0/0/1
   cost 10
   network point-to-point
   mtu-ignore enable

のように設定を入れるとOSPFのStateがFullになり、1つ目の問題は解決です。

Neighbor ID     Pri   State           Dead Time   Address         Interface
1.1.1.1         0     FULL/  -        00:00:37    10.0.1.1        GigabitEthernet0/0/0/1
    Neighbor is up for 00:00:02
 
Total neighbor count: 1

次にRT-03で経路の受信・広報が出来ない問題の解決方法です。RT-03はFRRを利用しており、eBGPの際に経路の受信・広報と共にroute-mapの適用を行わないと出来ないようになっています[2]。これはFRRがRFC8212に則っているために起こります。加えて、特定の経路のみの広報を制約条件としていますので注意してください。

  • 初期状態
Neighbor        V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt Desc
10.0.255.1      4      65010        18        15        0    0    0 00:13:04     (Policy) (Policy) N/A
 
Total number of neighbors 1

解決方法はroute-mapを経路の受信・広報の両方に書く。もしくは、no ebgp-require-policyを行い、制約条件に引っかからないように広報する経路に対してフィルターをかけることです。

解決方法1: route-mapを経路の受信・広報の両方に適用する

RT-03# conf t
RT-03(config)# ip prefix-list AS65010 seq 5 permit 172.16.10.0/24
RT-03(config)# ip prefix-list AS65020 seq 5 permit 10.70.10.0/24
RT-03(config)# route-map AS65010-IN permit 5
RT-03(config-route-map)# match ip address prefix-list AS65010
RT-03(config-route-map)# exit
RT-03(config)# route-map AS65010-OUT permit 5
RT-03(config-route-map)# match ip address prefix-list AS65020
RT-03(config-route-map)# exit
RT-03(config)# router bgp 65020
RT-03(config-router)# address-family ipv4 unicast
RT-03(config-router-af)# neighbor AS65010 route-map AS65010-IN in
RT-03(config-router-af)# neighbor AS65010 route-map AS65010-OUT out

解決方法2: no bgp ebgp-requires-policyの適用と経路の広報に対して、route-mapを適用する

RT-03# conf t
RT-03(config)# ip prefix-list AS65020 seq 5 permit 10.70.10.0/24
RT-03(config)# route-map AS65010-OUT permit 5
RT-03(config-route-map)# match ip address prefix-list AS65020
RT-03(config-route-map)# exit
RT-03(config)# router bgp 65020
RT-03(config-router)# no bgp ebgp-requires-policy
RT-03(config-router)# address-family ipv4 unicast
RT-03(config-router-af)# neighbor AS65010 route-map AS65010-OUT out
RT-03(config-router-af)# end
RT-03# clear ip bgp *

以上のような設定を行うことで、RT-02とRT-03でBGPによる経路の交換が可能になりSV-01とSV02でのPingが通るようになります。

Neighbor        V         AS   MsgRcvd   MsgSent   TblVer  InQ OutQ  Up/Down State/PfxRcd   PfxSnt Desc
10.0.255.1      4      65010        22        23        0    0    0 00:15:36            1        1 N/A
 
Total number of neighbors 1
脚注
  1. OSPFのEXSTART状態
    https://www.cisco.com/c/ja_jp/support/docs/ip/open-shortest-path-first-ospf/13684-12.html ↩︎

  2. FRRでのRFC8212への対応
    https://docs.frrouting.org/en/latest/bgp.html#clicmd-bgp-ebgp-requires-policy ↩︎

Discussion