Cisco IOS Cisco IOS は
Internetwork Operating System の略称で、その名前から
「ネットワーク系の OS」 となんとなく想像がつくと思います。
基本的にコンピュータには、ハードウェアやソフトウェアを制御する OS が存在します。PC の場合は Windows、Linux や Macintosh などがあり、スマートフォンやタブレット PC では、前述した Apple iOS や Android などなど。ほとんどの場合、コンピュータというコンピュータには OS が搭載されています。そういったことから Cisco IOS は、シスコ製のネットワーク機器を制御するための OS であることが分かります。
↑図1:PC も Router もハードウェアを制御するのはソフトウェアの OS
Cisco IOS は独特なコマンドラインインターフェース (CLI) を持つことが特徴ですが、Cisco 社はネットワーク機器では世界最大手ということもあり、その CLI は他社のネットワーク機器でも真似られているようです。僕が扱うことが多い 「センチュリーシステムズ社」 の FutureNet シリーズもコマンドが Cisco IOS と似ており、その影響力が伺えますね。
Cisco IOS を設定には CLI 操作が一般的なので、RS-232C などの
コンソールケーブル による接続、あるいは SSH (22), Telnet (23) による
VTY (Virtual Terminal Line) からの接続が必要です。
↑図2:Router は外部の端末からアクセスして設定する
……愚かな余談ですが、僕はつい最近まで
「コンソールケーブル古すぎwww Telnet 使えばいーじゃんwww」 と嘲笑っておりました。。しかしコンソールケーブルを初めて使ったときは、ホント感動しました。
「しまった!インターフェースの IP 変更したらアクセスできなくなった……初期化決定…orz」 と言ったことが一切ありません。コンソールケーブル、ホントに最高です。いやはや、見た目だけで判断するようでは、僕は人間としてもまだまだです…。(´・ω・`)
Cisco IOS の内部構造 Windows や Linux などの OS は、物理的なハードウェアによって動作しますが、Cisco IOS も物理的なハードウェア上で動作します。
PC に CPU や RAM が搭載しているのと同じように、ルータにも CPU や RAM が搭載されています。また、PC を起動するとブートローダーによって OS が RAM へ OS がロードされるように、ルータでもブートローダーによって Cisco IOS が RAM へロードされます。起動動作は PC と非常に似ています。
ただ、PC では OS が HDD に格納されている反面、ルータ (倉庫で発見した Cisco 2610 )は Cisco IOS が
フラッシュメモリ に格納されているなど、構造はさすがに違うようです。……そうですよね、単純に考えればネットワーク機器は汎用機じゃなく専用機ですから、違っていて当たり前ですね。自己解決しましたw
ここで少し、Cisco ルータの内部構造を描いてみます。とはいっても以下は、公式サイトのアーキテクチャ図をそっくりそのまま写しておりますので、もっと詳しく調べたい場合は公式サイトをご参照ください。
2.Cisco 2600 ↑図3:Cisco 2600 シリーズの内部構造
まずは職場の倉庫から出てきました Cisco 2600 シリーズを描きました。
各コンポーネントの詳細は割愛するとして、まずデータの処理を行う CPU があります。次に IOS が保存されたフラッシュメモリがあり、そのフラッシュメモリから IOS をロードする Boot ROM、ロード先の DRAM、設定情報が格納された不揮発性メモリの NVRAM など、さまざまなコンポーネントが配置されています。
また、処理データが行き来する CPU バスと、インターフェースに関わる PCI バスを接続する PCI ブリッジがあります。このあたりは PC と似ていますが、チップセットのような機能はなさそうなので、現代のアーキテクチャと比べるとデータ送受信の効率は高くなさそうです。
あと
AIM (Advanced Integration Module) というデータ圧縮技術を使うためのカードスロットもあります。使ったことがないので詳しくは分からないのが残念ですが、これはデータを圧縮することでフレームサイズを小さくし、パフォーマンスやスループットを向上させるもののようです。勝手な予想ですが、今の時代はリソースに恵まれていますので、こういう拡張機能はないと思いますが、当時は高負荷なルータには必要だったのでしょうね。Nintendo 64 でいう
メモリー拡張パック みたいなモノだと僕は勝手に想像していますがw
2.Cisco 3600 ↑図4:Cisco 3600 シリーズの内部構造
次に Cisco 3600 シリーズを描きました。
Cisco 3600 は Cisco 2600 に比べると、全体的にメモリ容量が増量され、CPU のクロック周波数やバスの帯域幅が向上しています。他にも PCMCIA フラッシュカードや DUART といったものも追加されています。
また Cisco 3600 は Cisco 2600 には無かった System Controller によって CPU の負荷を軽減しています。これは今の PC のマザーボードにも使われているチップセットのようなもの (と僕は勝手に思っていますが) で、本来 CPU が行うべきパケット処理以外の制御処理を肩代わりしてくれることから、CPU はパケット処理に専念でき、結果的にパフォーマンスが向上します。
数値だけでなく構造的にも、上位機種になればなるほど性能が高くなっていますね。
3.Cisco 7200 ↑図5:Cisco 7200 シリーズの内部構造
最後、 GNS3 最上位ルータの Cisco 7200 の中身です。
もうこのレベルに来ると、大企業の本社に設置するようなセンタールータですね…。ルータとしての最低限の機能しか持たず、機能拡張ができないエッジルータとは異なり、Cisco 7200 シリーズは
インターフェースユニット をつけることで、機能拡張が可能です。Cisco 7200 の場合、インターフェースユニットのことを
Port Adapter と呼ぶようです。
また、CPU やメインメモリなどの処理部は
「NPE」 (Network Processing Engine) というボードに組み込まれています。これはルータのパケット処理などを担当するパーツが集約されたボードで、PC でいうノースブリッジまわりの基盤をごっそり取り出したイメージでしょうか。この NPE にも性能別に種類があり、Cisco 7200 は差し込んだ NPE により性能が決まるということになります。
以上、3種類の Cisco ルータの内部構造を覗いてみました。こころなしか、ルータの内部構造は PC の内部構造と似ている気がしますね。
恐らく (いや絶対に) 現在主流の Cisco ルータは、これら3機種よりも 「高性能 & 新型」 のルータが販売されています。最近のルータは、IPv6 ルーティングといった “実現できる機能” が増えたり、CPU の性能が向上して処理速度が早いなど、昔のルータと比べて 「使いやすさ、性能」 は格段に上がっているはずです。しかし PC と同様に、
基本的な構造は変わっていない ように見受けられます。一度基本的な仕組みを理解してしまえば、新しい機種のアーキテクチャを理解するのにさほど苦労しないはず (と、心から信じたい…´・ω・`) なので、基本はしっかりと覚えておきたいところです。
Cisco ルータの起動 次は Cisco ルータが起動するまで (IOS が RAM にロードされるまで) の流れをメモしていきます。
Windows や Linux などの PC が起動する場合、細かい話は抜きにして
「補助記憶装置→主記憶装置」 といった流れで OS イメージがロードされますが、Cisco IOS でも似たような流れで IOS が RAM へロードされます。
しかしながらルータと PC では、厳密には使っているメモリの種類や役割は異なります。一般的な Windows では、OS イメージや動画・音声ファイルなどのデータは HDD (SSD) に保存されますが、Cisco ルータでは IOS や設定ファイルが
NVRAM (不揮発性メモリ) やフラッシュメモリ に保存されています。
↑図6:補助記憶装置、PC は HDD、Router は NVRAM やフラッシュメモリ
そんな Cisco ルータで使われるメモリは、以下のように大きく分けて 4種類 あります。
・Boot ROM … IOS を RAM へロードするプログラムが格納される。電源 ON 時に起動する領域。
・NVRAM … ルータの Config ファイルなどが格納される。
・Flash … IOS イメージが格納される。
・RAM … IOS や Configファイル、ルーティングテーブルがロードされるルータの作業領域
※ …とは言いながらも、まだ
NVRAM とフラッシュメモリの違いがよく分かっていない 自分がいます。「NVRAM とフラッシュメモリ」 という区切りじゃなく、「EEPROM と フラッシュEEPROM」 という区切りならなんとなく理解ができますが、その辺を追求すると趣旨が思い切り逸れてしまうため、今回は
「NVRAM には Config が、フラッシュメモリには IOS が、それぞれ保存される」 と割り切ってメモします。
それでは以下、ルータが起動するまでの流れです。
1.ルータの電源を ON にする
2.Boot ROM の POST (Power On Self Test) プログラムが起動。HW のチェックを行う
3.ブートストラップが NVRAM 内の
Configuration Register の値を読み込み、起動モードを選択
4.NVRAM 内の startup-config (
boot system コマンド) を参照してロードする IOS を選択する
5.IOS バイナリイメージがフラッシュメモリから RAM へロードされる
6.NVRAM 内の
startup-config を RAM へロードする
7.もう…好きにしてちょうだい… ( //ω//)つ[Teraterm]
↑図7:IOS が RAM へロードされる流れ。ごった煮のようになってしまった…。
「1~2」 までは、一般的な PC でありがちな起動なので端折ります (実はよくわかっていないw)。
「3」 ではブートストラップのプログラムが NVRAM に格納された
Configuration Register という Config ファイルを読んでいます。Cisco ルータにはいくつかの
起動モード が存在し、ブートストラップは 16進数 で表記された Configuration Register の値から動作モードを選択し、ルータを起動します。
↑図8:「show version」 コマンドから Configuration Regsiter の値を確認できる
「4、5」 では、startup-config (後述) に書かれた
boot system コマンドを調べ、RAM へロードする IOS を選択します。基本的にブートストラップは、フラッシュメモリ上に保存された IOS のデフォルト位置を読み込みますが、フラッシュメモリ上に複数の IOS が保存されている場合などは、boot system に記述された内容に従って IOS を読み込みます。
↑図9:IOS を選択して RAM へロードする
「6」 では、
startup-config を NVRAM から RAM へロードします。startup-config はルータの設定ファイルです。Cisco ルータでは設定ファイルが主に2種類あり、
ルータに保存した設定ファイル である startup-config ファイルと、
現在作業中の設定ファイル である
running-config ファイルが存在します。startup-config は NVRAM に保存される一方、running-config は RAM で動作しますので、電源を切ると消えてしまうのが特徴です。
↑図10:startup-config と running-config
「7」 は……、もうルータをいじり倒しちゃって下さい。そう、隅々まで…(笑)。
と、こんなイメージで IOS が RAM にロードし、ルータが動作しているようですね。実はけっこう端折ってしまったところが多いですが、細かなところは Cisco ルータをいじる機会が訪れたときに追及します。まずは大雑把な流れを把握するメモとして、本項目は終わろうかと思います。
基本動作とモード 基本的に Cisco ルータはコマンド打ちによる設定を行いますが、コマンドを記述する際には「モード」 という考えを理解する必要があります。
モードとは、簡単にいうと
「操作レベル」 のことを表しています。ルータの設定を勝手に変更できないよう、セキュリティの観点から 「見るだけ」 しかできない
「ユーザモード」 をはじめ、ルータ本体の設定を変更できる
「特権モード」 や、ルータのネットワーク機能を設定する
「グローバルコンフィギュレーションモード」 、そして各種インターフェースを設定する
「インターフェースコンフィギュレーションモード」 があります。
↑図11:Cisco IOS のモード遷移
このモードの仕組みは他のルータでも採用されることが多く、僕が頻繁に使うセンチュリーシステムズ社の NXR シリーズなども、このモードとそっくりです。またヤマハルータでもコマンドさえ違いますが、閲覧だけのモード・管理できるモード、に分けられています。
ただ、冷静に考えれば GUI (ブラウザで設定するルータなど) でもこういった画面遷移はありますから、一見文字ばかりの CUI 設定ですが、そういった GUI 設定画面に置き換えてみると敷居は低くなるかもしれませんね。
ちなみに今の僕は 「ユーザモード」 の必要性が全く分かっていません。。だってルータの設定画面を見る人は限られていますから、何もわかっていないユーザが勝手に設定を変更するようなことはないと思っています。……このユーザモードの必要性が分かってくるまで、
GNS3 を触りながら色々と勉強してみることにします。めざせ、CCIE!(笑)
最後に(長文チラ裏w) Cisco Systems 社といえば、やっぱり有名なのが 「CCNA」 などのネットワークの資格ですよね。
CCNA はネットワークエンジニアになるための
登竜門 的な位置づけの資格ですし、CCIE に至っては
「合格者はネットワークの神様」 のような扱いを受けるといったように、Cisco の資格はとても影響力が強いと言われています。
しかし、不思議なことに IT 業界では
「IT の資格は必要ない」 と言われることが多いです。IT 資格が大好きな僕にとって、この言葉は少し悲しかったりします。
確かに資格を持っていなくとも IT エンジニアはやっていけますし、僕の周りには資格を持っていない優秀なエンジニア様が沢山います。ではそういった方々に 「なんで資格を取らなのですか?」 と伺ってみました。すると返ってくる答えは
「今の仕事に必要ないから」 「資格手当が少ないから」 「そんな時間あるかい!」 とったものがほぼ大半を占めていました。
そんな一方、僕がコンピュータ専門学校に通っていたときにお世話になった先生は、あり得ない数のコンピュータの資格をお持ちでした。その先生は
IPA の高度情報処理試験を半分以上も合格 しているようなお方で、自他共に認める
「資格マニア」 でおられました。 その先生に 「どうして資格を取るのですか?」 と伺ったところ、
「資格(知識)を持ってると、経験が無くても “会話ができるんだよ”」 と仰りました。その考えは思いつきませんでした。。
また、今の僕が務めている病院の
裏上司 が 「げんちゃんは CCNP 取った方がいい」 と勧めてくれたこともありました。その理由を伺ったところ、「IT 業界での資格は“目安”になる。この人が
“どれだけの技術を持っているか” が一発で分かるのは資格なんだよね」 とのことでした。なるほど、資格が転職に有利などはそういった理由なのですね。
けれども IPA などの資格ならともかく、IT 資格はベンダー試験が大半を占めることから
「更新」 が必要になってきますので 「勉強し続けなきゃいけないじゃん!」 と、面倒くさがり屋の僕からすればその時点で萎えてしまいます。しかし、そのことを裏上司に話してみたところ、意外な言葉が返ってきました。
「んー、ベンダー試験は有効期限が切れても“効力はあるんだよ”」 Σヽ(゚Д゚;)ノ
ワタクシ 「そうなのですか?!」
裏上司 「うん。履歴書の資格欄には書けないけど、PR 欄や備考欄には書いてもいいんだよ」
ワタクシ 「でも “現所有者” と “元所有者” じゃ結構な差が出ますよね?」
裏上司 「んー、いやそうでもないね。それくらいの差なら
“人柄” を重要視するよ」
ワタクシ 「」
なんだかんだで、結局行きつくところは
コミュニケーション能力 のようです。((((;゚Д゚;)))
とりあえず僕は、今唯一持っている資格が
「ワープロ検定3級」 なので、まずはそこをどうするかを考えることから始めようと思います(笑)。
スポンサーサイト