/
カテゴリー

問題文

問題文は以下の通りでした。

AS65000、AS65001、AS65002に所属するルータを3つ作成し、これらのルータすべてからフルルートをAS65010宛てに流した。
しかし、なぜかAS65010に所属するルータで経路を受け取れない。経路を受け取れない原因を詳しくわかる範囲で説明してください。

初期状態とゴール

初期状態

BGPから経路を受け取れない

終了状態

終了状態は採点には影響しません。

解説

メモリ不足による原因で、vyosのBGPプロセス全体が停止し経路を受け取ることが出来なくなります。。
解決方法としては、ルータ側のメモリを増やすことで解決する問題です。
/var/log/messageを見ると

Sep  3 17:02:41 vyos kernel: [  497.957860] oom-kill:constraint=CONSTRAINT_NONE,nodemask=(null),cpuset=/,mems_allowed=0,global_oom,task_memcg=/system.slice/vyos-router.service,task=bgpd,pid=872,uid=110
Sep  3 17:02:41 vyos kernel: [  497.957951] Out of memory: Killed process 872 (bgpd) total-vm:948964kB, anon-rss:804420kB, file-rss:1596kB, shmem-rss:0kB, UID:110 pgtables:1704kB oom_score_adj:0

となっており、BGPプロセスがメモリ不足で止まっていることがわかります。
あまりにも外部から、経路広告されるとメモリがオーバーフローすることによりこのような現象が発生します。

解説は以上です。

採点基準

  1. BGPのデーモンが停止してる: 30%
    • 最初はメモリオーバーフローを書いているかいないかの0か100でしたがそれでは差が出すぎるためこの項目で採点基準を緩くしました。
  2. 経路が多すぎて、メモリがオーバーフローしてる: 70%
    • こちらが本来の想定解答です。

講評

解答について

想定していたよりも問題が解けなかったチームが多いように感じました。

  • BGPの設定が抜けていた
  • TCPのコネクションが張れていないので、対向のルータ側の設定がおかしい

という回答のチームが多く、本質であるメモリのオーバーフローに関する説明が少なかったです。

終わりに

これを機にL1からネットワークに触れてほしいと思います!!