久保清隆のブログ

ライフハック、健康、旅行など、役立つ情報を書きます。

プログラマに最低限必要なサーバ・ネットワークの知識

プログラマとしてとりあえず知っておいた方が良いと思うサーバ・ネットワークの知識を簡単にまとめた。

ドメイン名と名前解決

サーバとネットワークは切り離せない関係にある。

  • インターネットの仕組み
    • インターネットとは、ある一定の決まりで作られた、世界で最も大きなコンピュータネットワーク
  • インターネットを使うシーン
    • webページ
    • メール
    • IP電話

など。
いずれの場合も、目的のサーバを最初に探す必要がある。その時に使われるのがドメイン名。

  • ドメイン名

例えば、このYahooのURLは、http://www.yahoo.co.jp/
ドメイン名は、www.yahoo.co.jp

このドメイン名は、以下のように分割できる。

    • サーバ名:www
    • 組織名:yahoo
    • セカンドレベルドメイン:co
    • トップレベルドメイン(TLD):jp

ドメイン名が重複すると、サーバが特定できないので、webサーバは世界で唯一の(ユニークである)ドメイン名を持つ。
ドメイン名は、NIC(Network Information Center)などのドメインを管理している団体に申請して発行してもらう。

IPアドレス

インターネット上では、ドメイン名は、IPアドレスという番号に変換される。
IPアドレスとは、インターネットなどのIPネットワーク上のコンピュータを区別するために、一台ずつに割り振られた識別番号
8つの0または1の数字でできたかたまり4つからなる数字の羅列で構成されている。
例えば、
00000001 10001011 10100010 11000011
など。

通常は、以下のように10進数で扱う。
1.147.162.195
こんな数字は覚えにくい、ということでドメイン名が考案された。
もちろん、IPアドレスも、世界で一つの値がそれぞれのサーバに割り当てられる。
似た例で言うと、電話番号。これも数字でできていて、世界で唯一の番号が一つの電話に割り当てられる。

  • IPアドレスとLAN

NICからIPアドレスを発行してもらうと、必ず複数個のIPアドレスが発行される。因みに、個人で一つだけIPアドレスが欲しい時は、IPアドレスをNICから複数発行してもらっている業者から一つをもらう。

「何個のIPアドレスを使ってよいか」でAからEの5つのクラスに分けられる。

A 1〜127(ネットワークアドレス) ホストアドレス ホストアドレス ホストアドレス
B 128〜191(ネットワークアドレス) 1〜254(ネットワークアドレス) ホストアドレス ホストアドレス
C 192〜223(ネットワークアドレス) 1〜254(ネットワークアドレス) 1〜254(ネットワークアドレス) ホストアドレス
D        
E        
    • NICから発行された部分をネットワークアドレスと言う。
    • 自由に付与してよい範囲をホストアドレスと言う。
    • D、Eは特別なクラスで、発行されることはない。


IPアドレスは、32ビットからなるので、2^32=約43億のIPアドレスが考えられる。しかし、全世界にはそれ以上多くのコンピュータがある。従ってIPアドレスが足りないと考えるかも知れないが、今のところそうはなっていない。
それはなぜかというと、インターネットに直接接続していないコンピュータは、ユニークなIPアドレスでなくてもよいという決まりがあるから。つまり、インターネットに直接接続していないコンピュータの中には、同じIPアドレスがある。ただし、同じネットワークの中では、IPアドレスはユニークでなければならない。

  • ローカルIPとグローバルIP
    • 上述したようにIPアドレスには、インターネットに直接接続しているものと、直接接続していないものがある。
      • 直接接続しているコンピュータ用のIPアドレスをグローバルIPアドレスと言う。
      • 直接接続していないコンピュータ用のIPアドレスをプライベート(ローカル)IPアドレスと言う。
      • グローバルIPアドレスは、全世界においてユニーク
      • プライベートIPアドレスは、所属するネットワークの中でユニーク。
    • ルータやDNSサーバはプライベートIPアドレスを無視するので、プライベートIPアドレスと同じIPアドレスがインターネット上にあっても問題ない。

