目次
![]() |
ティップ |
---|---|
GNU/Linuxのネットワーク設定の一般的ガイドはLinux Network Administrators Guideを参照下さい。 |
Debianシステム上の伝統的なTCP/IPネットワークのセットアップはifupdown
パッケージをよる高レベルのツールとして使います。2つの場合があります:
resolvconf
パッケージを使い設定し、容易にネットワーク設定を切り替えられるようにしましょう(「DHCPサービスを受けるネットワークインターフェース」参照)。
resolvconf
パッケージを使うことなく設定し、システムを単純にしましょう(「静的IPを使うネットワークインターフェース」参照)。
ここでは伝統的な場合を詳細に説明します。
また、ワイヤレスネットワークの設定を容易にするnetwork-manager
やwicd
のような代替の高レベルツールにもここで少し触れていきます(「自動ネットワーク設定」参照)。
現代的なDebianシステムの基本的ネットワークインフラをレビューしましょう。
ドメイン名を名付けるのは通常PCワークステーションのユーザにとってはトリッキーです。PCワークステーションは、ネットワークを渡り歩く可動PCかもしれないし、インターネットからアクセスできないNATファイアーウォールの背後にあるかもしれません。そのような場合、ドメイン名がかち合うのを避けるために有効なドメイン名をドメイン名として選びたくないでしょう。
rfc2606によると、インターネットから確実に無効なドメイン名を作るためにはトップレベルドメイン(TLD)の選択として"invalid
"が良い選択のようです。
mDNSネットワーク探索プロトコル(Apple Bonjour / Apple Rendezvous、Debian上のAvahi)は、"local"を擬似トップレベルドメインとして使います。Microsoftも"local"をローカルエリアネットワークのTLDとして推奨しているようでもあります。
無効TLDのよくある選択は、私が受け取ったメールの解析によると、"localdomain
"とか"lan
"とか"localnet
"とか"home
"のようです。
ホスト名の解決もまた、現在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/hosts
"ファイルはホスト名とIPアドレスを関連付けます:
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
上記中の<host_name>は、"/etc/hostname
"で定義される自分自身のホスト名と一致します。上記中の<domain_name>は、このホストの完全修飾ドメイン名(FQDN)です。
![]() |
ティップ |
---|---|
真のFQDNを持たない可動PCでは、この設定ファイル中の<domain_name>のTLD部分に、実在しない" |
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
"のようなスタンザが必要です。
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.1 ネットワークアドレス範囲のリスト
クラス | ネットワークアドレス | ネットマスク | ネットマスク/ビット | サブネットの数 |
---|---|---|---|---|
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を行います。 |
Linuxのネットワークシステムには2タイプの低レベルネットワークプログラムがあります(「Iproute2コマンド」参照)。
ifconfig
(8)、…)はLinux
NET-3ネットワークシステム由来です。これらの多くはすでに時代遅れです。
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
システムと独立な、network-manager
やwicd
等の代替となる高レベルネットワーク設定システムはワイアレスネットワーク上の可動PCも含めたネットワーク環境を楽に設定するために作られた。これらは比較的新しくそのDebianシステムへの統合は進行中なので、これらとifupdown
がかち合うことを避けるために"/etc/network/interfaces
"中の対応するネットワークインターフェースを手動で無効にする必要があるかもしれません。(「自動ネットワーク設定」参照)。
表5.2 ネットワーク設定ツールのリスト。
パッケージ | popcon | サイズ | タイプ | 機能 |
---|---|---|---|---|
ifupdown |
V:63, I:99 | 228 | 設定::ifupdown | ネットワークを接続したり切断したりする標準化されたツール(Debian特定) |
ifplugd |
V:0.4, I:0.9 | 332 | , , | 有線ネットワークを自動的に管理します |
ifupdown-extra |
V:0.04, I:0.2 | 124 | , , |
"ifupdown "パッケージを強化するネットワークテストスクリプト
|
ifmetric |
V:0.02, I:0.09 | 100 | , , | ネットワークインターフェースの経路メトリック設定をします |
guessnet |
V:0.09, I:0.4 | 492 | , , |
ifupdown のヘルパースクリプト:
ifplugd 、guessnet 、ifscheme 、…
|
ifscheme |
V:0.03, I:0.10 | 80 | , , |
"ifupdown "パッケージを補強するmappingスクリプト
|
ifupdown-scripts-zg2 |
V:0.00, I:0.05 | 220 | , , | Zugschlusさんのifupdownの手動方法のインターフェーススクリプト |
network-manager |
V:30, I:38 | 2180 | 設定::NetworkManager | NetworkManager (デーモン): ネットワークを自動管理します |
network-manager-gnome |
V:22, I:35 | 3372 | , , | NetworkManager (GNOMEフロントエンド) |
network-manager-kde |
V:2, I:4 | 3088 | , , | NetworkManager (KDEフロントエンド) |
wicd
|
V:1.2, I:1.5 | 1852 | 設定::wicd | 有線と無線のネットワークマネージャ |
iptables |
V:25, I:99 | 1368 | 設定::Netfilter | パケットフィルタリングとNATのための管理ツール |
iproute |
V:38, I:75 | 1000 | 設定::iproute2 |
IPv6や他の上級ネットワーク設定: ip (8)やtc (8)等
|
ifrename |
V:0.2, I:0.8 | 108 | , , |
各種の静的クライテリアに基づきネットワークインターフェースを改名します: ifrename (8)
|
ethtool |
V:3, I:11 | 256 | , , | Ethernetデバイス設定の表示と設定をします |
iputils-ping |
V:36, I:99 | 124 | テスト::iproute2 | ホスト名かIPアドレスによってリモートホストのネットワークからの到達性をテストするツール |
iputils-arping |
V:1.1, I:17 | 72 | , , | ARPアドレスによって特定されるリモートホストのネットワークからの到達性をテストするツール |
iputils-tracepath |
V:0.4, I:2 | 108 | , , | リモートホストへのネットワークパスを追跡するツール |
net-tools |
V:80, I:99 | 1016 | 設定::net-tools |
NET-3ネットワーキングツールキット(IPv4ネットワーク設定): ifconfig (8)等
|
inetutils-ping |
V:0.05, I:0.14 | 268 | テスト::net-tools | ホスト名かIPアドレスによってリモートホストのネットワークからの到達性をテストするツール(レガシー、GNU) |
arping |
V:0.5, I:2 | 64 | , , | ARPアドレスによって特定されるリモートホストのネットワークからの到達性をテストするツール(レガシー) |
traceroute |
V:14, I:98 | 184 | , , | リモートホストへのネットワークパスを追跡するツール(レガシー、コンソール) |
dhcp3-client |
V:50, I:93 | 608 | 設定::低レベル | DHCPクライアント |
wpasupplicant |
V:12, I:45 | 960 | , , | WPAとWPA2 (IEEE 802.11i)のためのクライアントサポート |
wireless-tools |
V:9, I:27 | 276 | , , | Linuxのワイアレス拡張を操作するツール |
ppp
|
V:7, I:26 | 1100 | , , |
chat によるPPP/PPPoEコネクション
|
pppoeconf |
V:0.5, I:4 | 200 | 設定::ヘルパー | PPPoEコネクションの設定ヘルパー |
pppconfig |
V:0.4, I:3 | 900 | , , |
chat によるPPPコネクションの設定ヘルパー
|
wvdial |
V:0.6, I:2 | 352 | , , |
wvdial とppp によるPPPコネクションの設定ヘルパー
|
mtr-tiny |
V:4, I:54 | 120 | テスト::低レベル | リモートホストへのネットワークパスを追跡するツール(curses) |
mtr
|
V:0.5, I:2 | 176 | , , | リモートホストへのネットワークパスを追跡するツール(cursesとGTK+) |
gnome-nettool |
V:4, I:40 | 1766 | , , | リモートホストへのネットワークパスを追跡するツール(GNOME) |
nmap
|
V:6, I:30 | 3768 | , , | ネットワークマッパー/ポートスキャナ(Nmap、コンソール) |
zenmap |
V:0.2, I:1.0 | 1232 | , , | ネットワークマッパー/ポートスキャナ(GTK+) |
knmap
|
V:0.12, I:0.7 | 1992 | , , | ネットワークマッパー/ポートスキャナ(KDE) |
tcpdump |
V:3, I:22 | 796 | , , | ネットワークトラフィックアナライザー(Tcpdump、コンソール) |
wireshark |
V:2, I:10 | 1604 | , , | ネットワークトラフィックアナライザー(Wireshark、GTK+) |
tshark |
V:0.5, I:3 | 284 | , , | ネットワークトラフィックアナライザー(コンソール) |
nagios3 |
V:0.8, I:1.1 | 4152 | , , | ホストとサービスとネットワークを監視や管理するシステム(Nagios) |
tcptrace |
V:0.07, I:0.4 | 432 | , , |
tcpdump の出力から接続状況のまとめを作成するツール
|
snort
|
V:0.7, I:0.9 | 1100 | , , | 柔軟なネットワーク侵入検知システム(Snort) |
ntop
|
V:1.2, I:2 | 15600 | , , | ネットワークの使用状況をウエッブブラウザで表示する |
dnsutils |
V:14, I:91 | 388 | , , |
BINDによって提供されるネットワーククライアント:
nslookup (8)とnsupdate (8)とdig (8)
|
dlint
|
V:0.5, I:7 | 96 | , , | ネームサーバーの閲覧でDNSのゾーン情報を確認 |
dnstracer |
V:0.09, I:0.6 | 88 | , , | DNSサーバーをその源流まで遡るツール |
Debianシステムによってほとんどのハードウエアーデバイスはサポートされていますが、一部のネットワークデバイスはそのサポートのためにDSFG non-freeのドライバが必要です。「Non-free hardware drivers」を参照下さい。
![]() |
注意 |
---|---|
本セクションで説明されている接続テスト方法はあくまでテスト目的のためのものです。毎日のネットワーク接続のために使うためではありません。 |
典型的なネットワーク接続方法と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 |
"/etc/dhcp3/dhclient.conf "中に記述されています
|
dhcp3-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)サーバーによりサービスを受けています。
動的ホスト設定プロトコル(DHCP)サービスを受けるイーサーネットでは、dhcp3-client
パッケージをインストールするだけです。
設定スクリプトpppconfig
はPPP接続を次の選択をすることで対話式で設定します:
設定ファイルは以下:
表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接続を次の選択をすることで対話式で設定します:
ほとんどの場合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
"を参照下さい。
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状態にあるインターフェースを、 |
![]() |
注意 |
---|---|
|
"/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 hostname "mymachine"
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 broadcast 192.168.11.255 gateway 192.168.11.1 dns-domain lan dns-nameservers 192.168.11.1
Linuxカーネルが物理インターフェースeth0
を認識した場合、allow-hotplug
スタンザはifup
によりそのインターフェースが起動させられるようにし、iface
スタンザがifup
がインターフェースが静的IPを使うように設定します。
ここで、私は次のような仮定をしています:
192.168.11.0
-
192.168.11.255
192.168.11.1
192.168.11.100
resolvconf
パッケージがインストール済み。
lan
"。
192.168.11.1
resolvconf
パッケージがインストールされていないと、DNS関係の設定は手動で"/etc/resolv.conf
"を次のように編集する必要があります:
nameserver 192.168.11.1 domain lan
![]() |
注意 |
---|---|
上記例で用いた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保護アクセス(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に接続されているイーサーネットデバイスの場合、 |
例えば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/*/
"にインストールされ:
/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により監視される静的インターフェース"とします。
こうするとお望みどおりのネットワーク設定が機能します:
電源投入もしくはハードウエアーの発見時に、インターフェースは自動的に起動されます。
![]() |
ティップ |
---|---|
The arguments for the
|
ifmeric
パッケージを使うと、DHCPでもルートのメトリクスを事後操作できます。
次のようにするとeth0
インターフェースをwlan0
インターフェースより優先するように設定できます:
ifmetric
パッケージをインストール。
iface eth0 inet dhcp
"行のすぐ下に"metric
0
"というオプション行を追加します。
iface wlan0 inet dhcp
"行のすぐ下に"metric
1
"というオプション行を追加します。
メトリック0とは最高優先順位のルートでデフォルトのルートということを意味します.大きなメトリック値は低い優先順位を意味します。最低のメトリック値をもつ有効なインターフェースのIPアドレスが発信源となるインターフェースになります。ifmetric
(8)を参照下さい。
物理的には単一のイーサーネットインターフェースは異なるIPアドレスをもつ複数の仮想インターフェースとして設定できます。いくつかのIPサブネットワークにインターフェースを繋ぐのが通常こうする目的です。例えば、単一ネットワークインターフェースを使ったIPアドレスに基づく仮想ウエッブホスティングがその適用例です。
例えば、次を仮定しましょう
192.168.0.x/24
を使う。
eth0
をDHCPが提供するIPアドレスで使います。
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 broadcast 192.168.0.255 metric 1
![]() |
注意 |
---|---|
netfilter/iptables(「Netfilter」参照)を使ってネットワークアドレス変換(NAT)を使う上記設定例は単一インターフェースを使ってLANに対して安価なルーターを提供しますが、そのような設定を使ったのでは真のファイアーウォール能力はありません。2つの物理インターフェースとNATを使ってインターネットからローカルネットワークをセキュアするべきです。 |
ifupdown
パッケージはネットワーク設定名とネットワークインターフェース名を使って上級のネットワーク設定をできるようにします。わたしはifup
(8)やinterfaces
(5)とは少々異なる用語法をここでは使っています。
表5.12 ネットワークデバイスの用語法のリスト。
マンページの用語法 | 著者の用語法 | 説明 | この後の文中の用例 |
---|---|---|---|
物理インターフェース名 | ネットワークインターフェース名 |
Linuxカーネルが(udev メカニズムを利用して)与える名前。
|
lo , eth0 ,
<interface_name>
|
論理インターフェース名 | ネットワーク設定名 |
"/etc/network/interfaces "中でiface に続く名前文字列。
|
config1 , config2 ,
<config_name>
|
「簡略化されたコマンドシンタックス」中の基本的なネットワーク設定コマンドは、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
"に上級機能を付与します。
"<interface_name_glob>
"が"eth0
"と一致する時に、次が実行され
$ sudo ifup eth0
それは、次の命令を実行をします:
$ sudo ifup eth0=$(echo -e '<script_input1> \n <script_input2> \n ...' | <script_name> eth0)
そしてeth0
が自動的に設定されます。ここで、"map
"を含む行は任意で繰り返してもいいです。
![]() |
注意 |
---|---|
|
「基本ネットワーク設定」でしたように"/etc/network/interfaces
"ファイルを書き直すことなくいくつかのネットワーク設定間を手動で切り替える方法を次に示します。
アクセスする必要のある全てのネットワーク設定のついて、単一の"/etc/network/interfaces
"ファイルを次に示すように作ります:
auto lo iface lo inet loopback iface config1 inet dhcp hostname "mymachine" iface config2 inet static address 192.168.11.100 netmask 255.255.255.0 broadcast 192.168.11.255 gateway 192.168.11.1 dns-domain lan 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
オプションの値としてテスト条件をリストします。
iface
をネットワーク設定として選択します。
guessnet
オプションはifupdown
システムにより実行されるスクリプトに追加の環境変数をエクスポートするだけなので、"/etc/network/interfaces
"ファイルをmappingスクリプトとguessnet-ifupdown
とオリジナルのネットワーク設定インフラであるifupdown
とで重複して利用することで特に支障は起こりません。詳細はguessnet-ifupdown
(8)を参照下さい。
![]() |
注意 |
---|---|
" |
GNOMEのような各デスクトップ環境が提供するデフォルトのGUIのネットワーク設定ツールの能力は静的IPやDHCPのような基本設定に限られています。あなたが見ていないところで"/etc/network/interfaces
"ファイルの内容を上書きしています。自分自身で実際どのように"/etc/network/interfaces
"ファイルが書き換えられているか確認して下さい。
![]() |
注意 |
---|---|
それらは手動でされた" |
ifupdown
パッケージと独立なデーモンを通してネットワーク接続を管理する、NetworkManager (NM)
(network-manager
と関連パッケージ)や、Wicd (wicd
パッケージ)
等の、独立の自動ネットワーク設定ツールがあります。これらによってワイアレス接続が簡単にできます。これらには洒落たGUIユーザインターフェースが付いてきます。
![]() |
警告 |
---|---|
サーバーにはこの様な自動ネットワーク設定を使わないで下さい。これらはラップトップ上のモービルデスクトップを主対象としています。 |
![]() |
警告 |
---|---|
これらの自動ネットワーク設定ツールは動く標的で、ここに書かれている事は |
![]() |
注意 |
---|---|
こういった自動ネットワーク設定は、「ifupdownを使った基本的なネットワーク設定」や「ifupdownを使う上級ネットワーク設定」のような" |
NMの設定は"/usr/share/doc/network-manager/README.Debian
"に記されています。その要点は:
次のようにして、例えばfoo
というデスクトップユーザを"netdev
"グループに属するようにします:
$ sudo adduser foo netdev
"/etc/network/interfaces
"の設定を次のようにできるだけ簡単にします:
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
NMを次のようにして再起動します:
$ sudo /etc/init.d/network-manager restart
![]() |
注意 |
---|---|
|
Wicdの設定は、"/usr/share/doc/wicd/README.Debian
"に記されています。その要点は:
"/etc/network/interfaces
"中の設定を次のようにだけとします:
auto lo iface lo inet loopback
Wicdを再起動します。
$ sudo /etc/init.d/wicd restart
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.org "のDNSゾーン情報を確認
|
![]() |
ティップ |
---|---|
これらの低レベルネットワーク設定ツールは" |
一般的なネットワークの最適化は本書の射程外です。ここでは消費者用の接続に関する課題にのみ触れます。
表5.17 ネットワーク最適化ツールのリスト。
パッケージ | popcon | サイズ | 説明 |
---|---|---|---|
iftop
|
V:1.0, I:6 | 108 | ネットワークインターフェースの帯域利用情報を表示 |
iperf
|
V:0.4, I:2 | 208 | インターネットプロトコルのバンド幅測定ツール |
apt-spy |
V:0.2, I:1.6 | 204 |
バンド幅テストに基づき"/etc/apt/sources.list "ファイルを作成します。
|
ifstat |
V:0.2, I:1.0 | 88 | インターフェース統計モニタ |
bmon
|
V:0.2, I:0.8 | 188 | 可搬型バンド幅モニタ兼速度推定機 |
ethstatus |
V:0.12, I:0.8 | 84 | ネットワークデバイスのスループットを迅速に測定するスクリプト |
bing
|
V:0.11, I:0.7 | 96 | 経験則的確率バンド幅試験機 |
bwm-ng |
V:0.2, I:0.9 | 152 | 簡単軽量のコンソール式のバンド幅モニタ |
ethstats |
V:0.06, I:0.3 | 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
ping
(8)が成功します
このプロセスはパス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"を参照下さい。 |
これらの基本的なガイドラインに加えて、次を覚えておきましょう:
MTU値をそのデフォルトの1500から1454に設定する例を次に示します。
DHCP(「DHCPサービスを受けるネットワークインターフェース」参照)の場合、"/etc/network/interfaces
"中の該当するiface
スタンザ行を次と交換する事ができます。例えば:
iface eth0 inet dhcp hostname "mymachine" 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 broadcast 192.168.11.255 gateway 192.168.11.1 mtu 1454 dns-domain lan dns-nameservers 192.168.11.1
直接のPPPoE(「pppoeconfを使ったPPPoE接続」参照)の場合、"/etc/ppp/peers/dsl-provider
"中の該当する"mtu
"行を次と交換する事ができます:
mtu 1454
最大セグメントサイズ(MSS)はパケットサイズの代替尺度として使われます。MSSとMTUの関係は次です:
![]() |
注意 |
---|---|
|
現代的な高帯域でレイテンシーの大きなWANでは、TCPのスループットはTCPバッファーサイズパラメータを"TCP Tuning Guide"や"TCP tuning"に書かれている手順で調整することで最大化できます。今のところ現在のDebianのデフォルトは高速の1G bpsのFTTPサービスでつながっている私のLANでも十分機能しています。
NetfilterはLinuxカーネルのモジュール(「カーネルモジュール初期化」参照)を利用するステートフルファイアーウォールとネットワークアドレス変換(NAT) のインフラを提供します。
表5.19 ファイアーウォールツールのリスト。
パッケージ | popcon | サイズ | 説明 |
---|---|---|---|
iptables |
V:25, I:99 | 1368 | netfilterのための管理ツール |
iptstate |
V:0.15, I:0.9 | 156 |
netfilterの状態を常時モニタするツール。(top (1)と似ています)
|
shorewall-perl |
V:0.16, I:0.4 | 608 |
Shorelineファイアーウォール、netfilter設定ファイル生成システム(Perlベース、lenny で推薦)
|
shorewall-shell |
I:1.6 | 348 |
Shorelineファイアーウォール、netfilter設定ファイル生成システム(シェルベース、lenny での代替)
|
ipmasq |
V:0.2, I:0.5 | 612 | netfilterを設定するinitスクリプトの簡単な組み合わせ(古い) |
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のために書かれたとはいえ、 |