TECHBLOGスキルブログ

エンジニアとして覚えておきたいネットワーク知識

2015.08.24

こんにちは、ユニトラストの我妻です。

少しネットワークについて調べる機会があったので今回は自身の知識整理も兼ねて

書いていきたいと思います。

対象としては基本情報処理技術者レベルくらいのつもりですが、
余り固くならない程度に書いていきます。

1.ネットワークとは

改めて言うとネットワークとは複数のコンピュータをケーブルや電波等で相互に接続し、
単独では限界が来る処理能力を融通しあったり、ハードウェア資源や情報をお互いにやりとりできるようにした仕組みです。

建物内など限られた範囲内で構築されたネットワークをLAN(Local Area Network)
インターネットや遠く離れたLAN同士をつないだりする広範囲のネットワークをWAN(Wide Area Network)と呼びます。

無題

2.OSI参照モデル

OSI参照モデルという言葉は普段の生活ではまず出てこない言葉ですが、
ネットワークについての勉強を進めていくと必ずと言っていいほど耳にする事になります。

どんなものかというとネットワークに必要とされる機能を分割して体系的に階層分けしたモデルで
それぞれの階層の役割を果たすためのプロトコル(コンピュータ同士がネットワークを介して通信するための決まり)を定義し、
異なる機種・システム間でのデータ通信を実現するために策定されています。
こうして階層化することにより機能の明確化、新しいプロトコルの開発を行いやすくしたり、
プロトコル変更による影響を最小限にすることができます。

各階層を簡単に解説していきます。

 2-1.物理層

電気的・機械的なハードウェア仕様が定義されている階層です。
デジタルデータを電気信号と相互変換する機能を持ちます。
ケーブルを接続するためのコネクタ形状や通信速度、符号化方式等を定義しています。
ネットワーク機器ではリピータハブが該当します。

 2-2.データリンク層

同一ネットワークノード間でのデータ転送機能を定義されている階層です。
同一ネットワーク上の機器間で正しく通信するための機能を持ちます。
物理層で発生したエラー検出・訂正、データの送信元・送信先の識別方法等を定義しています。
ネットワーク機器ではスイッチングハブ、ブリッジが該当します。

 2-3.ネットワーク層

異なるネットワークを相互接続し通信するためのルーティングを行うための機能を持ちます。
論理アドレスの割り当て方式、ルーティング方法、送信データ構造(パケット)等を定義しています。
ネットワーク機器ではL3スイッチ、ルータが該当します。

 2-4.トランスポート層

通信品質を高め信頼性のあるデータ転送を行うための機能を持ちます。
コネクションの管理、エラー訂正、フロー制御等を定義しています。

 2-5.セッション層

通信プロセス同士のセッション管理機能を持ちます。
セッションの確立・維持・終了等を定義しています。
一台のコンピュータで様々なアプリケーションが同時に通信を行うことができるのは、
この階層でセッションが適切な管理を行っているためです。

 2-6.プレゼンテーション層

データをお互いに正しく読み取れるようにするための共通の表現形式を定義しています。
文字コードや、静止画像、動画等を扱います。
データ圧縮や暗号化も行います。

 2-7.アプリケーション層

一番ユーザーに近い階層でアプリケーションに対してネットワークサービスを提供します。
HTTPやFTP等の通信サービスが該当します。

下図に各レイヤの特徴をまとめてみました。

OSI

3.ネットワーク機器

ネットワークを拡張するためのネットワーク装置ですが、大きく分けると3タイプの装置に分類することができます。

3-1.リピータ・ハブ

入力された電気信号を増幅する物理層で動作するデバイスです。
ネットワークの通信距離が長くなるとそこを流れる電気信号が減衰し、ノイズ等が混じり元のデータに復号できなくなってしまいます。
それを防ぐため、電気信号を増幅する中継器としてリピータが使われます。
元々ハブというとこのリピータ機能を持ったリピータハブを指しましたが、現在このリピータハブはほとんど使われません。
単純に受信した電気信号を増幅して他のポートへと流すだけなのでバカハブと呼ばれたりもしていました。

3-2.スイッチ・ブリッジ

MACアドレス(物理アドレス)を利用してデータ(フレーム)の中継を行うデータリンク層で動作するデバイスです。各ポートに連なる機器のMACアドレスを学習し、宛先MACアドレスに従ってデータ送信を行うポートを識別してデータの伝送を行います。
現在ハブというとこちらのスイッチの機能を持ったスイッチングハブが主流になります。

3-3.ルータ・L3スイッチ

IPアドレス等の論理アドレスを利用して、効率的にデータ(パケット)を中継するネットワーク層で動作するデバイスです。
受信したデータに含まれる宛先アドレスを元に自身が持つ経路情報から最適な経路を選択してデータの転送(ルーティング)を行います。
L3スイッチはルータとスイッチの機能を併せ持った機器になります。
ハードウェア処理でルーティングを行えるためソフトウェア処理のルータに比べて高速で処理を行う事ができます。

 4.トラブルシューティング

