TCP/IPの基礎

 

●TCPとIP

プロトコル:ネットワークを使って通信を行う際の取り決め、TCP/IPが最もよく使われる

主なプロトコル名 正式名称

説明

IP Internet Protocol あて先などの情報を付加したパケットという単位にデータを分割し、
送信するためのプロトコル
現在一般的に使われているIPv4を拡張したIPv6も徐々に使われ始めてきた
TCP Transmission Control Protocol データが正しく転送されるように、信頼性を確保するためのプロトコル
コネクション型
UDP User Datagram Protocol TCPとは逆に信頼性は低いが高速にデータを転送する通信で
TCPの代わりに使われるプロトコル
コネクションレス型
ICMP Internet Control Message Protocol pingコマンドやtracerouteコマンドなどの
ネットワークの確認コマンドで使用されるプロトコル

これらのプロトコルとその他の関連プロトコルを総称してTCP/IPと呼ばれる

OSI参照モデル
(ISOとITU-Tという団体によって策定された
データ通信の標準アーキテクチャ)
TCP/IPの構造
アプリケーション層
プレゼンテーション層
セッション層
アプリケーション層
(HTTP、SMTP、TELNETなど)
トランスポート層 トランスポート層
(TCP、UDPなど)
ネットワーク層 インターネット層
(IP、ICMPなど)
データリンク層
物理層
ネットワークインタフェース層

 

 

●IPアドレスとサブネットマスク

TCP/IPネットワークにおいてネットワークに接続されたホスト(PC、サーバ、ルータ、スイッチなど)にはIPアドレスが割り当てられる

現在のIPv4では2進数32ビットのアドレスが使用される(IPv6では128ビット)

合計32ビットを8ビットずつドットで4つに区切り、1つの区切りをオクテットと呼ぶ

その1つの区切りを左から、第1オクテット.第2オクテット.第3オクテット.第4オクテット と呼ぶ

1つのオクテットは2進数の8桁(2の8乗)なので256通りになる

2進数を10進数に直すと0〜255(256通り)までの整数で表現される

 

IPアドレスはそのアドレスが割り当てられたホストが属するネットワークを表すネットワークアドレス部と、
そのネットワーク内の各ホストを識別するためのホストアドレス部から構成される

その2つの部分の境界を表すのがサブネットマスク

サブネットマスクも32ビット4つのオクテットで構成され、必ずIPアドレスと対で表される

サブネットマスクを2進数に直し、左から2進数のビットが立っている(1になっている)ビットまでが、
そのサブネットマスクと対になっているIPアドレスの、ネットワークアドレス部分であることを示している

  10進数 2進数
IPアドレス 192.168.1.5 11000000.10101000.00000001.00000101
サブネットマスク
(10進数表記)
255.255.255.0 11111111.11111111.11111111.00000000
                     ↑が境界なので

ネットワークアドレス  |  ホストアドレス
  192.168.1.0      |      5

またサブネットマスクは10進数表記だけでなく2進数のビット数で表記されることもある
255.255.255.0は2進数に直すと左から24ビット目までビットが立っているので、
IPアドレスと対に192.168.1.5/24と表されることもある

同一のネットワークアドレスを持つIPアドレスの集合をネットワークセグメント(=1つのネットワーク)と呼ぶ

上記の例の場合、
192.168.1.0〜192.168.1.255が1つのネットワークとなる

であるためホスト(PCやネットワーク機器)に割り当てることはできない

 

IPアドレスのクラス(第1オクテットの数字によって分類される)

クラス 第1オクテット 既定のネットワークアドレス 既定のサブネットマスク 主な用途
A 0〜127 上位8ビット 255.0.0.0 ホストの多い大規模なネットワーク
B 128〜191 上位16ビット 255.255.0.0 中規模なネットワーク
C 192〜223 上位24ビット 255.255.255.0 ホストの少ない小規模なネットワーク
D 224〜239 - - マルチキャスト(ある特定のグループへの通信)
E 240〜255 - - 実験用

第1オクテットが0や127のIPアドレスは特殊な用途で使用されるので、ホストに割り当てることは出来ない

 

クラスごとのプライベートIPアドレス(インターネット上では使用できない)⇔グローバルIPアドレス

クラス プライベートIPアドレス範囲 サブネットマスクを付加した表記
A 10.0.0.0〜10.255.255.255 10.0.0.0/8
B 172.16.0.0〜172.31.255.255 172.16.0.0/12
C 192.168.0.0〜192.168.255.255 192.168.0.0/16

 

