JANOG50 NETCON 問題解説 Level2-1, Level2-5

Level2-1

問題文

デフォルトゲートウェイ冗長化すべくVRRPを導入したが,MasterのGi0/1に障害が発生した場合に経路が切り替わってくれないようです。この場合でも経路が切り替わるように設定をしてください。

確認方法

  • Clientから192.168.2.2にpingを打ち続ける
  • MasterのGi0/1をshutdownする
  • 経路が切り替わってpingが継続して届いていれば確認完了

解答・解説

オブジェクトトラッキングを設定する問題です。
初期状態はVRRPを有効にし,VIPとPriorityの設定をした状態です。MasterのPriorityを200,BackupのPriorityはデフォルト値(100)に設定しています。
この状態では,ダウンリンク側の障害に対しては経路が切り替わってくれますが,アップリンク側の障害には経路が切り替わってくれません。
そこでオブジェクトトラッキングの設定をしてあげることにより,アップリンク側に障害が発生した場合にダウンリンク側のPriorityを意図的に下げてあげます。これによりアップリンク側に障害が発生した場合でも経路が切り替わってくれます。
設定における注意点として,Backup側のPriorityはデフォルト値(100)でMaster側のPriorityは200なので,オブジェクトトラッキングによるdecrement値は100より大きくする必要があります。

!
hostname Master
!
track 1 interface GigabitEthernet0/1 line-protocol     ## 追加設定(1)
!
interface GigabitEthernet0/0
 ip address 191.168.1.2 255.255.255.0
 vrrp 1 ip 192.168.1.1
 vrrp 1 priority 200
 vrrp 1 track 1 decrement 150     ## 追加設定(2)
 no shutdown
!
interface GigabitEthernet0/1
 ip address 192.168.2.1 255.255.255.0
 no shutdown
!

Level2-5

問題文

iBGPフルメッシュを避けるためにBGPルートレフレクタを導入しました。(RR1,RR2)
しかしながらRouter1,Router2から10.200.1.0/24のネットワークにpingを打つと不安定な現象が見られました。
何が起きているのかを簡単に説明し,iBGPのピアを正しく設定してください。
なお,初期状態ではRouter2,Router3はRR1のクライアントで,Router1,Router4はRR2のクライアントです。また,RR1とRR2はiBGPピアを張っています。

参考:

解答・解説

ルートリフレクタに対するクライアントが不適切なため,Router1 <-> Router2でルーティングループが発生しています。
Router1はRR2とピアを張っているため,10.200.1.0/24への経路として10.100.255.4をBGPから学習しています。

Router1#sh ip route 10.200.1.2
Routing entry for 10.200.1.0/24
  Known via "bgp 100", distance 200, metric 0
  Tag 200, type internal
  Last update from 10.100.255.4 01:00:43 ago
  Routing Descriptor Blocks:
  * 10.100.255.4, from 10.100.255.22, 01:00:43 ago
      Route metric is 0, traffic share count is 1
      AS Hops 1
      Route tag 200
      MPLS label: none

IGPからは10.100.255.4への経路として10.100.5.2と10.100.1.1を学習し,マルチパスとして保持しています。
これはRouter2においても同様です。

Router1#sh ip route 10.100.255.4
Routing entry for 10.100.255.4/32
  Known via "ospf 1", distance 110, metric 4, type intra area
  Last update from 10.100.1.1 on GigabitEthernet0/1, 01:01:50 ago
  Routing Descriptor Blocks:
  * 10.100.5.2, from 10.100.255.4, 01:01:50 ago, via GigabitEthernet0/0
      Route metric is 4, traffic share count is 1
    10.100.1.1, from 10.100.255.4, 01:01:50 ago, via GigabitEthernet0/1
      Route metric is 4, traffic share count is 1

Router1で例えば10.200.1.2にpingを実行すると,まず初めに10.100.5.2か10.100.1.2が選択されます。ここで10.100.5.2が選択された場合,同様にRouter2でも10.100.5.1か10.100.2.1が選択されますが,さらにここで10.100.5.1が選択された場合,ルーティングループが発生します。
OSPFのマルチパスによってロードバランシングされているため,ループするパケットとしないパケットが発生しています。

Router1#ping 10.200.1.1 repeat 100
Type escape sequence to abort.
Sending 100, 100-byte ICMP Echos to 10.200.1.1, timeout is 2 seconds:
!!.!.!..!!.!.!..!!.!.!..!!.!.!..!!.!.!..!!.!.!..!!.!.!..!!.!.!..!!.!.!
..!!.!.!..!!.!.!..!!.!.!..!!.!

この現象は,Router1をRR1のクライアント,Router2をRR2のクライアントとすることで解決できます。

# Router1
router bgp 100
 bgp router-id 10.100.255.1
 neighbor 10.100.255.11 remote-as 100
 neighbor 10.100.255.11 update-source Loopback0
# Router2
router bgp 100
 bgp router-id 10.100.255.2
 neighbor 10.100.255.22 remote-as 100
 neighbor 10.100.255.22 update-source Loopback0
# RR1
router bgp 100
 bgp router-id 10.100.255.11
 neighbor 10.100.255.1 remote-as 100
 neighbor 10.100.255.1 update-source Loopback0
 neighbor 10.100.255.3 remote-as 100
 neighbor 10.100.255.3 update-source Loopback0
 neighbor 10.100.255.22 remote-as 100
 neighbor 10.100.255.22 update-source Loopback0
 !
 address-family ipv4
  neighbor 10.100.255.1 activate
  neighbor 10.100.255.1 route-reflector-client
  neighbor 10.100.255.3 activate
  neighbor 10.100.255.3 route-reflector-client
  neighbor 10.100.255.22 activate
 exit-address-family
!
# RR2
router bgp 100
 bgp router-id 10.100.255.22
 neighbor 10.100.255.2 remote-as 100
 neighbor 10.100.255.2 update-source Loopback0
 neighbor 10.100.255.4 remote-as 100
 neighbor 10.100.255.4 update-source Loopback0
 neighbor 10.100.255.11 remote-as 100
 neighbor 10.100.255.11 update-source Loopback0
 !
 address-family ipv4
  neighbor 10.100.255.2 activate
  neighbor 10.100.255.2 route-reflector-client
  neighbor 10.100.255.4 activate
  neighbor 10.100.255.4 route-reflector-client
  neighbor 10.100.255.11 activate
 exit-address-family
!

作問振り返り

リンクパススルー(LPT)

Level2-1作問後のフィードバックで,「物理配線だとMasterのGi0/1をShutdownすると対向であるBackupのGi0/1のLinkもDownするためPingは送くれなくなる」と指摘がありました。
今回は仮想環境でBridgeしているためそうはならないとのことなので,このまま出題しました。

ループが発生したりしなかったり

Level2-5問題を作問するにあたって,初めは安定してループを発生させるために,OSPF Multi-Path Maximumを1にすることで全てのパケットをRouter2へ向かわせようとしていました。
しかしながら,Router1で10.200.255.4へのNexthopとしてGi0/1(Router2側)が選択されてほしかったにも関わらず,Gi0/0(RR1側)が選択されてしまうことがあるという現象に見舞われました。
これは等コストなパスがあったとき,最初に追加されるパスがそのままベストパスになるために発生した現象でした。
フィードバックをいただき,Multi-Pathを2にすることで必ず一定数はRouter2へ向かうようになるため,安定したループを再現することができました。