ネットワークの設定に関する備忘録
エンジニアをやっていて、非常に幸せだと思うのは、どれだけ学んでも知らないことがたくさんあるということです。知識欲の旺盛な人にエンジニアという職業をおすすめしたいです。逆に知識欲の少ない人はエンジニアにならない方がいいです。知識の量が自分の市場価値と直結してきますから。
私の職業はアプリケーションエンジニアです。リファレンスがあれば、ある程度のものが作れるぐらいのスキルはあります。しかし、ネットワークに関する知識が非常に乏しいので勉強中です。
せっかくなので、現在利用している書籍の備忘録として、自分が知らなくて、新たに学んだことを簡単にまとめます。この書籍は本当にわかりやすいです。
ネットワーク
LAN:Local Area Network
WAN:Wide Area Network
ネットワークアーキテクチャ
- アプリケーション層
- トランスポート層
- インターネット層
- ネットワークインターフェース層
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を設定する。
- DHCPDISCOVER:DHCPサーバを探し出すため、クライアント端末はブロードキャストでDHCPDISCOVERを送信する。
- DHCPPOFFER:DHCPDISCOVERを受け取ったDHCPサーバはクライアント端末にDHCPPOFFERを返す。ここに配布可能なIPアドレスなどの情報が含まれている。
- DHCPREQUEST:DHCPPOFFERを受け取った端末はDHCPREQUESTをブロードキャストして、実際のIPアドレスを要求する。ブロードキャストしているのは、複数のDHCPサーバがあることを考慮するため。
- DHCPACK:DHCPサーバがクライアント端末に対してTCP/IP情報を利用することを了承する。
ネットワークトラブルの原因を調べる方法
ネットワークトラブルの切り分けは、「ユーザーに近い部分」から見ていく。
- LANケーブルが正しく接続されているか確認
- ルータ、スイッチなどのネットワーク機器に電源が入っているか確認
- PCのTCP/IP設定が正しいか確認:ipconfigコマンド
- デフォルトゲートウェイと通信できることを確認:pingコマンド
- DNSサーバによる名前解決ができるか確認:nslookupコマンド
- インターネット上の特定のサーバと通信できるか確認:ping,tracertコマンド
- 利用しているアプリケーションの設定が正しいか確認する