CIDR(サイダー)Classless Inter-Domain Routing :
ホストの少ない小規模なネットワークに用いられるクラスCのネットワークでも、
ネットワークアドレスとブロードキャストアドレスを除くとホストに割り当てることが出来るIPアドレスは254もある
しかし現実にはホストが数台というネットワークセグメントもあり、
各クラスの既定のサブネットマスクを使用するだけでは、割り当てられることのないIPアドレスが多数発生する

その不効率を解消するためCIDRという方法により、
ネットワークアドレスの長さを任意に設定することができる
ネットワークアドレスの長さを各クラスで既定されている長さよりも長くすれば、
その分ホストアドレス部分が短くなり、
結果、ホストに割り当てることが出来るIPアドレスが減ることになる
それと同時にネットワークアドレスの長さを長くした分だけ、
使用できるネットワークの数が増えることになる

このようにIPアドレスを割り当てる必要のあるホストの数に応じて、
ネットワークアドレスの長さ(つまりサブネットマスク)を柔軟に変更するのがCIDRの考え方

192.168.0.0/24をCIDRによって、192.168.0.0/26にした場合、
ネットワークアドレス部分が2ビット増えたことで、2の2乗=4つのネットワークが増え、
逆にホストアドレス部分が2ビット減って6ビットになったことで、2の6乗=64⇒ネットワークアドレスとブロードキャストアドレスを除くと62(1つのネットワークあたりのホスト数)になる
つまりクラスCの1つのネットワーク細かく分割したことになる
(0〜255の1つのネットワークを0〜63、64〜127、128〜191、192〜255の4つのネットワークに分割して使用する)

CIDRによって細かく分割されたネットワークをサブネットワークと呼ぶ

 

192.168.0.0/24

1つのネットワーク

0〜255

ネットワークアドレス:192.168.0.0/24
ブロードキャストアドレス:192.168.0.255/24

              ↓ 

192.168.0.0/26     ↓

1つのサブネットワーク

0〜63

ネットワークアドレス:192.168.0.0/26
ブロードキャストアドレス:192.168.0.63/26

1つのサブネットワーク

64〜127

ネットワークアドレス:192.168.0.64/26
ブロードキャストアドレス:192.168.0.127/26

1つのサブネットワーク

128〜191

ネットワークアドレス:192.168.0.128/26
ブロードキャストアドレス:192.168.0.191/26

1つのサブネットワーク

192〜255

ネットワークアドレス:192.168.0.192/26
ブロードキャストアドレス:192.168.0.255/26

 

 

●ポート番号

1つのホスト上でネットワーク通信を行うアプリケーションやサービスを識別するために使われる

郵便物に例えると
ネットワークアドレスがマンションの住所、
ホストアドレスが部屋番号、
ポート番号がその部屋に住んでいる人の名前

ウェルノウンポート(Well-known port)
一般的なアプリケーションやサービスには1024未満であらかじめポート番号が決められている

ポート番号 アプリケーション・
サービス
説明
20 FTP(データ転送) ファイル転送のデータ
21 FTP(制御情報) ファイル転送の制御
23 Telnet リモート接続
25 SMTP 電子メール送信・転送
53 DNS ドメイン名・ホスト名の解決
80 HTTP WEBサイトの参照
110 POP3 電子メールの受信
119 NNTP ネットニュースの参照
139 NetBIOS マイクロソフトネットワーク
(エクスプローラによるブラウジングなど)
143 IMAP(IMAP2) 電子メールの受信・読み出し
161 SNMP ネットワーク機器の監視

ウェルノウンポートはICANNによって管理されいるが、
ウェルノウンポート以外にも予約されているポート番号がある
データベースシステムPostgreSQLは5432番など
このようにベンダーやグループの申請により割り当てが可能なポート番号を
レジスターポート(1024〜49151)と呼ぶ

ポート番号とLinuxシステム上のサービスの対応は、
/etc/services ファイルに記述される

 

 

 

 

 

ネットワークの設定

 

●ホストレベルのネットワーク設定

ネットワークの基本的な設定は、/etc/sysconfig/network ファイルに記述する

------/etc/sysconfig/network----------

NETWORKING=yes     ←ネットワークを有効化

HOSTNAME=lpic      ←ホスト名を設定

