ICTSC2025 本戦 問題解説: [3962] スクリーンの向こう側

問題文

概要

あなたはネットワーク管理者として、VyOSルータ vyos01 の初期設定を行う必要があります。

vyos01 にはネットワークインターフェースがまだ設定されておらず、SSH等によるリモートアクセスはできません。唯一のアクセス手段は、隣接する host01 から接続するコンソールアクセスです。

host01 のシリアルポート /dev/ttyS0 は vyos01 のシリアルポートに接続されています。

しかし、host01 から sudo screen /dev/ttyS0 コマンドを実行し、接続を試みたところ、正常に vyos01 のコンソールを表示することができませんでした。

原因を調査し、host01 から vyos01 のコンソールを正常に表示できるようにしてください。

制約

  • 再展開不可

初期状態

  • host01sudo screen /dev/ttyS0 を実行しても、vyos01 のコンソールが正常に表示できない

終了状態

  • host01sudo screen /dev/ttyS0 を実行すると、vyos01 のコンソールが正常に表示できる
  • vyos01 にログイン後、show version を実行してバージョン情報が表示できる

解説

host01 から screen /dev/ttyS0 で vyos01 に接続しようとしても、正常にコンソールが表示されない原因は、host01 側で serial-[email protected] が有効になっていることにある。

このサービスは、シリアルポート /dev/ttyS0 上で getty(ログインプロンプト)を起動するもので、host01 自身のログインプロンプトやカーネルメッセージが ttyS0 に出力される。その結果、同じ ttyS0 を使って vyos01 のシリアルコンソールに接続しようとしても、host01 の getty 出力と vyos01 側の出力が競合・混在し、正常な表示ができない。

以下のコマンドで getty を停止・無効化することで、ttyS0 が解放され、screen 等のシリアル通信ソフトで vyos01 のコンソールに正常にアクセスできるようになる。

sudo systemctl stop [email protected]
sudo systemctl disable [email protected]

その後、以下のコマンドで vyos01 のコンソールに接続できることを確認する。

screen /dev/ttyS0

採点基準

  • host01 から (sudo screen /dev/ttyS0 で) vyos01 にログインし、show version コマンドを実行してバージョン情報が正常に取得できる: 50%
  • 報告書にプロセス競合が原因であることが記載されている: 50%