ネットワークの基礎的な事柄について解説します。すべて理解することが望ましいですが、「Linuxにおけるネットワーク関連コマンド」以降さえきちんと押さえられていれば前半部分は目を通す程度でもかまいません。
ネットワークにおける相互接続に関する規約をまとめたOSI(Open System Interconnection)のモデルで、それぞれの機能と共に7つに分けられています。下記の図参照。
TCP/IPとは、ネットワーク層プロトコルはIPでトランスポート層プロトコルはTCPとUDPの2つをもつ形態である。それぞれOSI参照モデルと対応しており、プロトコルの観点から見た区分けとしても考えられます。
今回はsshdに必要なネットワーク層より上位の説明に重点を置きます。
Wide Area Networkの略。異なる地域にあるコンピュータ同士を電話回線などの公衆回線を使って通信することです。
Local Area Networkの略。企業内や学校内での限られた場所でのコンピュータ同士の通信のことです。
| Class | 先頭bit | NetID | 実際の範囲(/の位置までがNetID) | 割り当てられるホスト(コンピュータ)数 |
|---|---|---|---|---|
| Class A | 0 | 先頭8bit | 0~127/.*.*.* | 16777216 |
| Class B | 10 | 先頭16bit | 128~191.*/.*.* | 65536 |
| Class C | 110 | 先頭24bit | 192~223.*.*/.* | 256 |
| Class D | 1110 | - | 224~239.*.*.* | - |
| Class E | 1111 | - | 240~255.*.*.* | - |
Classless Inter-Domain Routingの略。現在では、クラスでネットワークアドレスを分ける以外に、ネットワークアドレスをIPアドレスの最後に/を付けネットワークアドレスのbit部分を表記する、というCIDR表記が多く使われています。この表記では、上記のクラス分けよりもっと細かくネットワークアドレスを区切ることができます。この表記が使われる場合、上記のクラス分けは適用されません。
| Class | 範囲 |
|---|---|
| Class A ×1 | 10.0.0.0 ~ 10.255.255.255 |
| Class B ×16 | 172.16.0.0 ~ 172.31.255.255 |
| Class C ×256 | 192.168.0.0 ~ 192.168.255.255 |
ネットワークインタフェースを設定するコマンドです。引数を付けずに実行すると現在環境を確認することができます。Windowsでいうipconfigと似ています。設定の変更はrootでしか行うことはできません。
ifconfig 起動しているインターフェイスごとのネットワーク設定を表示する
-a 存在するインターフェイスごとのネットワーク設定を表示する
[root@localhost root]# ifconfig
eth0 Link encap:Ethernet HWaddr 00:D0:B7:2A:4D:CF
inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2710298 errors:265 dropped:0 overruns:0 frame:265
TX packets:1744247 errors:0 dropped:0 overruns:0 carrier:0
collisions:37089 txqueuelen:1000
RX bytes:714096076 (681.0 Mb) TX bytes:272072076 (259.4 Mb)
Interrupt:10 Base address:0x1400 Memory:f0101000-f0101038
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:189852 errors:0 dropped:0 overruns:0 frame:0
TX packets:189852 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:23705457 (22.6 Mb) TX bytes:23705457 (22.6 Mb)
| 項目 | 意味 | 説明 |
|---|---|---|
| Link encap | リンクメディアの種類 | EthernetやToken Ringなどのネットワークの形態を指します。ほとんどはEthernetです。 |
| HWaddr | MACアドレス | NIC(Network Interface Card)に固有に設定されているMACアドレスという情報を表しています。 |
| inet addr | IPアドレス | 手動で設定された、またはDHCPによって割り振られたIPアドレスを表しています。 |
| Bcast | ブロードキャストアドレス | 所属するネットワークのブロードキャストアドレスを表しています。個別に設定することも可能です。 |
| MASK | ネットマスク | 設定されたネットマスクを表しています。 |
| UP | NICの起動状態 | UPは正しく起動していることを示します。 |
| BROADCAST | ブロードキャスト | ブロードキャストが使用可能な時に表示されます。 |
| RUNNING | NICの準備状態 | ドライバが正常にロードされ、メモリへのリソースが割り当てられている状態を表します。この状態が起動準備が整った状態です。 |
| MULTICAST | マルチキャスト | マルチキャストが使用可能な時に表示されます。 |
| MTU | Maximum Transfer Unit | インターネットとの通信で一度に送ることのできるIPパケットのデータサイズの最大値を表しています。単位はバイト。 |
| Metric | メトリック値 | 通常は1。IPパケットにおけるTTL(Time To Live)値を引くための値です。 |
| RX packets… | 受信パケット統計値 | 順に送受信パケット数、エラーパケット数、破棄パケット数、オーバーランパケット(処理が間に合わなかったパケット)数を表しています。 |
| TX packets… | 送信パケット統計値 | 上記と同様。 |
| collisions | 衝突検知回数 | 統計におけるパケットの衝突を検知した回数を表しています。 |
| txqueuelen | パケットの送信サイズ | 統計におけるパケット送信サイズを表しています。 |
| Interrupt | 割り込み | NICが使用する割り込み番号です。 |
| Base address | I/Oアドレス | NICの開始I/Oアドレスを表しています。 |
Red Hat系ディストリビューションに用意されているネットワークの設定を簡単に変更できるツールです。IPアドレス、サブネットマスク、デフォルトゲートウェイなどを設定できます。このコマンドはrootでしか実行できません。このコマンドで設定を変更すると後述する各種設定ファイルが更新されます。
Windowsにもあるネットワークステータスを表示するコマンドです。オプションがWindowsとは異なるので注意が必要です。よく使うオプションは次の通りです。
利用例: netstat -a
netstat -an | grep LISTEN
| オプション | 内容 |
|---|---|
| なし | 現在の有効な接続(ESTABLISHED)のみを表示する。 |
| -a | 現在のすべての接続を表示する |
| -n | 出力をIPアドレスなど数値のみに抑制する |
| -t | TCPのみ表示する |
| -u | UDPのみ表示する |
| -w | ICMPのみ表示する |
| -l | LISTEN状態の接続のみ表示する |
個々のネットワークインタフェースに関する設定が保存されています。ifcfg-eth0の場合、eth0に割り当てられたネットワークインタフェース用の設定ファイルです。
[user1@localhost user1]$ cat /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 ONBOOT=yes BOOTPROTO=static IPADDR=192.168.1.2 NETMASK=255.255.255.0 GATEWAY=192.168.1.1
| 項目 | 意味 |
|---|---|
| DEVICE | 該当デバイスのインターフェース名を指定します。 |
| ONBOOT | マシン起動時にこのインタフェースを起動するかを指定します。 |
| BOOTPROTO | DHCPを使用する場合はdhcp、しない場合はstaticまたはnoneが指定します。 |
| IPADDR | IPアドレスを指定します。 |
| NETMASK | ネットマスクを指定します。 |
| GATEWAY | デフォルトゲートウェイを指定します。 |
ネットワークに関する全体の設定が保存されています。
[user1@localhost user1]$ cat /etc/sysconfig/network NETWORKING=yes HOSTNAME=localhost.localdomain
| 項目 | 意味 |
|---|---|
| NETWORKING | ネットワークを使用するかを指定します。 |
| HOSTNAME | ホスト名を指定します。 |
IPアドレスとホスト名の対応リストが保存されています。通常名前解決に利用するDNSを参照する前にこのファイルが参照されます。
[user1@localhost user1]$ cat /etc/hosts # Do not remove the following line, or various programs # that require network functionality will fail. 127.0.0.1 localhost.localdomain localhost
名前解決に利用するDNSサーバに関する設定が保存されています。
[user1@localhost user1]$ cat /etc/resolv.conf nameserver 192.168.1.1 domain localhost.localdomain search localhost.localdomain
| 項目 | 意味 |
|---|---|
| nameserver | 名前解決に利用するDNSサーバを指定します。複数列記述することもできます。 |
| domain | 自身を表すドメイン名を指定します。 |
| search | 不完全なFQDN(rat)でアクセスを行おうとする場合に、ドメイン名を補って名前解決を行うようにするためのドメイン名を指定する。スペースかタブで区切って複数指定することができます。 |