サブネット化

サブネット化とは、IPアドレスのうち、自由に使ってよいホストアドレスを複数に分割すること。一つのネットワークに属するPCを減らすことで、ネットワーク内での通信速度やセキュリティレベルを高めたり、管理者が管理しやすくする。(細かく分割しすぎると、ネットワーク数が増え、経路情報が増え、広域通信におけるルーティングが非効率になるので注意。)

例えば、192.168.1.0〜192.168.1.255を5つに分ける場合、0と255は特別な意味を持ち使えないので、1〜254の254個が使える。これを5つに分割するには、3ビット必要(000,001,010,011,100,101,110,111の8種類。2ビットだと4種類)。
8ビットのうち、最初の3ビットを割り当てる。この3ビットをサブネットワークアドレスという。
残り5ビットをコンピュータに割り当てられる。00000と11111は特別な意味を持ち使えないので、このサブネットには残り30台ずつのコンピュータを接続することができる。

サブネットマスク

  • サブネットマスクとは、IPアドレスのうち、何ビットをネットワークを識別するためのネットワークアドレスに使用するかを定義する32ビットの数値
  • 例えば、上記の例だと、サブネットマスクは255.255.255.224(27ビット)になる。
  • つまり、27ビット(255.255.255.224)がネットワークを示す部分ということ。

インターネットのプロトコル

インターネットでは、TCP/IPと呼ばれるプロトコルを用いる。TCP/IPは複数のプロトコルの集まり。
TCP/IPプロトコルをOSI参照モデルで分類すると以下のようになる。

7 アプリケーション層 HTTP、FTP、Telnet、SMTP、POP3
6 プレゼンテーション層 HTTP、FTP、Telnet、SMTP、POP3
5 セッション層 HTTP、FTP、Telnet、SMTP、POP3
4 トランスポート層 TCP、UDP
3 ネットワーク層 IP
2 データリンク層 PPP
1 物理層 イーサネット

インターネットの主なサービスは、主にアプリケーション層のプロトコルにより提供される。

プロトコル名 サービス
HTTP(HyperText Transfer Protocol) webページを転送するプロトコル。webページを発信し、閲覧するために使われる。
FTP(File Transfer Protocol) ファイル転送サービスを行うプロトコル。インターネットを経由してファイルをダウンロードする際などに使われる。
Telnet 他のコンピュータにログインして機能を利用するプロトコル。
SMTP(Simple Mail Transfer Protocol) 電子メールの配送を行うプロトコル。
POP3(Post Office Protocol Version 3) 電子メールの受信を行うプロトコル。メールサーバから受信メールを読み出す際に使われる。
SNMP(Simple Network Management Protocol) ネットワークの管理を行うプロトコル。
NTP(Network Time Protocol) 時刻を合わせるプロトコル

ポート

  • ポートとは、インターネット上で利用されるアドレスの一種。PC側の窓口と言える。
  • 具体的には、インターネット上での通信時に、複数の相手と同時に接続するための、IPアドレスの下に設けられたサブアドレス
  • ネットワークで送受信されるデータは多岐にわたり、データの種類によって必要になるソフトが異なる。そのため、ネットワーク上ではIPアドレスだけでなく、ポート番号あるいはポートと呼ばれる情報が利用される。
  • IPアドレスに従って端末に届けられたデータは、その後ポート番号によって振り分けられ、適切なプログラムに手渡されて処理される。
  • ポートは1〜65535まで存在する。送受信する頻度の高いデータに関しては、以下のように専用のポートが設けられている。
ポート番号 サービス名 サービス内容
23 telnet Telnet用のポート
25 smtp メール送信ポート
53 domain DNS用ポート
80 www-http HTTP用ポート。webページにアクセスする時に使用
110 pop3 メール受信用ポート
443 https SSLによる暗号化プロトコル、HTTPS用のポート
8000 http-proxy HTTP-proxy用ポート。webページにアクセスする時に使用
8080 http-proxy HTTP-proxy用ポート。webページにアクセスする時に使用

