読者です 読者をやめる 読者になる 読者になる

らくがきちょう

なんとなく

OS X からシリアル接続(コンソール接続)するには

Cisco Network macOS

Cisco 等の本格的なネットワーク製品は初期アドレスや初期ユーザが無い場合が多く、SSHTELNET で接続することが出来ません。これらの製品を設定するにはシリアル接続(コンソール接続)が必須です。今回は OS X から Cisco 機器にシリアル接続してみます。

必要なもの

一般的な Cisco 機器にシリアル接続を行うには以下が必要です。

  1. USB / シリアル変換コネクタ
  2. ロールオーバーケーブル(※ たまに「Cisco ケーブル」と呼ぶ方もいらっしゃるようです)
  3. ターミナルアプリケーション

USB / シリアル変換コネクタを用意する

以前は OS X で利用出来る USB / シリアル変換コネクタが少なかったのですが、最近は大型家電店でも見かけるようになりました。対応 OS に「OS X」の記載があれば、どちらの製品でも大丈夫だと思います。私は昔からラトックシステム株式会社の「REX-USB60F」を使っています。ドライバーは製品ページからダウンロード出来ます。ドライバーのインストールに成功すれば、デバイスは /dev/cu.usbserial* として認識されるはずです。

ターミナルアプリケーションのインストール

OS X からシリアル接続出来るターミナルアプリケーションは幾つかありますが、私は「Jerminal」を使っています。以前はソースコードコンパイルしてインストールしていましたが、現在は Homebrew で簡単にインストール出来るようになっています。この記事時点のバージョン情報は以下でした(0.8096 から、もう更新されないかも知れません…)

$ brew info jerm
jerm: stable 0.8096
http://www.bsddiary.net/jerm/
/usr/local/Cellar/jerm/0.8096 (5 files, 64K) *
  Built from source
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/jerm.rb

Homebrew でインストールします。

$ brew install jerm

Jerminal でシリアル接続してみる

Jerminal には幾つかオプションを指定することが出来ます。代表的なものは以下の通りです。

-b [speed]
通信スピードを指定します。9600bps の場合は -b 9600 を指定します(デフォルトは 9600bps)。
-p [none|evenlodd]
パリティの有無を指定します。パリティ無しの場合は -pn を指定します(デフォルトは none)。
-d [7|8]
データビット長を指定します。8 ビットの場合は -d 8 を指定します(デフォルトは 8 ビット)。
-s [1|2|1.5]
ストップビットを指定します。ストップビットが 1 の場合は -s 1 を指定します(デフォルトは 1)
-f [none|x|hard]
フロー制御の有無を指定します。フロー制御無しの場合は -f none を指定します(デフォルトは none)。

実際に接続してみます。当然ですが、デフォルト値であればオプションは省略可能です。

$ jerm -b 9600 -p none -d 8 -s 1 -f none /dev/cu.usbserial-00001004

シリアル接続を切断する

シリアル接続すると Cisco 機器上で exit コマンド等を実行しても、接続は切れません。Jerminal の接続を終了したい場合は「Control + m」「~」「.」の順にキータイプします。

サーバモードで起動する

Jerminal をサーバモードで起動すると、Jerminal を起動している端末の TCP ポートへ、リモート端末からアクセスすることで、遠隔地からシリアル接続を行うことが出来ます。サーバモードで起動するには -D オプションを指定します。

-D
サーバモードで起動します。
-P
ポート番号を指定します(デフォルトは TCP/8086)
-4
IPv4 アドレスを利用します。
-6
IPv6 アドレスを利用します。

サーバモードでの実行例は以下のようになります。

$ jerm -D -b 9600 -p none -d 8 -s 1 -f none /dev/cu.usbserial-00001004

別の端末から、この端末のシリアルポートへ接続するには以下のように、Jerminal をクライアントモードで実行します。

$ jerm -4 192.168.1.1