ICTSC2025 本戦 問題解説: [3962] スクリーンの向こう側
問題文
概要
あなたはネットワーク管理者として、VyOSルータ vyos01 の初期設定を行う必要があります。
vyos01 にはネットワークインターフェースがまだ設定されておらず、SSH等によるリモートアクセスはできません。唯一のアクセス手段は、隣接する host01 から接続するコンソールアクセスです。
host01 のシリアルポート /dev/ttyS0 は vyos01 のシリアルポートに接続されています。
しかし、host01 から sudo screen /dev/ttyS0 コマンドを実行し、接続を試みたところ、正常に vyos01 のコンソールを表示することができませんでした。
原因を調査し、host01 から vyos01 のコンソールを正常に表示できるようにしてください。
制約
- 再展開不可
初期状態
host01でsudo screen /dev/ttyS0を実行しても、vyos01のコンソールが正常に表示できない
終了状態
host01でsudo 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%