サンプル事例のトラブルシュートを行ってみたいと思います。

trouble01
例として上図のような社内システムの構成を考えます。
イメージとしては本社にあるサーバーへ各支社からインターネット越しに接続してシステムを利用している形となります。

あるとき支社Aにある端末Cからサーバー上のシステムを利用することができなくなってしまいました。
この時の事例を考えてみます。

trouble02

原因の絞込を行っていきます。
このケースでは異常が発生している端末が一台だけのため、
ルーターAから端末Cまでの間に問題があると推測できますが、順を追って確認していきます。

効率よく障害の切り分けを行うためには近いところから順に調査していくのがセオリーと言われていますので、
まずは障害の発生している端末から確認していきます。

4-1.インジケータランプの確認

まずは物理的な原因かどうか確認するために、NICのインジケータランプを確認します。
これらが点灯・点滅していない場合はLANケーブル・NICに物理的な障害が発生していると考えられるため、スペア等に交換を行います。

4-2.ネットワーク設定の確認

物理的な問題ではなかった場合、障害の発生している端末のネットワーク設定の確認を行います。
Windows環境であるならipconfigコマンド、UNIX・Linux環境等の場合はifconfigコマンドからネットワーク設定の確認を行うことができます。
ipconfig2

ipconfigコマンドの結果で確認すべき内容としては、・IPアドレスが正しく設定されているか。
・サブネットマスクが正しく設定されているか。
・デフォルトゲートウェイが正しく設定されているか。
・DNSサーバーが正しく設定されているか。
・DHCP環境の場合、DHCPサーバーが正しく設定されているか。
・固定IPアドレス環境の場合、IPアドレスの競合を起こしていないか。
を確認していくことになります。

4-3.デフォルトゲートウェイへのping

ネットワークの疎通確認としてはpingコマンドがよく用いられます。まずはデフォルトゲートウェイへのpingを実行してみます。
ping_Success

デフォルトゲートウェイからのping応答が返ってきた場合は、
少なくともデフォルトゲートウェイまでの設定が正しく行われていることが確認できます。
ping_Fail

上図のように応答が正しく返って来なかった場合、ルーター側の設定(NAT等)によりアクセス制限が行われていないかの確認を行います。

 

仮に異常が発生している端末がネットワーク内全て等複数台にわたって発生している場合は上記4-1~4-3に加えてもう少し確認範囲を広げていきます。
trouble03

4-4.サーバーへの疎通確認

デフォルトゲートウェイまでの疎通は確認できたので、続いてサーバーまでの疎通確認を行います。デフォルトゲートウェイの時と同様にサーバーへ向けてpingコマンドを実行します。

pingsv

サーバーからの応答が返って来ない場合は、ルーティング設定等が誤っている可能性があるため、それらの確認を行います。

4-5.アプリケーションの確認

サーバーまでの疎通が確認できたが、問題の解決がされない場合は、
アプリケーション側での問題が発生しているとかんがえられるため、クライアント側に設定ファイル等がある場合にはそれらの設定が間違っていないか、またサーバー側ではプロセスが正常に動いているか等の確認を行っていきます。

今回はある社内システムでの事例ということで考えましたが、
例えば自宅のネットワークの調子が悪い時などの身近な障害の原因探しにも役立つ考え方だと思います。

 

私もサポート系の業務についていた時があったのですが、ネットワークがつながらない等の問い合わせを受けることがよくありました。
当時はここまでの理論的な知識は余りなく、対症療法的に「ここをこうすれば動くようになる」というような半ば場当たり的な対応が多かったように思います。
当時にもっと論理的な知識を持てていたら、より素早く対応することができたのではないかと振り返って思うことがあります。
また、大規模なシステムになるほど設計を行う上でネットワーク構成等ハード面について考える必要も出てきます。
お客様の直面している課題に対して最適な提案をしていくのがIT業界にいる私達の仕事です。
ソフトウェアの知識だけでなく、ハードウェア他幅広い知識を持っておくと活躍できる場面が増えていくと思います。
よくわからないと毛嫌いするのではなく、こんなことを聞いたことがあるというだけでもその後の広がり方が変わるはずですので
ぜひ、覚えてみてください。

 

以上、簡単ですがネットワークに関する基礎知識でした。

ユニトラストでは共に成長できるメンバーを募集しています!
「一緒に働いてみたい!」と思った方はこちらからどうぞ!

              

OTHER CONTENTSその他のコンテンツ

UNITRUST会社を知る

  • 私たちについて

  • 企業情報

SERVICE事業内容

  • システム開発

  • 自社サービス

CONTACT
お問い合わせ

あなたの「想い」に挑戦します。

どうぞお気軽にお問い合わせください。

受付時間:平日9:00〜18:00 日・祝日・弊社指定休業日は除く

お問い合わせ