目次
![]() |
ティップ |
|---|---|
GNU/Linux のネットワーク設定の一般的ガイドは Linux Network Administrators Guide を参照下さい。 |
![]() |
ティップ |
|---|---|
Although this document still uses old
ifconfig(8)
with IPv4 for its network configuration examples, Debian is moving to
ip(8)
with IPv4+IPv6 in the |
現代的な Debian システムの基本的ネットワークインフラをレビューします。
表5.1 GUI のネットワーク設定ツール
| パッケージ | ポプコン | サイズ | タイプ | 説明 |
|---|---|---|---|---|
ifupdown *
|
V:60, I:99 | 158 | 設定::ifupdown | ネットワークを接続したり切断したりする標準化されたツール (Debian 特定) |
ifplugd *
|
V:0.4, I:1.0 | 352 | , , | 有線ネットワークを自動的に管理 |
ifupdown-extra *
|
V:0.04, I:0.2 | 119 | , , |
"ifupdown" パッケージを強化するネットワークテストスクリプト
|
ifmetric *
|
V:0.02, I:0.09 | 100 | , , | ネットワークインターフェースの経路メトリック設定 |
guessnet *
|
V:0.05, I:0.2 | 449 | , , |
"/etc/network/interfaces" ファイル経由で
"ifupdown" パッケージを補強する mapping スクリプト
|
ifscheme *
|
V:0.02, I:0.06 | 132 | , , |
"ifupdown" パッケージを補強する mapping スクリプト
|
ifupdown-scripts-zg2 *
|
V:0.00, I:0.03 | 232 | , , | Zugschlus さんの ifupdown の手動方法のインターフェーススクリプト |
network-manager *
|
V:30, I:37 | 3757 | 設定::NM | NetworkManager (デーモン): ネットワークを自動管理 |
network-manager-gnome *
|
V:22, I:33 | 5577 | , , | NetworkManager (GNOME フロントエンド) |
network-manager-kde *
|
V:1.0, I:2 | 36 | , , | NetworkManager (KDE フロントエンド) |
wicd
*
|
I:3 | 47 | 設定::wicd | 有線と無線のネットワークマネージャー (メタパッケージ) |
wicd-cli *
|
V:0.05, I:0.4 | 78 | , , | 有線と無線のネットワークマネージャー (コマンドラインクライアント) |
wicd-curses *
|
V:0.2, I:0.7 | 191 | , , | 有線と無線のネットワークマネージャー (Curses クライアント) |
wicd-daemon *
|
V:3, I:3 | 1891 | , , | 有線と無線のネットワークマネージャー (デーモン) |
wicd-gtk *
|
V:2, I:3 | 547 | , , | 有線と無線のネットワークマネージャー (GTK+ クライアント) |
iptables *
|
V:25, I:99 | 1289 | 設定::Netfilter | パケットフィルターと NAT のための管理ツール (Netfilter) |
iproute *
|
V:50, I:94 | 980 | 設定::iproute2 | iproute2、IPv6 や他の上級ネットワーク設定: ip(8) や tc(8) 等 |
ifrename *
|
V:0.2, I:0.4 | 192 | , , | 各種の静的クライテリアに基づきネットワークインターフェースを改名します: ifrename(8) |
ethtool *
|
V:5, I:14 | 225 | , , | Ethernet デバイス設定の表示と変更 |
iputils-ping *
|
V:37, I:99 | 156 | test::iproute2 | ホスト名か IP アドレスによってリモートホストのネットワークからの到達性をテスト (旧来、GNU) |
iputils-arping *
|
V:0.4, I:4 | 80 | , , | ARP アドレスによって特定されるリモートホストのネットワークからの到達性をテスト |
iputils-tracepath *
|
V:0.4, I:2 | 116 | , , | リモートホストへのネットワークパスを追跡 |
net-tools *
|
V:71, I:99 | 996 | 設定::net-tools | NET-3 ネットワーキングツールキット (net-tools、IPv4 ネットワーク設定): ifconfig(8) 等 |
inetutils-ping *
|
V:0.04, I:0.12 | 278 | テスト::net-tools | ホスト名か IP アドレスによってリモートホストのネットワークからの到達性をテスト (旧来、GNU) |
arping *
|
V:0.4, I:3 | 104 | , , | ARP アドレスによって特定されるリモートホストのネットワークからの到達性をテスト (旧来) |
traceroute *
|
V:12, I:99 | 144 | , , | リモートホストへのネットワークパス追跡するツール (旧来、コンソール) |
isc-dhcp-client *
|
V:39, I:67 | 1775 | 設定::低レベル | DHCP クライアント |
wpasupplicant *
|
V:33, I:44 | 1198 | , , | WPA と WPA2 (IEEE 802.11i) のためのクライアントサポート |
wpagui *
|
V:0.09, I:0.9 | 726 | , , | wpa_supplicant の Qt GUI クライアント |
wireless-tools *
|
V:7, I:23 | 325 | , , | Linux のワイアレス拡張を操作するツール |
ppp
*
|
V:7, I:41 | 1016 | , , |
chat による PPP/PPPoE コネクション
|
pppoeconf *
|
V:0.2, I:3 | 340 | 設定::ヘルパー | PPPoE コネクションの設定ヘルパー |
pppconfig *
|
V:0.16, I:1.4 | 1024 | , , |
chat による PPP コネクションの設定ヘルパー
|
wvdial *
|
V:0.4, I:1.9 | 348 | , , |
wvdial と ppp による PPP コネクションの設定ヘルパー
|
mtr-tiny *
|
V:1.6, I:15 | 113 | テスト::低レベル | リモートホストへのネットワークパスを追跡するツール (curses) |
mtr
*
|
V:0.6, I:3 | 154 | , , | リモートホストへのネットワークパスを追跡するツール (curses と GTK+) |
gnome-nettool *
|
V:3, I:34 | 2920 | , , | 共通のネットワーク情報操作のためのツール (GNOME) |
nmap
*
|
V:5, I:28 | 7104 | , , | ネットワークマッパー / ポートスキャナー (Nmap、コンソール) |
zenmap *
|
V:0.2, I:1.4 | 2400 | , , | ネットワークマッパー / ポートスキャナー (GTK+) |
tcpdump *
|
V:3, I:22 | 999 | , , | ネットワークトラフィックアナライザー (Tcpdump、コンソール) |
wireshark *
|
V:1.4, I:8 | 2208 | , , | ネットワークトラフィックアナライザー (Wireshark、GTK+) |
tshark *
|
V:0.4, I:3 | 303 | , , | ネットワークトラフィックアナライザー (コンソール) |
nagios3 *
|
V:0.5, I:1.7 | 29 | , , | ホストとサービスとネットワークを監視や管理するシステム (Nagios) |
tcptrace *
|
V:0.05, I:0.3 | 389 | , , |
tcpdump の出力から接続状況のまとめを作成
|
snort
*
|
V:0.4, I:0.6 | 1659 | , , | 柔軟なネットワーク侵入検知システム (Snort) |
ntop
*
|
V:0.7, I:1.6 | 1856 | , , | ネットワークの使用状況をウェッブブラウザーで表示 |
dnsutils *
|
V:13, I:91 | 373 | , , | BIND によって提供されるネットワーククライアント: nslookup(8) と nsupdate(8) と dig(8) |
dlint
*
|
V:0.4, I:6 | 96 | , , | ネームサーバーの閲覧で DNS のゾーン情報をチェック |
dnstracer *
|
V:0.07, I:0.4 | 92 | , , | DNS サーバーをその源流まで追跡 |
ドメイン名を名付けるのは通常 PC ワークステーションのユーザーにとってはトリッキーです。PC ワークステーションは、ネットワークを渡り歩く可動 PC かもしれないし、インターネットからアクセスできない NAT ファイアーウォールの背後にあるかもしれません。そのような場合、ドメイン名がかち合うのを避けるために有効なドメイン名をドメイン名として選びたくないでしょう。
If you are not sure what to chose for the domain name, choose
"localdomain".
Other popular choices for such invalid and safe top-level domain (TLD) seem to be
"lan", "localnet",
"home", "invalid", or
"local" according to my incoming mail analysis. This is
consistent with the reported invalid TLD queries. You may also chose some
unused second or third level domains.
.invalid: is intended for use in online construction of domain names that are sure to be invalid and which it is obvious at a glance are invalid. (rfc2606)
".local": the pseudo-top-level domain used by the mDNS network discovery protocol (Apple Bonjour / Apple Rendezvous, Avahi on Debian).
![]() |
警告 |
|---|---|
あなたの LAN の DNS サービスが " |
![]() |
ティップ |
|---|---|
無効なドメイン名を使う時には、MTA 等のプログラムによって使われるドメイン名を偽装する必要があります。「メールアドレス設定」を参照ください。 |
ホスト名の解決もまた、現在 NSS (ネームサービススイッチ、Name Service Switch) メカニズムによってサポートされています。この解決の流れは次です。
"hosts: files dns" のようなスタンザのある
"/etc/nsswitch.conf"
ファイルがホスト名の解消の順序を規定します。(これは、"/etc/host.conf" ファイル中の
"order" スタンザの機能を置換します。)
files メソッドが最初に発動されます。ホスト名が
"/etc/hosts"
ファイルに見つかると、それに対応する全ての有効アドレスを返し終了します。("/etc/host.conf"
ファイルは "multi on" を含みます。)
dns メソッドが発動されます。"/etc/resolv.conf"
ファイルで識別されるインターネットドメイン名システム
(DNS) への問い合わせでホスト名が見つかれば、それに関する全ての有効アドレスを返します。
例えば、"/etc/passwd" は以下の内容です。
127.0.0.1 localhost 127.0.1.1 <host_name>.<domain_name> <host_name> # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ff02::3 ip6-allhosts
Each line starts with a IP address and it is followed by the associated hostname.
The IP address 127.0.1.1 in the second line of this
example may not be found on some other Unix-like systems. The Debian Installer creates this entry for a
system without a permanent IP address as a workaround for some software
(e.g., GNOME) as documented in the bug
#316099.
The <host_name> matches the hostname defined in the
"/etc/hostname".
For <domain_name> of the mobile PC, you may chose invalid and safe
domain such as "localdomain". (See 「ドメイン名」)
For a system with a permanent IP address, that permanent IP address should
be used here instead of 127.0.1.1.
For a system with a permanent IP address and a fully qualified domain name (FQDN) provided by the Domain Name System (DNS), that canonical <host_name> and <domain_name> should be used here.
resolvconf
パッケージがインストールされなかったら、"/etc/resolv.conf"
は静的なファイルです。インストールされると、それはシンボリックリンクになります。いずれにせよ、解決機構を初期化する情報を含んでいます。もし DNS が
IP="192.168.11.1" に見つかるなら、それは次の内容です。
nameserver 192.168.11.1
resolvconf パッケージはこの "/etc/resolv.conf"
をシンボリックリンクにし、フックスクリプトで自動的にその内容を管理します。
アドホクの mDNS のドメイン "local" 中で通常 Unix/Linux
プログラムによる名前解決を実質的にできるようにするマルチキャスト DNS (Zeroconf、別名 Apple Bonjour / Apple
Rendezvous) を使うホスト名解決は、libnss-mdns
パッケージをインストールすると提供できます。このような機能を有効にするには、"/etc/nsswitch.conf"
ファイル中に "hosts: files mdns4_minimal [NOTFOUND=return] dns
mdns4" のようなスタンザが必要です。
非推奨である NETBios over TCP/IP
を使うホスト名解決は、libnss-mdns
パッケージをインストールすると提供できます。このような機能を有効にするには、"/etc/nsswitch.conf"
ファイル中に "hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
wins" のようなスタンザが必要です。(最近の Windows システムは通常 dns
メソッドをホスト名の解決に使います。)
Linux カーネル中の各ハードウエアーは、それが見つかり次第ユーザー空間の設定メカニズム udev (「udev システム」参照) を通じて、例えば eth0
のようなネットワークインターフェース名が付与されます。ネットワークインターフェース名は、ifup(8)
と
interfaces(5)
の中で物理インターフェースと呼ばれています。
MAC
アドレス等を使って各リブート毎に永続性をもって各ネットワークインターフェースが名付けられるように記録するファイル
"/etc/udev/rules.d/70-persistent-net.rules" があります。このファイルは
"persistent-net-generator.rules" ルールファイルによって実行されているような
"/lib/udev/write_net_rules"
プログラムによって自動生成されます。そのファイルを変更することで命名ルールを変更できます。
![]() |
注意 |
|---|---|
" |
rfc1918 によってローカルエリアネットワーク (LAN) での使用に予約されている各クラス毎の IPv4 32ビットアドレス範囲を確認します。これらのアドレスは本来のインターネット上のアドレスとかち合う事が無いことが保証されています。
表5.2 ネットワークアドレス範囲のリスト
| クラス | ネットワークアドレス | ネットマスク | ネットマスク / ビット | サブネットの数 |
|---|---|---|---|---|
| A | 10.x.x.x | 255.0.0.0 | /8 | 1 |
| B | 172.16.x.x — 172.31.x.x | 255.255.0.0 | /16 | 16 |
| C | 192.168.0.x — 192.168.255.x | 255.255.255.0 | /24 | 256 |
![]() |
注記 |
|---|---|
これらのアドレス内の1つがホストに付与されている場合、そのホストはインターネットに直接アクセスせず、各サービスのプロキシとなるかネットワークアドレス変換 (NAT) をするゲートウエーを通してアクセスしなければいけません。ブロードバンドルーターは消費者 LAN 環境のために通常 NAT を行います。 |
Debian システムによってほとんどのハードウエアーデバイスはサポートされていますが、一部のネットワークデバイスはそのサポートのために DSFG non-free のドライバーが必要です。「Non-free ハードウエアードライバー」を参照下さい。
Debian の squeeze システム上では、NetworkManager (NM)
(network-manager と関連パッケージ) や Wicd (wicd と関連パッケージ) 等の管理デーモン経由でネットワーク接続の管理ができます。
![]() |
注記 |
|---|---|
サーバーにはこの様な自動ネットワーク設定を使わないで下さい。これらはラップトップ上のモービルデスクトップを主対象としています。 |
これらの現代的なネットワーク設定ツールは旧来の "ifupdown" パッケージやその
"/etc/network/interfaces"
設定ファイルとの競合を避けるように適正に設定する必要があります。
![]() |
注記 |
|---|---|
これらの自動ネットワーク設定ツール機能の一部は、リグレッションにあっているかもしれません。これらは旧来の
|
Debian 上での NM や Wicd
に関する正式のドキュメンテーションは、"/usr/share/doc/network-manager/README.Debian"
や "/usr/share/doc/wicd/README.Debian" によりそれぞれ提供されます。
デスクトップのための現代的ネットワーク設定の要点は以下です。
次のようにして、例えば foo というデスクトップユーザーを
"netdev" グループに属するようにします。(GNOME や KDE のような現代的デスクトップ環境の下では
D-bus 経由でそれを自動的にするのも一つの方法です。)
$ sudo adduser foo netdev
"/etc/network/interfaces" の設定を次のようにできるだけ簡単にします。
auto lo iface lo inet loopback
次のようにして NM や Wicd を再起動します。
$ sudo /etc/init.d/network-manager restart
$ sudo /etc/init.d/wicd restart
GUI 経由でネットワークを設定します。
![]() |
注記 |
|---|---|
|
![]() |
ティップ |
|---|---|
NM のネットワーク設定能力を拡張したい場合には、 |
![]() |
注意 |
|---|---|
こういった自動ネットワーク設定は、「ifupdown を使った基本的なネットワーク設定 (旧来)」や「ifupdown を使う上級ネットワーク設定 (旧来)」のような
" |
「デスクトップのためのモダンネットワーク設定」に記載された手法ではあなたの目的にとって不十分な場合には、多くの簡単なツールを組み合わせる旧来のネットワーク接続や設定を使うべきです。
旧来のネットワーク接続は手法毎に特定です (「ネットワーク接続方法 (旧来)」参照)。
Linux の低レベルネットワーク設定には2タイプのプログラムがあります (「Iproute2 コマンド」参照)。
旧式の net-tools プログラム (ifconfig(8)、…) は Linux NET-3 ネットワークシステム由来です。これらの多くはすでに時代遅れです。
新規の Linux iproute2 プログラム (ip(8)、…) は現行の Linux のネットワークシステムです。
これらの低レベルのネットワークプログラムは強力ですが、使うのが面倒です。そこで高レベルのネットワーク設定プログラムが作られました。
ifupdown パッケージは Debian
上のそのような高レベルネットワーク設定のデファクトスタンダードです。それを使うと、"ifup eth0"
とするだけでネットワークを立ち上げることができます。その設定ファイルは、"/etc/network/interfaces"
ファイルで、その典型的内容は次です。
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
resolvconf パッケージは、ネットワークアドレス解決設定ファイル
"/etc/resolv.conf"
の書き変えを自動化してネットワークアドレス解決の円滑な再構成をサポートするために ifupdown
システムを補完するために作られました。現在、ほとんどの Debian のネットワーク設定パッケージは
resolvconf パッケージを使うように変更されています
("/usr/share/doc/resolvconf/README.Debian"参照)。
ifplugd や guessnet や
ifscheme 等の ifupdown パッケージの補助スクリプトが有線
LAN 上の可動 PC
のためのネットワーク環境設定のようなネットワーク環境の動的設定を自動化するために作られました。これらはちょっと使い難いですが、既存の
ifupdown システムとは反りが合います。
詳細に例示とともに説明します (「ifupdown を使った基本的なネットワーク設定 (旧来)」と「ifupdown を使う上級ネットワーク設定 (旧来)」参照)。
![]() |
注意 |
|---|---|
本セクションで説明されている接続テスト方法はあくまでテスト目的のためのものです。毎日のネットワーク接続のために使うためではありません NM か Wicd
か |
典型的なネットワーク接続方法と PC までの接続経路は次のようにまとめられます。
表5.3 典型的なネットワーク接続方法と接続経路のリスト
| PC | 接続方法 | 接続経路 |
|---|---|---|
シリアルポート (ppp0)
|
PPP | ⇔ モデム ⇔ POTS ⇔ ダイヤルアップアクセスポイント ⇔ ISP |
イーサーネットポート (eth0)
|
PPPoE/DHCP/静的 | ⇔ BB モデム ⇔ BB サービス ⇔ BB アクセスポイント ⇔ ISP |
イーサーネットポート (eth0)
|
DHCP/静的 | ⇔ LAN ⇔ ネットワークアドレス変換 (NAT) 機能のある BB ルーター (⇔ BB モデム …) |
各接続方法のための設定スクリプトのまとめて次に記します。
表5.4 ネットワーク接続設定のリスト
| 接続方法 | 設定 | バックエンドパッケージ |
|---|---|---|
| PPP |
pppconfig 決定論的 chat の作成
|
pppconfig と ppp
|
| PPP (代替) |
wvdialconf はヒューリスティックのある chat の作成
|
ppp と wvdial
|
| PPPoE |
pppoeconf 決定論的 chat の作成
|
pppoeconf と ppp
|
| DHCP |
described in "/etc/dhcp/dhclient.conf"
|
isc-dhcp-client
|
| 静的 IP (IPv4) |
"/etc/network/interfaces" 中に記述されています
|
net-tools
|
| 静的 IP (IPv6) |
"/etc/network/interfaces" 中に記述されています
|
iproute
|
ネットワーク接続の省略語は次の意味です。
![]() |
注記 |
|---|---|
ケーブル TV 経由の WAN 接続サービスは大体 DHCP か PPPoE でサービスを受けます。ADSL と FTTP の接続サービスは大体 PPPoE でサービスを受けます。WAN 接続の正確な設定要件はあなたの ISP にご確認下さい。 |
![]() |
注記 |
|---|---|
BB ルータが家庭内 LAN 環境を作るのに使われる時には、LAN 上の PC はネットワークアドレス変換 (NAT) をして BB ルーター経由で WAN に接続されます。そのような場合、LAN 上の PC のネットワークインターフェースは静的 IP か BB ルーターからの DHCP でサービスを受けます。BB ルーターはあなたの ISP による指示にしたがって WAN に接続されるよう設定しなければいけません。 |
典型的な現代的な家庭内や小規模ビジネスネットワークの LAN は WAN (インターネット) に何らかの消費者向けブロードバンドルーターを使って接続されています。このルーターの後ろの LAN は通常ルーター上で稼働する動的ホスト設定プロトコル (DHCP) サーバーによりサービスを受けています。
Just install the isc-dhcp-client package for the Ethernet
served by the dynamic host
configuration protocol (DHCP).
See dhclient.conf(5).
設定スクリプト pppconfig はPPP
接続を次の選択をすることで対話式で設定します。
電話番号
ISP でのユーザー名
ISP のパスワード
ポートの速度
モデム通信のポート
認証方法
表5.6 pppconfig を使っての PPP 接続のための設定ファイルのリスト
![]() |
注意 |
|---|---|
もし |
低レベルのネットワーク設定ツールを使って次に記すように設定の確認ができます。
$ sudo pon <isp_name> ... $ sudo poff <isp_name>
"/usr/share/doc/ppp/README.Debian.gz" を参照下さい。
pppd(8)
を使う異なるアプローチは、wvdial パッケージが提供する
wvdial(1)
からそれを実行することです。電話を掛け接続の交渉をするために pppd
がchat(8)
を実行するのではなく、wvdial が電話を掛け接続の交渉をした後に
pppd を始動し後を任せます。
設定スクリプト wvdialconf は PPP 接続を次の選択をすることで対話式で設定します。
電話番号
ISP でのユーザー名
ISP のパスワード
ほとんどの場合 wvdial は接続をすることに成功し、自動的に認証データーのリストを管理します。
低レベルのネットワーク設定ツールを使って次に記すように設定の確認ができます。
$ sudo wvdial ... $ sudo killall wvdial
wvdial(1) と wvdial.conf(5) を参照下さい。
あなたの ISP が PPPoE 接続を提供し、あなたの PC を直接 WAN に接続すると決めた際には、あなたの PC のネットワークは PPPoE
で設定しないといけません。PPPoE とはイーサーネット経由の PPP の意味です。設定スクリプト
pppoeconf は PPPoE 接続を対話式で設定します。
設定ファイルは以下。
低レベルのネットワーク設定ツールを使って次に記すように設定の確認ができます。
$ sudo /sbin/ifconfig eth0 up $ sudo pon dsl-provider ... $ sudo poff dsl-provider $ sudo /sbin/ifconfig eth0 down
"/usr/share/doc/pppoeconf/README.Debian" を参照下さい。
Debian システム上の伝統的な TCP/IP ネットワークのセットアップは
ifupdown パッケージをより高レベルのツールとして使います。2つの場合があります。
可動 PC のような動的 IP システムの場合、TCP/IP ネットワークを
resolvconf パッケージを使い設定し、容易にネットワーク設定を切り替えられるようにしましょう (「DHCP サービスを受けるネットワークインターフェース」参照)。
サーバーのような静的 IP システムの場合、TCP/IP ネットワークを
resolvconf パッケージを使うことなく設定し、システムを単純にしましょう (「静的 IP を使うネットワークインターフェース」参照)。
このような伝統的設定方法は上級設定をしたい際に非常に有用です (「ifupdown を使った基本的なネットワーク設定 (旧来)」参照)。
ifupdown パッケージは Debian
システムでの高レベルネットワーク設定の標準化された枠組みを提供します。このセクションでは、簡略化された紹介と多くの典型例で
ifupdown を使った基本的なネットワーク設定を学びます。
ifupdown パッケージには2つのコマンドがあります:
ifup(8)
と
ifdown(8)。設定ファイル
"/etc/network/interfaces" により規定される高レベルのネットワーク設定を提供します。
表5.9 ifupdown を使う基本的なネットワーク設定コマンドのリスト
| コマンド | アクション |
|---|---|
ifup eth0
|
"iface eth0" スタンザがあれば、ネットワークインターフェース
eth0 をネットワーク設定 eth0 で起動
|
ifdown eth0
|
"iface eth0" スタンザがあれば、ネットワークインターフェース
eth0 に関するネットワーク設定 eth0 を終了し停止
|
![]() |
警告 |
|---|---|
up 状態にあるインターフェースを、ifconfig(8) や ip(8) コマンドのような低レベル設定ツールを使って設定してはいけません。 |
![]() |
注記 |
|---|---|
|
"/etc/network/interfaces" のシンタックスは
interfaces(5)
に説明されていて、要点を次に記します。
表5.10 "/etc/network/interfaces" のスタンザのリスト
| スタンザ | 意味 |
|---|---|
"auto <interface_name>"
|
システム起動時にインターフェース <interface_name> を起動 |
"allow-auto <interface_name>"
|
, , |
"allow-hotplug <interface_name>"
|
カーネルがインターフェースからのホットプラグイベントを認知した際にインターフェース <interface_name> を起動 |
"iface <config_name> …" によって始まる行
|
ネットワーク設定 <config_name> を規定 |
"mapping <interface_name_glob> " によって始まる行
|
<interface_name> に対応する <config_name> の mapping 値を規定 |
ハッシュ "#" で始まる行
|
コメントして無視 (行末コメントは非サポート) |
バックスラシュ "\" で終わる行
|
設定を次行に継続 |
iface
スタンザで始まる行は次のシンタクスです。
iface <config_name> <address_family> <method_name> <option1> <value1> <option2> <value2> ...
基本設定に関しては、mapping
スタンザは使われませんし、ネットワークインターフェース名をネットワーク設定名として使います (「mapping スタンザ」参照)。
![]() |
警告 |
|---|---|
" |
"/etc/network/interfaces"
ファイルに次の設定をすることでシステムブート時にループバックネットワークインターフェース lo が起動されます
(auto スタンザ経由)。
auto lo iface lo inet loopback
この設定は、"/etc/network/interfaces" ファイル中にいつも存在します。
「イーサーネットを使っての DHCP 接続」によりシステムの準備をした後、DHCP
によってサービスされるネットワークインターフェースは "/etc/network/interfaces"
ファイルの中に次のような設定エントリーを設定します。
allow-hotplug eth0 iface eth0 inet dhcp
Linux カーネルが物理インターフェース eth0 を認識した場合、allow-hotplug スタンザは
ifup によりそのインターフェースが起動させられるようにし、iface スタンザが
ifup がインターフェースが DHCP を使うように設定します。
静的 IP によってサービスされるネットワークインターフェースは
"/etc/network/interfaces" ファイル中に例えば次の設定エントリーを作ることで設定されます。
allow-hotplug eth0 iface eth0 inet static address 192.168.11.100 netmask 255.255.255.0 gateway 192.168.11.1 dns-domain example.com dns-nameservers 192.168.11.1
Linux カーネルが物理インターフェース eth0 を認識した場合、allow-hotplug スタンザは
ifup によりそのインターフェースが起動させられるようにし、iface スタンザが
ifup がインターフェースが静的 IP を使うように設定します。
ここでは次を仮定しています。
LAN ネットワークの IP アドレス範囲: 192.168.11.0 -
192.168.11.255
ゲートウエーの IP アドレス: 192.168.11.1
PC の IP アドレス: 192.168.11.100
resolvconf パッケージ: インストール済み
ドメイン名: "example.com"
DNS サーバーの IP アドレス: 192.168.11.1
resolvconf パッケージがインストールされていないと、DNS 関係の設定は手動で
"/etc/resolv.conf" を次のように編集する必要があります。
nameserver 192.168.11.1 domain example.com
![]() |
注意 |
|---|---|
上記例で用いた IP アドレスはそのままコピーされるべきものではありません。IP 番号はあなたの実際のネットワーク設定に合わせなければいけません。 |
ワイアレス LAN (省略すると WLAN) は IEEE 802.11 という標準群に基づく特別な免許なく使える無線を使う帯域拡散通信を経由の高速ワイアレス接続を提供します。
WLAN インターフェースは通常の Ethernet インターフェースと非常に似ていますが、始動時にネットワーク ID
と暗号キーデーターを必要とします。インターフェース名が使われるカーネルドライバーによって eth1 や
wlan0 や ath0 や
wifi0 等とインターフェース名が少々異なる以外は、それらに使われる高レベルのネットワークツールは
Ethernet インターフェースのものとまったく同じです。
![]() |
ティップ |
|---|---|
|
WLAN に関して留意すべきキーワードは次です。
表5.11 WLAN の略語のリスト
| 省略語 | 元の言葉 | 意味 |
|---|---|---|
| NWID | ネットワーク ID | 802.11 以前の WaveLAN ネットワークによって使われる16ビットネットワークID (非常に非推奨) |
| (E)SSID | (拡張) サービスセットアイデンティファイアー | 802.11 ワイアレス LAN が統合されて連結されてできるワイアレスアクセスポイント (APs) のネットワーク名、ドメイン ID |
| WEP, (WEP2) | 有線等価プライバシー | 第1世代の、40ビットのキーを使う64ビット (128ビット) のワイアレス暗号化標準 (非推奨) |
| WPA | Wi-Fi 保護アクセス (Protected Access) | 第2世代の、WEP との互換性のあるワイアレス暗号化標準 (802.11i の殆ど) |
| WPA2 | Wi-Fi 保護アクセス 2 (Protected Access 2) | 第3世代の、WEP との互換性のないワイアレス暗号化標準 (完全に 802.11i) |
実際のプロトコルの選択肢は採用しているワイアレスルーターによって普通制約されます。
新規のWPA/WPA2を使うWLANをサポートするには、wpasupplicantパッケージをインストールする必要があります。
WLAN 接続上の DHCP によってサービスされている IP
の場合には、"/etc/network/interfaces" ファイルのエントリーは次のようです。
allow-hotplug ath0 iface ath0 inet dhcp wpa-ssid homezone # hexadecimal psk is encoded from a plaintext passphrase wpa-psk 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f
"/usr/share/doc/wpasupplicant/README.modes.gz" を参照下さい。
旧式の WEP を使う WLAN をサポートするには、wireless-tools
パッケージをインストールする必要があります。(あなたの消費者用のルーターは今だにセキュアーでないインフラを使っているかもしれませんが、無いよりはましです。)
![]() |
注意 |
|---|---|
WEP を使う WLAN 上のネットワークトラフィックは他人に覗かれているかも知れないことを覚えておいて下さい。 |
WLAN 接続上の DHCP によってサービスされている IP
の場合には、"/etc/network/interfaces" ファイルのエントリーは次のようです。
allow-hotplug eth0 iface eth0 inet dhcp wireless-essid Home wireless-key1 0123-4567-89ab-cdef wireless-key2 12345678 wireless-key3 s:password wireless-defaultkey 2 wireless-keymode open
"/usr/share/doc/wireless-tools/README.Debian" を参照下さい。
以前説明したように PPP 接続を設定する必要があります (「pppconfig を使っての PPP 接続」参照)。さらに、第1番目の PPP デバイス
ppp0 のための "/etc/network/interfaces"
ファイルのエントリーを次のように追加します。
iface ppp0 inet ppp provider <isp_name>
以前説明したように wvdial を使う代替 PPP 接続をまず設定する必要があります (「wvdialconf を使った代替 PPP 接続」参照)。さらに、第1番目の PPP
デバイス ppp0 のための
"/etc/network/interfaces" ファイルのエントリーを次のように追加します。
iface ppp0 inet wvdial
PPPoE によってサービスされる直接 WAN に接続した PC の場合、以前説明したように PPPoE 接続を設定する必要があります (「pppoeconf を使った PPPoE 接続」参照)。さらに、第1番目の PPPoE デバイス
eth0 のための "/etc/network/interfaces"
ファイルのエントリーを次のように追加します。
allow-hotplug eth0 iface eth0 inet manual pre-up /sbin/ifconfig eth0 up up ifup ppp0=dsl down ifdown ppp0=dsl post-down /sbin/ifconfig eth0 down # The following is used internally only iface dsl inet ppp provider dsl-provider
"/etc/network/run/ifstate"
ファイルは、ifupdown パッケージが管理する全ての有効なネットワークインターフェースの意図したネットワーク設定状態を記録します。残念ながら
ifupdown
が意図したにもかかわらずインターフェースを起動できなかった場合でも、"/etc/network/run/ifstate"
ファイルはインターフェースが起動されたと表示します。
あるインターフェースに関する ifconfig(8) コマンド出力が次の例のような行を欠いている場合、IPV4 ネットワークの一部としては使えません。
inet addr:192.168.11.2 Bcast:192.168.11.255 Mask:255.255.255.0
![]() |
注記 |
|---|---|
PPPoE に接続されているイーサーネットデバイスの場合、ifconfig(8) コマンドのアウトプットは上記例のような行を欠いています。 |
例えば eth0 というインターフェースを再設定したい際には、まず "sudo ifdown eth0"
コマンドを実行してそれを無効にしなければいけません。こうすることで eth0 のエントリーが
"/etc/network/run/ifstate" ファイルから削除されます。(もし
eth0
が有効でなかったりそれにたいして過去に間違った設定がされている際には、こうするとエラーメッセージを発することになるかもしれません。シンプルな単一ユーザーのワークステーションではいつも問題なことは知る限り起こらないようです。)
こうすることで、必要に応じてネットワークインターフェース eth0 を自由に再設定するために
"/etc/network/interfaces" の内容を自由に書き換えられます。
こうした後で、eth0 を"sudo ifup
eth0" コマンドを使って再起動できます。
![]() |
ティップ |
|---|---|
ネットワークインターフェースは、" |
ifupdown-extra パッケージは、ifupdown
とともに使う使いやすいネットワーク接続テストを提供します。
network-test(1) コマンドはシェルから実行できます。
自動スクリプトは各 ifup コマンド実行毎に実行されます。
network-test
コマンドをつかうことで面倒な低レベルコマンドを使ってネットワーク問題を分析する手間を省けます。
自動スクリプトは "/etc/network/*/" にインストールされ、次の機能があります。
ネットワークケーブルの接続の確認
IP アドレスの重複使用の確認
"/etc/network/routes" の定義に従った静的ルートの設定
ネットワークのゲートウエーが到達可能かの確認
結果を "/var/log/syslog" ファイルに記録
この syslog 記録はリモートシステムのネットワーク問題を管理する上で非常に有用です。
![]() |
ティップ |
|---|---|
|
ifupdown パッケージの機能は、上級知識を使うと「ifupdown を使った基本的なネットワーク設定 (旧来)」に書かれているよりも向上します。
ここに記述されている機能は全く任意のものです。著者自身、怠け者で面倒な事が嫌いなために、ここに書かれたことを使うことは滅多にありません。
![]() |
注意 |
|---|---|
「ifupdown を使った基本的なネットワーク設定 (旧来)」に書かれた情報でネットワーク接続をうまく設定できないのに、次の情報を使うと状況は更に悪くなります。 |
ifplugd パッケージはイーサーネット接続のみを管理する旧式の自動ネットワーク設定ツールです。これによって可動
PC 等のイーサーネットケーブルの脱着問題を解決します。もし NetworkManager か Wicd (「デスクトップのためのモダンネットワーク設定」参照)
がインストールされている場合は、このパッケージは必要ありません。
このパッケージはデーモンとして実行され、auto とか allow-hotplug という機能 (表5.10「"/etc/network/interfaces" のスタンザのリスト」)
を置き換え、インターフェースがネットワークに繋がれるとインターフェースを起動します。
例えば eth0 という内部イーサーネットポートに対する ifplugd
パッケージの利用方法は次です。
"/etc/network/interfaces" の中のスタンザを削除しましょう: "auto
eth0" または "allow-hotplug eth0"、
"/etc/network/interfaces" の中のスタンザを残しましょう: "iface
eth0 inet …" と "mapping …"、
ifplugd パッケージをインストールします。
"sudo dpkg-reconfigure ifplugd" の実行します。
eth0 を"ifplugd により監視される静的インターフェース" とします。
こうするとお望みどおりのネットワーク設定が機能します。
電源投入もしくはハードウエアーの発見時に、インターフェースは自動的に起動されます。
長い DHCP のタイムアウトを待つことのない迅速なブートプロセス。
適正な IPv4 アドレス無いまま起動された変なインターフェースが無いこと (「ifupdown のネットワーク設定状態」参照)。
イーサーネットケーブルを発見時にインターフェースが起動されます。
イーサーネットケーブルを外して少し経った時点でインターフェースが自動的に停止されます。
イーサーネットケーブルを接続した時点でインターフェースが新規ネットワーク環境下で起動されます。
![]() |
ティップ |
|---|---|
ifplugd(8) コマンドの引数はインターフェースの再設定の遅延時間などの挙動を設定します。 |
ifmeric パッケージを使うと、DHCP でもルートのメトリクスを事後操作できます。
次のようにすると eth0 インターフェースを wlan0
インターフェースより優先するように設定できます。
ifmetric パッケージをインストールします。
"iface eth0 inet dhcp" 行のすぐ下に "metric
0" というオプション行を追加します。
"iface wlan0 inet dhcp" 行のすぐ下に "metric
1" というオプション行を追加します。
メトリック0とは最高優先順位のルートでデフォールトのルートということを意味します。大きなメトリック値は低い優先順位を意味します。最低のメトリック値をもつ有効なインターフェースの IP アドレスが発信源となるインターフェースになります。ifmetric(8) を参照下さい。
物理的には単一のイーサーネットインターフェースは異なる IP アドレスをもつ複数の仮想インターフェースとして設定できます。いくつかの IP サブネットワークにインターフェースを繋ぐのが通常こうする目的です。例えば、単一ネットワークインターフェースを使った IP アドレスに基づく仮想ウェッブホスティングがその適用例です。
例えば、次を仮定します。
あなたのホスト上の単一のイーサーネットインターフェースが (ブロードバンドルーターではなく) イーサーネットハブに接続されています。
イーサーネットハブはインターネットと LAN ネットワークの両方に接続されています。
LAN ネットワークはサブネット 192.168.0.x/24 を使います。
あなたのホストはインターネットに関しては物理インターフェース eth0 を DHCP が提供する IP
アドレスで使います。
あなたのホストは LAN に関しては仮想インターフェース eth0:0
を192.168.0.1 で使います。
このとき "/etc/network/interfaces" 中の次のスタンザがあなたのネットワークを設定します。
iface eth0 inet dhcp metric 0 iface eth0:0 inet static address 192.168.0.1 netmask 255.255.255.0 network 192.168.0.0 metric 1
![]() |
注意 |
|---|---|
netfilter/iptables (「Netfilter インフラ」参照) を使ってネットワークアドレス変換 (NAT) を使う上記設定例は単一インターフェースを使って LAN に対して安価なルーターを提供しますが、そのような設定を使ったのでは真のファイアーウォール能力はありません。2つの物理インターフェースと NAT を使ってインターネットからローカルネットワークをセキュアーするべきです。 |
ifupdownパッケージはネットワーク設定名とネットワークインターフェース名を使って上級ネットワーク設定をできるようにします。わたしは
ifup(8)
や
interfaces(5)
とは少々異なる用語法をここでは使っています。
表5.12 ネットワークデバイスの用語法のリスト
| マンページの用語法 | 著者の用語法 | この後の文中の用例 | 説明 |
|---|---|---|---|
| 物理インターフェース名 | ネットワークインターフェース名 |
lo, eth0,
<interface_name>
|
Linux カーネルが (udev メカニズムを利用して) 与えた名前
|
| 論理インターフェース名 | ネットワーク設定名 |
config1, config2,
<config_name>
|
"/etc/network/interfaces" 中で iface に続く名前のトークン
|
「簡略化されたコマンドシンタックス」中の基本的なネットワーク設定コマンドは、iface スタンザ中のネットワーク設定名のトークンと、"/etc/network/interfaces"
中のネットワークインターフェース名が一致している必要があります。
上級ネットワーク設定コマンドは次のような "/etc/network/interfaces"
の中で、ネットワーク設定名とネットワークインターフェース名を区別を可能にします。
表5.13 ifupdown を使う上級ネットワーク設定コマンドのリスト
| コマンド | アクション |
|---|---|
ifup eth0=config1
|
ネットワーク設定 config1 を使うネットワークインターフェース
eth0 を始動
|
ifdown eth0=config1
|
ネットワーク設定 config1 を使うネットワークインターフェース
eth0 を停止
|
ifup eth0
|
mapping
スタンザによって選ばれる設定を使ってネットワークインターフェース eth0 を始動
|
ifdown eth0
|
mapping
スタンザによって選ばれる設定を使ってネットワークインターフェース eth0 を停止
|
「"/etc/network/interfaces" の基本的なシンタックス」では複雑になるのを避けるために
"/etc/network/interfaces" 中の mapping
スタンザを説明しませんでした。このスタンザには次のシンタクスがあります。
mapping <interface_name_glob> script <script_name> map <script_input1> map <script_input2> map ...
上記は、<script_name> で指定される mapping
スクリプトで設定の選択を自動化することで "/etc/network/interfaces"
に上級機能を付与します。
次の実行を追いかけましょう。
$ sudo ifup eth0
"<interface_name_glob>" が"eth0"
と一致する時に、この実行は自動的に eth0 を設定する次のコマンドの実行を引き起こします。
$ sudo ifup eth0=$(echo -e '<script_input1> \n <script_input2> \n ...' | <script_name> eth0)
ここで、"map" を含む行は任意で反復可です。
![]() |
注記 |
|---|---|
|
「基本ネットワーク設定」でしたように
"/etc/network/interfaces"
ファイルを書き直すことなくいくつかのネットワーク設定間を手動で切り替える方法を次に示します。
アクセスする必要のある全てのネットワーク設定のついて、次に示すような単一の
"/etc/network/interfaces" ファイルを作ります。
auto lo iface lo inet loopback iface config1 inet dhcp iface config2 inet static address 192.168.11.100 netmask 255.255.255.0 gateway 192.168.11.1 dns-domain example.com dns-nameservers 192.168.11.1 iface pppoe inet manual pre-up /sbin/ifconfig eth0 up up ifup ppp0=dsl down ifdown ppp0=dsl post-down /sbin/ifconfig eth0 down # The following is used internally only iface dsl inet ppp provider dsl-provider iface pots inet ppp provider provider
iface
の後にあるトークンのネットワーク設定名に、ネットワークインターフェース名のトークンを使っていないことに注目下さい。また、何らかのイベントの際にネットワークインターフェース
eth0 を自動的に起動する auto スタンザも allow-hotplug スタンザもありません。
さあ、ネットワーク設定を切り替える準備完了です。
あなたの PC を DHCP が提供される LAN に移動します。次のようにしてネットワークインターフェース (物理インターフェース) eth0
にネットワーク設定名 (論理インターフェース名)
config1 を付与してそれを起動します。
$ sudo ifup eth0=config1 Password: ...
インターフェース eth0 が起動され、DHCP で設定され、LAN に接続されます。
$ sudo ifdown eth0=config1 ...
インターフェース eth0 が停止され、LAN から切断されます。
あなたの PC を静的 IP が提供される LAN に移動します。次のようにしてネットワークインターフェース (物理インターフェース) eth0
にネットワーク設定名 (論理インターフェース名)
config2 を付与してそれを起動します。
$ sudo ifup eth0=config2 ...
インターフェース eth0 が起動され、静的 IP で設定され、LAN
に接続されます。dns-* で与えられる追加パラメーターが
"/etc/resolv.conf" の内容を設定します。この
"/etc/resolv.conf" はresolvconf
パッケージがインストールされている方がうまく管理されます。
$ sudo ifdown eth0=config2 ...
インターフェース eth0 が停止され、LAN から再度切断されます。
あなたの PC を PPPoE が提供されているサービスに繋がっている BB モデムのポートに移動します。次のようにしてネットワークインターフェース eth0 にネットワーク設定名 pppoe を付与してそれを起動します。
$ sudo ifup eth0=pppoe ...
インターフェース eth0 が起動され、ISP に直接接続された PPPoE で設定されます。
$ sudo ifdown eth0=pppoe ...
インターフェース eth0 が停止され再切断されます。
あなたの PC を LAN や BB モデムのない POTS とモデムを使っている場所に移動します。次のようにしてネットワークインターフェース ppp0 にネットワーク設定名 pots を付与してそれを起動します。
$ sudo ifup ppp0=pots ...
インターフェース ppp0 が起動され、PPP を使ってインターネットに接続されます。
$ sudo ifdown ppp0=pots ...
インターフェース ppp0 が停止され再切断されます。
ifupdown システムのネットワーク設定状態の現状は
"/etc/network/run/ifstate" ファイルの内容で確認します。
![]() |
警告 |
|---|---|
複数のネットワークインターフェースがある場合には、 |
ifupdown システムはスクリプトに環境変数を引き渡して
"/etc/network/*/" 中にインストールされたスクリプトを自動実行します。
表5.14 ifupdown システムが引き渡す環境変数のリスト
| 環境変数 | 引き渡す変数値 |
|---|---|
"$IFACE"
|
処理対象のインターフェースの物理名 (インターフェース名) |
"$LOGICAL"
|
処理対象のインターフェースの論理名 (設定名) |
"$ADDRFAM"
|
インターフェースの <address_family> |
"$METHOD"
|
インターフェースの <method_name>。(例えば "static") |
"$MODE"
|
ifup から実行されると "start"、ifdown から実行されると
"stop"
|
"$PHASE"
|
"$MODE" と同じ、ただし pre-up と
post-up と pre-down と
post-down 段階を詳細に区別
|
"$VERBOSITY"
|
"--verbose" 使用の指標; 使用されたら1、使用されなかったら0
|
"$PATH"
|
コマンドサーチパス:
"/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
|
"$IF_<OPTION>"
|
iface
スタンザ下の対応するオプションの値
|
各環境変数 "$IF_<OPTION>" は、対応する <option1> や
<option2> オプションの名前に "$IF_"
を付け、大文字に変換し、ハイホンを下線に変換し、英数字文字以外を捨てて作成されます。
![]() |
ティップ |
|---|---|
<address_family> や <method_name> や <option1> や <option2> に関しては「"/etc/network/interfaces" の基本的なシンタックス」を参照下さい。 |
ifupdown-extra パッケージ (「ifupdown-extra パッケージ」参照) はこのような環境変数を使って
ifupdown パッケージの機能拡張をします。ifmetric パッケージ
(「ifmetric パッケージ」参照) は
"$IF_METRIC" 変数を通してメトリック値を設定する
"/etc/network/if-up.d/ifmetric"
スクリプトをインストールします。ネットワーク設定の自動選択の簡単で強力な枠組みを提供している guessnet
パッケージ (「guessnet を使う mapping」参照) もまたこれらを使います。
![]() |
注記 |
|---|---|
これらの環境変数を使うネットワーク設定スクリプトのより具体的な例に関しては、" |
「手動切り替え可能なネットワーク設定」に記述されたように手動で設定選択する代わりに、「mapping スタンザ」に記述された mapping メカニズムをつかってカスタムスクリプトでネットワーク設定を自動的に選択できます。
guessnet パッケージにより提供される
guessnet-ifupdown(8)
コマンドは mapping スクリプトとして使われるように設計されており、ifupdown
システムを拡張する強力な枠組みを提供します。
iface
スタンザの下の各ネットワーク設定毎に guessnet オプションの値としてテスト条件をリストします。
mapping は最初のエラーを返さない iface をネットワーク設定として選択します。
guessnet オプションは
ifupdown
システムにより実行されるスクリプトに追加の環境変数をエクスポートするだけなので、"/etc/network/interfaces"
ファイルを mapping スクリプトと guessnet-ifupdown
とオリジナルのネットワーク設定インフラである ifupdown
とで重複して利用することで特に支障は起こりません。詳細は
guessnet-ifupdown(8)
を参照下さい。
![]() |
注記 |
|---|---|
" |
Iproute2 コマンドは完全な低レベルネットワーク設定機能を提供します。型遅れとなった net-tools コマンドと新しい iproute2 コマンド等との翻訳表を次に示します。
表5.15 型遅れとなった net-tools コマンドと新しい iproute2
コマンド等との翻訳表
| 型遅れの net-tools | 新しい iproute2 等 | 操作 |
|---|---|---|
| ifconfig(8) |
ip addr
|
デバイスのプロトコル (IP または IPv6) アドレス |
| route(8) |
ip route
|
ルーティングテーブル |
| arp(8) |
ip neigh
|
ARP または NDISC キャッシュ項目 |
ipmaddr
|
ip maddr
|
マルチキャストアドレス |
iptunnel
|
ip tunnel
|
IP 経由トンネル |
| nameif(8) | ifrename(8) | MAC アドレスに基づきネットワークインターフェースを命名 |
| mii-tool(8) | ethtool(8) | イーサーネットデバイスの設定 |
ip(8) と IPROUTE2 Utility Suite Howto を参照下さい。
次の低レベルネットワークコマンドは、ネットワーク設定を変更しないので安全に使えます。
表5.16 低レベルネットワークコマンドのリスト
| コマンド | 説明 |
|---|---|
ifconfig
|
有効インターフェースのリンクとアドレスの状態を表示 |
ip addr show
|
有効インターフェースのリンクとアドレスの状態を表示 |
route -n
|
数字を使ったアドレスで全てのルーティングテーブルを表示 |
ip route show
|
数字を使ったアドレスで全てのルーティングテーブルを表示 |
arp
|
ARP キャッシュテーブルの現状の内容を表示 |
ip neigh
|
ARP キャッシュテーブルの現状の内容を表示 |
plog
|
ppp デーモンのログを表示 |
ping yahoo.com
|
"yahoo.com" までのインターネット接続の確認
|
whois yahoo.com
|
ドメインデーターベースに "yahoo.com" を誰が登録したかを確認
|
traceroute yahoo.com
|
"yahoo.com" までのインターネット接続の追跡
|
tracepath yahoo.com
|
"yahoo.com" までのインターネット接続の追跡
|
mtr yahoo.com
|
"yahoo.com" までのインターネット接続の追跡 (繰り返し)
|
dig [@dns-server.com] example.com [{a|mx|any}]
|
"example.com" のDNS レコードを
"dns-server.com" で"a" か
"mx" か "any" かのレコードに関して確認します。
|
iptables -L -n
|
パケットフィルターの確認 |
netstat -a
|
オープンポートの発見 |
netstat -l --inet
|
聴取中のポートの発見 |
netstat -ln --tcp
|
聴取中の TCP ポートの発見 (数字) |
dlint example.com
|
"examle.com" の DNS ゾーン情報を確認
|
![]() |
ティップ |
|---|---|
これらの低レベルネットワーク設定ツールは " |
一般的なネットワークの最適化は本書の射程外です。ここでは消費者用の接続に関する課題にのみ触れます。
表5.17 ネットワーク最適化ツールのリスト
| パッケージ | ポプコン | サイズ | 説明 |
|---|---|---|---|
iftop
*
|
V:1.3, I:8 | 109 | ネットワークインターフェースの帯域利用情報を表示 |
iperf
*
|
V:0.5, I:4 | 170 | インターネットプロトコルのバンド幅測定ツール |
apt-spy *
|
V:0.2, I:1.3 | 204 |
バンド幅テストに基づき "/etc/apt/sources.list" ファイルを作成
|
ifstat *
|
V:0.2, I:1.2 | 88 | インターフェース統計モニター |
bmon
*
|
V:0.2, I:0.9 | 188 | 可搬型バンド幅モニター兼速度推定機 |
ethstatus *
|
V:0.08, I:0.6 | 84 | ネットワークデバイスのスループットを迅速に測定するスクリプト |
bing
*
|
V:0.06, I:0.5 | 96 | 経験則的確率バンド幅試験ソフト |
bwm-ng *
|
V:0.2, I:1.3 | 152 | 簡単軽量のコンソール式のバンド幅モニター |
ethstats *
|
V:0.04, I:0.2 | 52 | コンソール式のイーサーネット統計モニター |
ipfm
*
|
V:0.04, I:0.15 | 156 | 帯域分析ツール |
最大送信単位 (MTU)
値は、ping(8)
を"-M do" オプションとともに使って ICMP パケットをデーターサイズ 1500 (IP+ICMP
ヘッダー分の28バイトを加えて) から始めて IP フラグメンテーションしない最大サイズを見つけることで実験的に決定できます。
例えば、次を試してみて下さい:
$ ping -c 1 -s $((1500-28)) -M do www.debian.org PING www.debian.org (194.109.137.218) 1472(1500) bytes of data. From 192.168.11.2 icmp_seq=1 Frag needed and DF set (mtu = 1454) --- www.debian.org ping statistics --- 0 packets transmitted, 0 received, +1 errors
1500ではなく1452を試す
ping(8) が1454で成功するのを確認します。
このプロセスはパス MTU (PMTU) 発見 (RFC1191) で、tracepath(8) コマンドで自動化できます。
![]() |
ティップ |
|---|---|
PMTU 値が1454となる上記例は Asynchronous Transfer Mode (ATM) をバックボーンネットワークとして使い顧客を PPPoE でサービスしていた FTTP プロバイダーの場合でした。実際の PMTU 値はあなたの環境に依存します。例えば私の新しい FTTP プロバイダーの場合は1500です。 |
表5.18 最適 MTU 値の基本的なガイドライン
| ネットワーク環境 | MTU | 理由 |
|---|---|---|
| ダイヤルアップ接続 (IP: PPP) | 576 | 標準 |
| イーサーネット接続 (IP: DHCP または固定) | 1500 | 標準かつデフォールト |
| イーサーネット接続 (IP: PPPoE) | 1492 (=1500-8) | PPP ヘッダーに2バイト、PPPoE ヘッダーに6バイト、 |
| イーサーネット接続 (ISP のバックボーン: ATM、IP: DHCP または固定) | 1462 (=48*31-18-8) | 著者推定: イーサーネットヘッダーに18、SAR 末尾に8 |
| イーサーネット接続 (ISP のバックボーン: ATM、IP: PPPoE) | 1454 (=48*31-8-18-8) | 根拠は"Optimal MTU configuration for PPPoE ADSL Connections"参照 |
これらの基本的なガイドラインに加えて、次を覚えておきます。
何らかのトンネル手法 (VPN等) を使うと、それらのオーバーヘッドのために最適 MTU を更に減らすかもしれません。
MTU 値は実験的に決定される PMTU 値を越すべきではありません。
もし他の制約条件を満たすなら、MTU 値は一般的に大きい方がいいです。
MTU 値をそのデフォールトの1500から1454に設定する例を次に示します。
DHCP (「DHCP サービスを受けるネットワークインターフェース」参照)
の場合、"/etc/network/interfaces" 中の該当する iface スタンザ行を次と交換する事ができます。
iface eth0 inet dhcp pre-up /sbin/ifconfig $IFACE mtu 1454
静的 IP (「静的 IP を使うネットワークインターフェース」参照)
の場合、"/etc/network/interfaces" 中の該当する iface スタンザ行を次と交換する事ができます。
iface eth0 inet static address 192.168.11.100 netmask 255.255.255.0 gateway 192.168.11.1 mtu 1454 dns-domain example.com dns-nameservers 192.168.11.1
直接の PPPoE (「pppoeconf を使った PPPoE 接続」参照)
の場合、"/etc/ppp/peers/dsl-provider" 中の該当する
"mtu" 行を次と交換する事ができます。
mtu 1454
最大セグメントサイズ (MSS) はパケットサイズの代替尺度として使われます。MSS と MTU の関係は次です。
IPv4 ではMSS = MTU - 40
IPv6 ではMSS = MTU - 60
![]() |
注記 |
|---|---|
iptables(8) (「Netfilter インフラ」参照) を使う最適化は MSS を使ってパッケットサイズを制約できるのでルーターとして有用です。iptables(8) 中の "TCPMSS" を参照下さい。 |
現代的な高帯域でレイテンシーの大きな WAN では、TCP のスループットは TCP バッファーサイズパラメーターを "TCP Tuning Guide" や "TCP tuning" に書かれている手順で調整することで最大化できます。今のところ現在の Debian のデフォールトは高速の 1G bps の FTTP サービスでつながっている私の LAN でも十分機能しています。
Netfilter はLinux カーネルのモジュール (「カーネルモジュール初期化」参照) を利用するステートフルファイアーウォールとネットワークアドレス変換 (NAT) のインフラを提供します。
表5.19 ファイアーウォールツールのリスト
| パッケージ | ポプコン | サイズ | 説明 |
|---|---|---|---|
iptables *
|
V:25, I:99 | 1289 | netfilter のための管理ツール |
iptstate *
|
V:0.11, I:0.7 | 164 | netfilter の状態を常時モニター (top(1) と類似) |
shorewall-init *
|
I:0.11 | 157 | Shoreline ファイアーウォール初期化 |
shorewall *
|
V:1.1, I:2 | 1800 | Shoreline ファイアーウォール、netfilter 設定ファイル生成システム |
shorewall-lite *
|
V:0.00, I:0.01 | 284 | Shoreline ファイアーウォール、netfilter 設定ファイル生成システム (軽装備バージョン) |
shorewall6 *
|
V:0.09, I:0.2 | 753 | Shoreline ファイアーウォール、netfilter 設定ファイル生成システム (IPv6 バージョン) |
shorewall6-lite *
|
V:0.00, I:0.00 | 282 | Shoreline ファイアーウォール、netfilter 設定ファイル生成システム (IPv6 軽装備バージョン) |
netfilter のユーザー空間の主プログラムは iptables(8) です。シェルから対話形式で手動で netfilter を設定し、その状態を iptables-save(8) で保存し、iptables-restore(8) を使って init スクリプト経由でシステムのリブート時に回復できます。
shorewall のような設定ヘルパースクリプトはこの過程を簡単にします。
http://www.netfilter.org/documentation/
(または "/usr/share/doc/iptables/html/" 中) の文書を参照下さい。
![]() |
ティップ |
|---|---|
これらは Linux 2.4 のために書かれたとはいえ、iptables(8) コマンドも netfilter カーネル機能も現在の Linux 2.6 にもあてはまります。 |