複数のCisco機器へのコンソール接続をしなければならない状況で「コンソールサーバがあれば便利なのになぁ…」と思い、自宅に転がっていたRaspberry Piで擬似コンソールサーバを作成してみました。
今回は、「Raspberry Pi 3 Model B」 を使用します。このRaspberry Pi(以下、ラズパイ)には、デフォルトでwi-fi接続可能な無線LANアダプターが搭載されていますので、作業用PCとラズパイ間を無線接続させ使用します。
そうすると、ラックに搭載された複数のCisco機器とラズパイとをあらかじめコンソール接続しておけば、無線が届く範囲の離れた位置から作業用PCにて遠隔でラズパイへSSH接続し、コンソールにて各機器の設定をする、ということが可能になるわけですね。
(※検証環境等では、必ずしも機器のすぐ近くに作業用机を持っていけないことも多いと思いますので、そういった環境で無線接続可能なラズパイのコンソールサーバ化が効果を発揮すると思います。)
設定方法
ラズパイをコンソールサーバ化するにあたり、手順を以下に記載します。
- ラズパイの無線接続
- ターミナルエミュレータ(minicom)のインストール
- シリアルポートとパラメータのマッピング
- 機器へのコンソール接続
それでは早速、説明していきたいと思います。
1.ラズパイの無線接続
※本記事では、説明を割愛いたしますが、以下のターミナルエミュレータ(minicom)をインストールする際は、有線または無線のどちらかをインターネット接続した状態で作業した方が楽です。
2.ターミナルエミュレータ(minicom)のインストール
まずは、ターミナルエミュレータ(minicom)をラズパイへインストールしていきます。minicomは、シリアル通信を制御するためのソフトウェアになります。シリアルポート接続時の「TeraTerm」のような動きをしてくれます。
インストールは以下のコマンドで。
sudo apt-get install minicom
pi@raspberrypi ~ $ sudo apt-get install minicom
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libboost-atomic1.55.0 libboost-thread1.55.0 libqt4-dbus libqt5concurrent5 libqt5core5a libqt5dbus5 libqt5gui5 libqt5network5 libqt5opengl5
libqt5printsupport5 libqt5svg5 libqt5widgets5 libruby2.1 libscsynth1 libxcb-icccm4 libxcb-image0 libxcb-keysyms1 libxcb-randr0
libxcb-render-util0 libxkbcommon-x11-0 libyaml-0-2 qdbus qtchooser qttranslations5-l10n ruby ruby2.1 rubygems-integration
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
lrzsz
The following NEW packages will be installed:
lrzsz minicom
0 upgraded, 2 newly installed, 0 to remove and 97 not upgraded.
Need to get 332 kB of archives.
After this operation, 997 kB of additional disk space will be used.
Do you want to continue? [Y/n] Y
Get:1 http://mirrordirector.raspbian.org/raspbian/ jessie/main lrzsz armhf 0.12.21-7 [81.6 kB]
Get:2 http://mirrordirector.raspbian.org/raspbian/ jessie/main minicom armhf 2.7-1+deb8u1 [250 kB]
Fetched 332 kB in 1s (180 kB/s)
Selecting previously unselected package lrzsz.
(Reading database ... 108866 files and directories currently installed.)
Preparing to unpack .../lrzsz_0.12.21-7_armhf.deb ...
Unpacking lrzsz (0.12.21-7) ...
Selecting previously unselected package minicom.
Preparing to unpack .../minicom_2.7-1+deb8u1_armhf.deb ...
Unpacking minicom (2.7-1+deb8u1) ...
Processing triggers for man-db (2.7.5-1~bpo8+1) ...
Processing triggers for menu (2.1.47) ...
Setting up lrzsz (0.12.21-7) ...
Setting up minicom (2.7-1+deb8u1) ...
Processing triggers for menu (2.1.47) ...
pi@raspberrypi ~ $
3.シリアルポートとパラメータのマッピング
次は、シリアルポートとパラメータのマッピングをしていきます。内容としては、minicomで使うファイルに、対象のUSBコンソールケーブルIDや ボーレート等の各パラメータを記述していきます。ここで作成したファイルを利用することでコンソールログインが実施可能になります。
ファイル作成および記述内容は以下になります。
※”USB0”の部分は任意の値でOKです。
sudo nano /etc/minicom/minirc.USB0
pi@raspberrypi ~ $ cat /etc/minicom/minirc.USB0
pu port /dev/ttyUSB0
pu baudrate 9600
pu bits 8
pu parity N
pu stopbits 1
なお、”/dev/ttyUSB0”は、USBシリアルコンソールをラズパイに接続した状態で、以下のコマンドにて確認可能です。
pi@raspberrypi ~ $ ls -d /dev/* | grep ttyUSB
/dev/ttyUSB0
4.機器へのコンソール接続
これで準備は完了になりますので、いよいよ接続になります。接続のコマンドは以下になります。
minicom USB0
実行すると…
これでラズパイから機器へコンソール接続が可能になりました。なお、上記ではコンソールケーブルの先に、未設定のCisco機器が接続されています。
「Press CTRL-A Z for help on special keys」とあるので、Ctrl + A押下後、Zを押下すると、下記のようなメニューが出てきます。
なお、戻るときは、上記メニュー画面で”X”を押下します。