simon’s diary

思うがままに書き綴る。。。

ネットワークの設定に関する備忘録

エンジニアをやっていて、非常に幸せだと思うのは、どれだけ学んでも知らないことがたくさんあるということです。知識欲の旺盛な人にエンジニアという職業をおすすめしたいです。逆に知識欲の少ない人はエンジニアにならない方がいいです。知識の量が自分の市場価値と直結してきますから。

私の職業はアプリケーションエンジニアです。リファレンスがあれば、ある程度のものが作れるぐらいのスキルはあります。しかし、ネットワークに関する知識が非常に乏しいので勉強中です。

せっかくなので、現在利用している書籍の備忘録として、自分が知らなくて、新たに学んだことを簡単にまとめます。この書籍は本当にわかりやすいです。

www.amazon.co.jp

 ネットワーク

LAN:Local Area Network

WAN:Wide Area Network

ネットワークアーキテクチャ

OSI参照モデル

TCP/IP

  1. アプリケーション層
  2. トランスポート層
  3. インターネット層
  4. ネットワークインターフェース層

IPアドレス

IPアドレス(32ビット) = ネットワークアドレス + ホストアドレス

現在はネットワークアドレスとホストアドレスを区切るために、クラスフルアドレスは用いられておらず、区切れが柔軟に設定できるサブネットマスクが用いられれてる。(アドレスの無駄をなくすため) 

ネットワークに接続するとは「ケーブルなどを用いて物理的に接続している」ことと、「IPアドレスを設定する」ことの二つの条件を満たすことをいう。

NAT:Network Address Translation

閉じたネットワーク内のプライベートアドレスをグローバルアドレスに変換する仕組み。変換後のアドレスとプライベートアドレスを保持するテーブルによって参照。NATの仕組みがないとインターネットから通信先のホストが判別できない。

DNS:Domain Name Service

電話帳の仕組み。DNSサーバーはリソースレコードと呼ばれる6つのタイプのレコードを持つ。nslookupコマンドでリソースレコードを参照できる。

DNSラウンドロビン:負荷分散の仕組み。単純に複数台のWEBサーバーに順番にアクセスを分散させる。サーバがダウンしても検知できなかったり、効率的な負荷分散が実現できないので、現在はロードバランサーを用いるのが主流。

ポート番号

アプリケーションを選別する番号。ウェルノウンポート、登録済みポート、ダイナミック/プライベートポートからなる。ポート数は全部で0~65535。複数タブでWEBサイトを表示できるのはダイナミック/プライベートポートがたくさんあるからである。

「ポートを開ける」とはインターネット側から始めた開始されてた通信を、家庭内ネットワークの特定PCのアプリケーションへと転送できるようにすることを指す。「ポートを解放する」、「ポートフォワーディング」、「ポートマッピング」、「ポート転送」とも表現する。

TCP:Transmission Control Protocol

適切なアプリケーションへデータを受け渡すためのプロトコル。まず、3ウェイハンドシェイクという手法を用い、TCPコネクションを確立する。コネクションを切断するときにも同じ手法を用いる。また、TCPでは以下の三つの制御機能を駆使して、正確かつ効率的にデータを通信する。

  • ウィンドウ制御:TCPヘッダあるウィンドウ情報を元に、どのくらいのTCPセグメントを一度に送信できるか制御する。
  • 再送制御:失われたTCPセグメントを再送する仕組み
  • 輻輳(ふくそう)制御:ネットワークが混雑しているときに、一度に送信するTCPセグメントを調節する仕組み

UDP:User Datagram Protocol

TCPと同じく、適切なアプリケーションへデータを受け渡すためのプロトコルTCPよりヘッダ情報が少ないため、通信効率が良く、コネクションも確立しないので、複数の相手にデータを送信することが可能。IP電話やスカイプなどで利用されている。

デフォルトゲートウェイ

デフォルトゲートウェイルーターで、LAN側のIPアドレスを設定する。この設定を間違えるの違うネットワークへの接続ができなくなる。

VRRP:Virtual Router Redundancy Protocol

ルータがダウンしたときに、自動的に別のルータに切り替える仕組み。VRRPでは、複数のルータをまとめて、仮想ルータとし、この仮想ルータのIPアドレスをホストに設定する。

DHCP:Dynamic Host Cofiguration Protocol

TCP/IPの設定を自動化する仕組み。DHCPを利用するためには、DHCPサーバが必要。DHCPは以下の四つのプロセスによって、自動的にTCP/IPを設定する。

  1. DHCPDISCOVER:DHCPサーバを探し出すため、クライアント端末はブロードキャストでDHCPDISCOVERを送信する。
  2. DHCPPOFFER:DHCPDISCOVERを受け取ったDHCPサーバはクライアント端末にDHCPPOFFERを返す。ここに配布可能なIPアドレスなどの情報が含まれている。
  3. DHCPREQUEST:DHCPPOFFERを受け取った端末はDHCPREQUESTをブロードキャストして、実際のIPアドレスを要求する。ブロードキャストしているのは、複数DHCPサーバがあることを考慮するため。
  4. DHCPACK:DHCPサーバがクライアント端末に対してTCP/IP情報を利用することを了承する。

ネットワークトラブルの原因を調べる方法

ネットワークトラブルの切り分けは、「ユーザーに近い部分」から見ていく。

  1. LANケーブルが正しく接続されているか確認
  2. ルータ、スイッチなどのネットワーク機器に電源が入っているか確認
  3. PCのTCP/IP設定が正しいか確認:ipconfigコマンド
  4. デフォルトゲートウェイと通信できることを確認:pingコマンド
  5. DNSサーバによる名前解決ができるか確認:nslookupコマンド
  6. インターネット上の特定のサーバと通信できるか確認:ping,tracertコマンド
  7. 利用しているアプリケーションの設定が正しいか確認する