IPルーティングテーブル

  • ルーティングテーブルとは、ルータや端末が保持するパケットの配送先に関する経路情報
  • TCP/IPネットワークでパケットを送ろうとするとき、ルーティングテーブルを参照してパケットを送付すべき相手を判断する。ある端末から他の端末へとパケットを送ろうとする場合、目的の端末が自ネットワーク内にない場合、端末内にあるルーティングテーブルを参照し、パケットを中継させる端末を決定する。

ルーティングテーブルとは|経路制御表|routing table : 意味/定義 - IT用語辞典

セキュリティ

サーバのセキュリティホールを突いて、情報が盗まれたり改竄される事件が多発している。
堅牢なサーバにしなければならない。

堅牢なサーバにするには

重要な点は大きく2つ。「入られない」ことと「解読されない」こと。

  • 入られない

サーバに入るとは、サーバ内の情報を操作できる権限を持つこと。管理者権限をとられると、改竄したり情報を盗んだりシステムを壊したり、何でもできてしまう。

    • サーバに入られないために気をつけること
      • パスワードを簡単に類推できないようにする
      • パスワードを定期的に変更する
      • パスワードを知る人を最小限にする
      • 遠隔操作はできるだけしない
      • 不要なソフトウェアを起動させない
      • サーバソフトウェアの実行権限を最小限にする
      • ファイルやディレクトリのアクセス権限を制限する
    • 進入された場合、ログファイルにその痕跡が残るはずなので、定期的にログファイルをチェックして、覚えのない操作が行われていないかチェックする。
  • 解読されない
    • 万が一データが取得されても、解読できなければ悪用されにくい。
    • 暗号化する際、多くの場合、sshを使用する。

鍵認証

  • 暗号化の方法の一種に鍵認証方式がある。
  • 原文を平文、変換した文を暗号文という。平文を暗号文に変える手続きを暗号化という。
  • 暗号文を平文に戻す手続きを、復号という。
  • 暗号化や復号に使われるデータを、「鍵」と呼ぶ。
共通鍵方式(秘密鍵方式)
  • 共通鍵方式とは、暗号化と復号を、共通の鍵を使って行う方式。
  • この鍵は、第三者に知られないように秘密にしておく必要がある。
  • 代表的な共通鍵方式には、DES(Data Encryption Standard)がある。
公開鍵方式
  • 公開鍵方式とは、暗号化と復号を別々の鍵で行う方式。
  • 受信者はまず、公開鍵と秘密鍵をペアで作成。公開鍵方式では、公開鍵から秘密鍵を推測するのが困難なものを使う。
  • 暗号化は、受信者の公開鍵を使って行い、復号は、受信者の秘密鍵で行う。
  • 公開鍵から秘密鍵を推測するのは困難なので、秘密鍵さえ安全に保管していれば、第三者は暗号を解読できない。
  • 代表的な公開鍵方式には、RSA(Rivest Shamir Adleman)がある。RSAは、因数分解に計算時間がかかることを利用した仕組み。
  • 公開鍵方式では、公開鍵で暗号化を行うため、不特定多数の人間からメッセージを受け取ることができる。これは、電子メールや電子商取引など、不特定多数の人間とメッセージをやり取りする際の暗号化方式として適している。

参考

やさしく学ぶ 基本情報技術者 '09~'10年版

やさしく学ぶ 基本情報技術者 '09~'10年版

これならわかるサーバ 入門の入門

これならわかるサーバ 入門の入門


お読み頂きありがとうございます。
少しでもお役に立てたらクリックお願いします↓。

にほんブログ村 IT技術ブログ プログラム・プログラマへ人気ブログランキングへ Subscribe with livedoor Reader


◆◆このブログのサイトマップへ◆◆