GATEWAY=192.168.1.1  ←デフォルトゲートウェイ(ネットワークの出口)を指定

------------------------------------

*ホスト名の設定は、ディストリビューションによって、/etc/hostname(または/etc/HOSTNAME)ファイルに記述する

またネットワーク名とネットワークアドレスの対応が記述されている /etc/networks というファイルも存在することがある

 

そのホストのIPアドレスやサブネットマスクなどを設定するファイルは、

に記述する

 

そのホストで実行されているネットワークサービスとポート番号の対応は、/etc/services ファイルにTCPとUDP毎に記述する

 

IPアドレスやサブネットマスクなどの設定をDHCPサーバから動的に割り当てられるようにするには、

 

●名前解決の設定

ホスト名やドメイン名をIPアドレスへ変換する方法は、

  1. etc/hosts ファイルを使う
  2. DNSサーバのサービスを利用する

などがあり、クライアントホストでどれを優先して名前解決を行うか設定するには、
/etc/host.conf ファイルか/etc/nsswitch.conf ファイルを編集する

etc/hosts ファイルを使って名前解決をする場合は、
etc/hosts ファイルにIPアドレス・ホスト名・ホストの別名の順番に記述する

DNSサーバのサービスを利用して名前解決をする場合は、
/etc/resolv.conf ファイルにドメイン名と利用するDNSサーバのIPアドレスを記述する

 

●PPPの概要と設定

PPP(Point-to-Point Protocol):
インターネットなどのWAN環境で2つの地点間を接続するために使われるプロトコル
電話回線とモデムを使ったダイアルアップ接続で使われるのが一般的

PPP接続を行う必要があるときに自動的にPPPデーモン(pppd)が起動される
PPPクライアント(接続しに行く側)からPPPサーバ(接続される側)へ接続するやり取りを自動化するには、chatスクリプトを利用する

PPP接続をする際、ユーザ認証をするには

のいずれかを使用する
これらの認証情報を参照するには、

をスーパーユーザ(root)権限で参照する

 

 

 

 

ネットワークコマンド

 

●ネットワーク設定の確認

コマンド 説明 書式 主なオプション 補足
ifconfig ネットワークインタフェース設定の確認 ifconfig [インタフェース] [パラメータ] netmask
サブネットマスクを指定

up
指定したインタフェースをアクティブにする

down
指定したインタフェースをダウンにする

hostname ホスト名の表示と設定 hostname [ホスト名] ホスト名を設定できるのは
スーパーユーザのみ
route ルーティング情報の設定と表示 route [オプション・キーワード] -F
ルーティングテーブルを表示する

-C
ルーティングキャッシュを表示する

add
経路を追加する

del
経路を削除する

gw
デフォルトゲートウェイを設定する

 

 

●ネットワーク接続の確認

コマンド 説明 書式 主なオプション 補足
ping 目的のホストへのネットワーク接続を確認 ping [オプション] ホスト/IPアドレス -c 回数 :
ICMPパケットの送信回数を指定
traceroute 目的のホストへの経路を表示 traceroute [ホスト/IPアドレス]  
netstat ネットワークに関する情報や
ソケットを表示

ソケット:
アプリケーションでTCP/IPを使って
通信を行うために利用するインタフェース

netstat [オプション] -a :
接続待ちと接続待ちでないソケットを表示

-i :
ネットワークインタフェースの統計情報を表示

-p :
ソケットを使っているプログラムのPIDとプロセス名を表示

-r :
ルーティングテーブルを表示

 

●ネットワークツール

コマンド 説明 書式 主なオプション 補足
telnet 指定したホストへ接続する telnet [ホスト/IPアドレス [ポート番号] ] ホスト/IPアドレスを指定しないと
対話モードに入る

ポート番号を指定しないと
デフォルトのポート番号23が使用される

ftp 指定したホストとファイル転送を行う

最近ではFTPよりも高機能な
lftpやncftpなども利用されている

ftp [ホスト]

指定したホストに接続後、
サブコマンドを使って対話的にファイル転送を行う

FTPのサブコマンド

ls ファイル :
リモート側のファイル一覧を表示

pwd :
リモート側のカレントディレクトリを表示

get ファイル :
リモート側からファイルを受信

put ファイル :
リモート側へファイルを送信

ascii またはbinary :
転送モードをASCIIまたはバイナリに設定

quit :
FTPを終了する

 

 

 

 

inserted by FC2 system