OSDN Git Service

Update to 3.11
[linuxjf/JF.git] / docs / LFS-BOOK / chapter07 / network.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
2     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml">
4   <head>
5     <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" />
6     <title>
7       7.2. 全般的なネットワークの設定
8     </title>
9     <link rel="stylesheet" href="../stylesheets/lfs.css" type="text/css" />
10     <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
11     <link rel="stylesheet" href="../stylesheets/lfs-print.css" type=
12     "text/css" media="print" />
13   </head>
14   <body class="lfs" id="lfs-7.2">
15     <div class="navheader">
16       <h4>
17         Linux From Scratch - Version 7.2
18       </h4>
19       <h3>
20         第7章 ブートスクリプトの設定
21       </h3>
22       <ul>
23         <li class="prev">
24           <a accesskey="p" href="introduction.html" title="はじめに">前のページ</a>
25           <p>
26             はじめに
27           </p>
28         </li>
29         <li class="next">
30           <a accesskey="n" href="hosts.html" title=
31           "/etc/hosts ファイルの設定">次のページ</a>
32           <p>
33             /etc/hosts ファイルの設定
34           </p>
35         </li>
36         <li class="up">
37           <a accesskey="u" href="chapter07.html" title=
38           "第7章 ブートスクリプトの設定">上に戻る</a>
39         </li>
40         <li class="home">
41           <a accesskey="h" href="../index.html" title=
42           "Linux From Scratch - Version 7.2">ホーム</a>
43         </li>
44       </ul>
45     </div>
46     <div class="sect1" lang="ja" xml:lang="ja">
47       <h1 class="sect1">
48         <a id="ch-scripts-network" name="ch-scripts-network"></a>7.2.
49         全般的なネットワークの設定
50       </h1>
51       <p>
52         本節はネットワークカードを設定する場合にのみ作業を行っていきます。
53       </p>
54       <p>
55         ネットワークカードを利用しないのであれば、ネットワークカードに関する設定は、おそらくすべて不要なはずです。
56         そのような場合は、ランレベルディレクトリ (<code class="filename">/etc/rc.d/rc*.d</code>)
57         から、シンボリックリンク <code class="filename">network</code> を削除してください。 これは
58         <a class="xref" href="bootscripts.html" title=
59         "7.6. LFS-ブートスクリプト-20120901">7.6.「LFS-ブートスクリプト-20120901」</a>
60         にてブートスクリプトをインストールした後に行ってください。
61       </p>
62       <div class="sect2" lang="ja" xml:lang="ja">
63         <h2 class="sect2">
64           <a id="stable-net-names" name="stable-net-names"></a>7.2.1.
65           ネットワークインターフェースに対する固定名称の作成
66         </h2>
67         <p>
68           設定を行うべきネットワークインターフェースが、システム内にただ一つであるなら、本節に示す内容は任意となります。
69           設定を行ったとしても間違いにはなりません。
70           ラップトップPCでのワイヤレスネットワークやケーブル接続のネットワークにおいては、たいていは本節における設定が必要となるでしょう。
71         </p>
72         <p>
73           Udev やモジュラー化されたネットワークドライバーにおいて、ネットワークインターフェースの番号の割振りは再起動により変更されます。
74           ドライバーモジュールの読み込みが並列で行われるためランダムになるからです。 例えば Intel 製と Realtek
75           製の二つのネットワークカードを持つコンピューターにおいて、 Intel 製が <code class=
76           "filename">eth0</code>、Realtek 製が <code class=
77           "filename">eth1</code> となったとします。
78           しかし時にはシステムの再起動によって番号割り振りが逆転することもあります。 これを避けるには Udev
79           ルールを生成して、ネットワークカードの MAC アドレスに基づいて固定的に名称を定める方法があります。
80         </p>
81         <p>
82           このルールは、前章の <span class="application">udev (systemd)</span>
83           におけるビルド手順にて事前生成されています。 <code class=
84           "filename">/etc/udev/rules.d/70-persistent-net.rules</code>
85           を確認すれば、どんな名前がどのネットワークデバイスに割り当てられているかが分かります。
86         </p>
87         <pre class="userinput">
88 <kbd class="command">cat /etc/udev/rules.d/70-persistent-net.rules</kbd>
89 </pre>
90         <div class="admon note">
91           <img alt="[注記]" src="../images/note.png" />
92           <h3>
93             注記
94           </h3>
95           <p>
96             ネットワークカードに対して手動で MAC アドレスを割り当てた場合や Xen
97             のような仮想環境における場合などにおいて、ネットワークルールファイルが生成されないことがあります。
98             これはアドレスの割り当てが確定されないためです。 こういった場合は次節に進んでください。
99           </p>
100         </div>
101         <p>
102           このファイルの先頭にはコメントが数行あり、続いてそれぞれの NIC に対する行があります。 NIC
103           ごとの記述では一行めがコメントで、そのハードウェア ID が記されています。 (PCI カードである場合、PCI ベンダとデバイス
104           ID が記述されます。) またドライバーが検出できている場合には、カッコ書きでドライバー名も示されます。 ハードウェア ID
105           もドライバー名も、インターフェースに対して与えられる名称とは無関係で、単に分かりやすくするために記されているにすぎません。 二行めは
106           Udev ルールであり、その NIC を定め、名称を割り当てている記述です。
107         </p>
108         <p>
109           Udev ルールはいくつかのキー項目で構成され、それぞれがカンマで区切られるか、場合によっては空白文字で区切られています。
110           このキー項目とその内容は以下のようになります。
111         </p>
112         <div class="itemizedlist">
113           <ul>
114             <li>
115               <p>
116                 <code class="literal">SUBSYSTEM=="net"</code> -
117                 ネットワークカードではないデバイスは無視することを指示します。
118               </p>
119             </li>
120             <li>
121               <p>
122                 <code class="literal">ACTION=="add"</code> - uevent の add
123                 イベントではないものは無視することを指示します。 (uevent の "remove" イベントや "change"
124                 イベントも発生しますが、これらはネットワークインターフェースの名前を変更するものではありません。)
125               </p>
126             </li>
127             <li>
128               <p>
129                 <code class="literal">DRIVERS=="?*"</code> - Udev に対して VLAN
130                 やブリッジサブインターフェース (bridge sub-interfaces) を無視することを指示します。
131                 (サブインターフェースにはドライバーがないためです。)
132                 サブインターフェースに名前が割り当てられたとすると、親デバイスの名前と衝突してしまうため、サブインターフェースの名前割り当てはスキップされます。
133               </p>
134             </li>
135             <li>
136               <p>
137                 <code class="literal">ATTR{address}</code> - このキーの値は NIC の
138                 MAC アドレスを表します。
139               </p>
140             </li>
141             <li>
142               <p>
143                 <code class="literal">ATTR{type}=="1"</code> -
144                 特定のワイヤレスドライバーでは複数の仮想インターフェースが生成されますが、そのうちの主となるインターフェースにのみルールが合致するようにします。
145                 二つめ以降のインターフェースに対する処理は、VLAN
146                 やブリッジサブインターフェースがスキップされるのと同じくスキップされます。
147                 名前割り当てが行われてしまうと名前衝突を起こすためです。
148               </p>
149             </li>
150             <li>
151               <p>
152                 <code class="literal">KERNEL=="eth*"</code> -
153                 複数のネットワークインターフェースを有するマシンを取り扱うためのルールを加えます。
154                 このルールでは全インターフェースに同一の MAC アドレスが用いられます。 (PS3 などがそういったマシンになります。)
155                 各インターフェースに対して個別の命名が行われたとすると Udev はそれぞれを別のものとして取り扱います。
156                 これはたいていの Linux From Scratch ユーザーにとって必要ありません。
157                 ただそうなったとしても問題はありません。
158               </p>
159             </li>
160             <li>
161               <p>
162                 <code class="literal">NAME</code> - Udev
163                 がインターフェースに対して割り当てる名前をキーの値として指定します。
164               </p>
165             </li>
166           </ul>
167         </div>
168         <p>
169           <code class="literal">NAME</code> に定義される値が重要です。
170           どのネットワークカードにどんな名前が割り当てられているかをよく確認してください。 そして以下において設定ファイルを生成する際には
171           <code class="literal">NAME</code> に定義されている名称を利用してください。
172         </p>
173       </div>
174       <div class="sect2" lang="ja" xml:lang="ja">
175         <h2 class="sect2">
176           7.2.2. ネットワークインターフェースに対する設定ファイルの生成
177         </h2>
178         <p>
179           どのネットワークインターフェースが起動したり停止したりするかは <code class=
180           "filename">/etc/sysconfig/</code> ディレクトリ配下のファイルの指定によります。
181           このディレクトリには、設定を行ないたい各ネットワークインターフェースに対するファイルを準備します。
182           例えばネットワークインターフェースの名が「<span class="quote">xyz</span>」である場合
183           <code class="filename">ifconfig.xyz</code> というファイルとします。
184           「<span class="quote">xyz</span>」は管理者が識別できるデバイス名、例えば eth0 などとなります。
185           このファイルにはネットワークインターフェースの属性、つまり IP アドレスやサブネットマスクなどを定義します。 ファイルベース名は
186           <span class="emphasis"><em>ifconfig</em></span> とすることが必要です。
187         </p>
188         <p>
189           以下のコマンドは、<span class="emphasis"><em>eth0</em></span> デバイスに対して固定 IP
190           アドレスを設定するファイルを生成する例です。
191         </p>
192         <pre class="userinput">
193 <kbd class="command">cd /etc/sysconfig/
194 cat &gt; ifconfig.eth0 &lt;&lt; "EOF"
195 <code class="literal">ONBOOT=yes
196 IFACE=eth0
197 SERVICE=ipv4-static
198 IP=192.168.1.1
199 GATEWAY=192.168.1.2
200 PREFIX=24
201 BROADCAST=192.168.1.255</code>
202 EOF</kbd>
203 </pre>
204         <p>
205           各変数の値は各ファイルごとに適切なものに設定してください。
206         </p>
207         <p>
208           <code class="envar">ONBOOT</code> 変数を「<span class=
209           "quote">yes</span>」に設定した場合、システム起動時にネットワークスクリプトがネットワークインターフェースカード
210           (network interface card; NIC) を起動します。 「<span class=
211           "quote">yes</span>」以外に設定すると、ネットワークスクリプトからの NIC の起動がなくなり、NIC
212           は自動では起動しなくなります。 ネットワークインターフェースは <span class=
213           "command"><strong>ifup</strong></span> や <span class=
214           "command"><strong>ifdown</strong></span>
215           といったコマンドを使って、起動や停止を行うことができます。
216         </p>
217         <p>
218           <code class="envar">IFACE</code> 変数は、インターフェース名を定義します。 例えば eth0
219           といったものです。 これはネットワークデバイスの設定を行うすべてのファイルにて必要な定義です。
220         </p>
221         <p>
222           <code class="envar">SERVICE</code> 変数はIP アドレスの取得方法を指定します。
223           LFS-ブートスクリプトは IP アドレス割り当て方法をモジュール化しています。 そして <code class=
224           "filename">/lib/services/</code> ディレクトリに追加でファイルを生成すれば、他の IP
225           アドレス割り当て方法をとることもできます。 通常は DHCP (Dynamic Host Configuration
226           Protocol) において利用されるものです。 これについては BLFS ブックにて説明しています。
227         </p>
228         <p>
229           <code class="envar">GATEWAY</code> 変数は、デフォルトゲートウェイが存在するならその IP
230           アドレスを指定します。 存在しない場合は、の変数設定を行っている一行をコメントにします。
231         </p>
232         <p>
233           <code class="envar">PREFIX</code> 変数はサブネットマスクにて用いられるビット数を指定します。 IP
234           アドレスの各オクテット (octet) は 8 ビットで構成されます。 例えばサブネットマスクが 255.255.255.0
235           である場合、ネットワーク番号 (network number) を特定するには最初の三つのオクテット (24ビット)
236           が用いられることを意味します。 もし 255.255.255.240 であるなら、最初の 28 ビットということになります。 24
237           ビットを超えるプレフィックスは、通常は DSL やケーブルを用いたインターネットサービスプロバイダー (Internet
238           Service Provider; ISP) がよく利用しています。 上の例 (PREFIX=24) では、サブネットマスクは
239           255.255.255.0 となります。 <code class="envar">PREFIX</code>
240           変数の値は、ネットワーク環境に応じて変更してください。 これが省略された場合は、デフォルトの 24 が用いられます。
241         </p>
242         <p>
243           より詳しくは <span class="command"><strong>ifup</strong></span> の man
244           ページを参照してください。
245         </p>
246       </div>
247       <div class="sect2" lang="ja" xml:lang="ja">
248         <h2 class="sect2">
249           <a id="resolv.conf" name="resolv.conf"></a>7.2.3. /etc/resolv.conf
250           ファイルの生成
251         </h2>
252         <p>
253           インターネットへの接続を行う場合には、ドメイン名サービス (domain name service; DNS)
254           による名前解決を必要とします。 これによりインターネットドメイン名を IP アドレスに、あるいはその逆の変換を行います。
255           これを行うには ISP やネットワーク管理者が指定する DNS サーバーの割り振り IP アドレスを <code class=
256           "filename">/etc/resolv.conf</code> ファイルに設定します。
257           以下のコマンドによりこのファイルを生成します。
258         </p>
259         <pre class="userinput">
260 <kbd class="command">cat &gt; /etc/resolv.conf &lt;&lt; "EOF"
261 <code class="literal"># Begin /etc/resolv.conf
262
263 domain <em class="replaceable"><code>&lt;Your Domain Name&gt;</code></em>
264 nameserver <em class=
265 "replaceable"><code>&lt;IP address of your primary nameserver&gt;</code></em>
266 nameserver <em class=
267 "replaceable"><code>&lt;IP address of your secondary nameserver&gt;</code></em>
268
269 # End /etc/resolv.conf</code>
270 EOF</kbd>
271 </pre>
272         <p>
273           <code class="varname">domain</code> ステートメントは省略するか、<code class=
274           "varname">search</code> ステートメントで代用することが可能です。 詳しくは resolv.conf の man
275           ページを参照してください。
276         </p>
277         <p>
278           <em class="replaceable"><code>&lt;IP address of the
279           nameserver&gt;</code></em> (ネームサーバーの IP アドレス) の部分には、DNS が割り振る適切な IP
280           アドレスを記述します。 IP アドレスの設定は複数行う場合もあります。(代替構成を必要とするなら二次サーバーを設けることでしょう。)
281           一つのサーバーのみで十分な場合は、二つめの <span class=
282           "emphasis"><em>nameserver</em></span> の行は削除します。
283           ローカルネットワークにおいてはルーターの IP アドレスを設定することになるでしょう。
284         </p>
285         <div class="admon note">
286           <img alt="[注記]" src="../images/note.png" />
287           <h3>
288             注記
289           </h3>
290           <p>
291             Google Public IPv4 DNS アドレスは 8.8.8.8 と 8.8.4.4 です。
292           </p>
293         </div>
294       </div>
295     </div>
296     <div class="navfooter">
297       <ul>
298         <li class="prev">
299           <a accesskey="p" href="introduction.html" title="はじめに">前のページ</a>
300           <p>
301             はじめに
302           </p>
303         </li>
304         <li class="next">
305           <a accesskey="n" href="hosts.html" title=
306           "/etc/hosts ファイルの設定">次のページ</a>
307           <p>
308             /etc/hosts ファイルの設定
309           </p>
310         </li>
311         <li class="up">
312           <a accesskey="u" href="chapter07.html" title=
313           "第7章 ブートスクリプトの設定">上に戻る</a>
314         </li>
315         <li class="home">
316           <a accesskey="h" href="../index.html" title=
317           "Linux From Scratch - Version 7.2">ホーム</a>
318         </li>
319       </ul>
320     </div>
321   </body>
322 </html>