Cisco認定試験問題の大幅な改定が2020年2月に実施されました。そこで今回は、昨年9月に開催したイベント「初心者からCCNA合格を目指す!ネットワークの全体像を理解しよう」にご登壇してくださった林口裕志さんを講師にお招きし、前回触れられなかったCCNA試験でのメインとなるルーティングについて詳しく解説していただきました。なお、NTP・DHCP・NATは、時間の都合上惜しくも割愛となりました。
・CCNAの試験形式は3種類。難易度が高い「シナリオ問題」と「シミュレーション問題」は配点が高いため、これらの問題を押さえておく
・スイッチやルータの仕組みを含めた、ネットワークの基礎知識を身につけよう
【講師プロフィール】
林口 裕志さん
ITスクール「システムアーキテクチュアナレッジ」で、主にCCNAやCCNPといったネットワーク系の担当講師を務める。また、Linux・Windowsといったサーバ系、Java・PHP・Pythonといったプログラミング系の講義などもマルチにこなす。講師業以外にも数々の開発案件やセキュリティ診断の案件などを担当し、そこから得られるIT業界のトレンドや最新技術に常に目を光らせている。数多くのたとえ話や実際の業務での体験談を織り交ぜながら進める講義は受講する生徒にも好評を得ており、IT業界未経験・PCスキルがゼロに等しい生徒であっても、その分かりやすい説明でCCNA合格を最短距離で導いている。CCNAの講義だけでも年間100名以上の生徒を担当し、その合格率は9割以上を誇る。
CCNA試験形式について
CCNAの試験は、選択問題とシナリオ問題、シミュレーション問題の3種類から構成されており、林口さんによれば「このシナリオ問題とシミュレーション問題がやっかい」なのだそうです。
しかし、難易度が高い分、シナリオ問題とシミュレーション問題は配点が高いため、この両者の問題をきちんと押さえておくことが、合格へのポイントとなりそうです。
では、シナリオ問題の例を見てみましょう。

シナリオ問題では、ルータの設定状況を表示させるコマンドを適切に実行できるかどうかが問われ、トラブルを解決する設定コマンドまでは問われることはないそうです。
一方、シミュレーション問題では、シナリオ問題を解く能力に加え、トラブルを解決するための設定コマンドを実行できるかどうかも問われます。

こうした問題を解くためには、スイッチやルータの仕組みを含めた、ネットワークの基礎知識をしっかりと学んでおく必要がありそうです。
スイッチの基本
出題傾向を踏まえた上で、まずは復習も兼ねて、ネットワーク構築の基礎となるスイッチについての仕組みを学んでいくことに。

スイッチは、MACアドレスを頼りにデータを転送するため、IPアドレスは参照しません。その代わり、スイッチ内に保持したMACアドレステーブルを参照します。
このMACアドレステーブルは、スイッチが勝手に作成するため、人間の手で作成する必要がありません。
実は、スイッチがデータを受け取る際に、送信元MACアドレスを認識し、ポートとMACアドレスとを紐づけてテーブルに登録し、こっそり学習しているのだそうです。
しかし、宛先MACアドレスがどのポートにあるのかは分かりません。なので、最初のうちは宛先のポートが分からないデータをすべてのポートに転送(フラッディング)し、分かっている場合はピンポイントで該当ポートに転送するのだそうです。賢いですね。

ルータの基本
次はルータについて。まずはスイッチとの違いについて見てみましょう。

ルータはスイッチと違い、テーブルを勝手に作ってはくれないそうです。また、スイッチは宛先が分からなくてもデータを自動的に送ってくれましたが、ルータはそうしたことをしてはくれません。

