1.3. このドキュメントで使う用語

事前説明の必要な用語は、このドキュメントにはわずかしかない。このセクションでは、主立った用語と、それをドキュメント中で使う理由を説明する。

コネクション -- (Connection) このドキュメントにおいてのこの語彙は、相互に関わりを持つパケットの集まりを指す。パケット同士は、確立済み (established) の関係となるわけだ。コネクションはまた、一連のパケットの遣り取りだとも言える。 TCP 接続で言えば 3 ウェイハンドシェイクを踏んで接続を確立することを主に指し、切断のためのハンドシェイクが完了するまでがひとつのコネクションと解釈される。

DNAT -- 宛先ネットワークアドレス変換 (Destination Network Address Translation)。 DNAT とは、パケットの宛先IPアドレスを変換する技術、または変えること自体を指す。 SNAT と組み合わせて、インターネット上でルーティング可能な 1 個の IPアドレスを複数のホストでシェアしたり、サーバサービスを提供したりするのに用いられる。これは通常、インターネット上でルーティング可能な 1 個の IPアドレスに対して、別のポートを振り直し、 Linux ルータに宛先を指示することにより行われる。

IPSEC - インターネット・プロトコル・セキュリティ (Internet Protocol Security) は IPv4 パケットを暗号化してインターネットへ安全に送信するためのプロトコル。 IPSEC についてもっとよく知りたければ、付録 その他の資料とリンク を参照して他の資料を探してみるといいだろう。

カーネル空間 -- (Kernel space) いわば、ユーザ空間の反意語。カーネルの内側での出来事、カーネルの外でないところで起こるあらゆる事象を指す。

パケット -- (Packet) ネットワーク伝送の最小単位であり、ひとつのヘッダとデータ部から成る。例えば IP パケットや TCP パケットがある。インターネットの規約 (Request For Comments = RFC) では、 IP パケットを表すにはデータグラム (datagram)、 TCP パケットにはセグメント (segment) という呼び名が使われるが、"パケット"という言葉は普遍化されていない。僕は、物事を単純化するために、このドキュメント内ではどれもこれもパケットと呼ぶことにした。

QoS - サービス品質 (Quality of Service) とは、特定のパケットの送信に際してパケット処遇の優先度や提供する品質を指定するひとつの方法だ。この話題に関しては チャプター TCP/IPのおさらい でも述べているし、付録 その他の資料とリンク からは外部資料にアクセスすることができる。

セグメント -- (Segment) TCPセグメントは "パケット" とほぼ同義だが、 TCP パケットを表す時の "かしこまった" 呼び方。

ストリーム -- (stream) この語句は、某かの意味で互いに関係性のあるパケットをやりとりする接続を指す。僕は元来、2つ以上のパケットを双方向に送るあらゆる接続に対してこの語句を使ってきた。つまり TCP においては、SYN を送り SYN/ACK で応答することを意味するが、SYN を送り ICMP Host unreachable を受け取ることも、やはりこの語句に当てはまる。非常に曖昧に使う、とも言える。

SNAT -- 送信元ネットワークアドレス変換 (Source Network Address Translation)。パケットの送信元アドレスを変換する技術のこと。 IPアドレスの枯渇 (IPv6が救うだろう) に瀕した現在、この技術よって、ひとつの IPv4インターネットIPアドレスを複数のホストで共有可能にしている。

ステート -- (state) この語句は、パケットがどの状態にあるかを指す。状態とは RFC 793 - Transmission Control Protocol に照らして言う場合もあるし、 Netfilter/iptables で使用されるユーザ空間上での状態を言う場合もある。憶えておいてほしいのは、iptables の利用するステート は、カーネル内外のどちらのステート も、 RFC793 の定義とは異なるという点だ。その主たる理由は、 Netfilter が接続とパケットについてあれこれと推測を行うためそれらを駆使する必要があるからだ。

ユーザ空間 -- (User space) 僕はこの語句で、カーネルの外で起きるあらゆる事柄を指す。例えば、iptables -h はカーネルの外だが、iptables -A FORWARD -p tcp -j ACCEPT はルールセットに新たなルールを加えるので (部分的にしても) カーネル内の出来事だ。

ユーザランド -- (Userland) ユーザ空間を参照のこと。

VPN - バーチャル・プライベート・ネットワーク (Virtual Private Network) は、非プライベートなネットワーク上 (インターネットなど) で、プライベートなネットワークを仮想的に形成する技術のこと。 VPN を形成するそうした技術のひとつに IPSEC がある。 OpenVPN もそのひとつだ。