ルーティングテーブルに登録されている主な情報は、宛先ネットワークと、経由するルータのアドレス(ネクストホップ)、接続インターフェイスの3つ。
上記の例では、ルータR1は、端末Aからのデータの宛先IPアドレスが192.168.3.10ということで、ルーティングテーブルを参照します。192.168.3.0というネットワークは192.168.2.1(ルータR2)経由であることが分かるので、接続IFであるFa1を使い、ルータR2に転送しているそうです。
問題なのは、このルーティングテーブルです。ルーティングテーブルも最初は何も情報が登録されていない空っぽの状態。しかもスイッチングテーブルと違い、自動で作成してはくれません。そこでコマンドを設定していき、ルーティングテーブルを作成していく必要があります。その手順を次に説明してくださいました。

最初の状態ではルーティングテーブルは空っぽ状態ですが、ルータのインターフェイスに、IPアドレスの設定とno shutdownという有効化のコマンドを実行することで、ルーティングテーブルに「C」と書かれたネットワーク情報が登録されます。「C」は「Connected」、つまり、ルータに直接繋がっているネットワークの情報になります。
ここで、ルーティングテーブルを確認するコマンドについての説明がありました。ルータに対して入力するshow ip routeはとても重要なコマンドだそうです。

このように、show ip routeコマンドを実行することで、そのルータに登録されているルーティングテーブルの内容を確認することができます。
この段階で、「C」と書かれた直接繋がっているネットワークの情報が登録されましたが、離れたネットワークの情報(ルータ1の場合は192.168.3.0/24のネットワーク)は登録されていません。このままでは、通信は相手に届かず破棄されてしまいます。
そこで、離れたネットワークの情報をルーティングテーブルに登録していく必要があります。その設定こそが「ルーティングの設定」だそうです。
ルーティングの設定方法には、すべてのネットワーク情報を手作業で入力するスタティックルーティングと、「自動的に作成してね」というコマンドをあらかじめ実行しておくと、ルータ同士が情報交換しながらテーブルを作成してくれるダイナミックルーティングがあるとのこと。
まずは、スタティックルーティングの設定コマンドを見てみましょう。

スタティックルーティングのコマンドを実行すると、その内容がダイレクトにルーティングテーブルに登録されます。また、先頭に「S」と表示されていますが、これは「Static」の略。つまり、スタティックルーティングで登録されたことを示す印となります。
次に、ダイナミックルーティングを見てみましょう。ダイナミックルーティングには、RIP、OSPF、EIGRP、BGPなどさまざまな種類がありますが、今回はOSPFについて紹介してくださいました。

ルータ同士が情報交換を行うには、最初にHelloパケットでネイバー関係を確立し、その後、情報交換を行います。
OSPFの設定コマンドはrouter ospfコマンドを使います。

具体的には、ルータR1とR2に、それぞれ次のように設定します。

先ほど同様、show ip routeコマンドで確認すると、今度はルーティング情報の先頭に「O」が付いています。これはOSPFで設定された情報という印。こうして自動的にルーティングテーブルが作成されていきます。
実際の試験において「通信ができない」という設問は、たいていの場合「ルーティングテーブルが完成していない(不完全)」というケースです。
特にOSPFの問題では「OSPFの設定内容がずれている」ことがほとんどのため、show running-configコマンドで原因を突き止めます。
林口さんによれば、よくあるパターンが「ネイバー関係がそもそも築けていない」というものだそうです。ネイバー関係を確立するためには、いくつか条件があり、これを満たしているかどうかがチェックポイントになるそうです。

このあと、いくつか例題が紹介されましたが、ここでは省略します。今回の内容は基礎知識ながら、とても濃密なもので、CCNAの受験対策をこれから始める方にとって、大きな第一歩になったのではないでしょうか。
イベントにご参加いただいた方からは、「理解してなかったところが説明を聞いてよくわかった。OSPFについては独学で分かりにくいところだったので、ためになりました」という声や、「自分で対策本を用いるより、やはり有識者の方から、かみ砕いた内容を講義していただけると数倍効率が上がると感じました」などの声をいただきました。
株式会社リクルートスタッフィングが運営するITSTAFFINGでは、弊社に派遣登録いただいている皆さまのスキル向上を支援するこのようなイベントを、定期的に開催しています。皆さまのご参加をお待ちしております。