9.5. 全般的なネットワークの設定

9.5.1. ネットワークインターフェースに対する設定ファイルの生成

/etc/sysconfig/ ディレクトリ配下のファイルは、どのネットワークインターフェースがネットワークスクリプトにより起動、停止されるかを取り決めます。 このディレクトリには、設定を行ないたい各ネットワークインターフェースに対するファイル ifconfig.xyz を準備します。 xyzはネットワークカードを指します。 通常はインターフェース名(例えばeth0)を用います。 そして各ファイルには、1 つのネットワークインターフェースの属性、つまり IP アドレスやサブネットマスクなどを定義します。 ファイルベース名は ifconfig とします。

[注記]

注記

前節に示した手順を実施しなかった場合、udev は、システムの物理的な特性に従った enp2s1 などのような名称をネットワークカードインターフェースに割り当てます。 インタフェース名がよく分からない場合は、システム起動した後に ip link または ls /sys/class/net を実行すれば確認できます。

インターフェース名は、システム上で起動している udev デーモンの実装や設定に依存します。 LFS における udev デーモン(「Systemd-256.4 から取り出した Udev」においてインストール)は、LFS システムを起動させるまでは動作しません。 したがってホストディストリビューションにおいて各コマンドを実行しても、LFS 上において用いられるインターフェース名が何であるのかは特定できません。 それは chroot 環境内においても同じことです。

以下のコマンドは、eth0 デバイスに対して固定 IP アドレスを設定するファイルを生成する例です。

cd /etc/sysconfig/
cat > ifconfig.eth0 << "EOF"
ONBOOT=yes
IFACE=eth0
SERVICE=ipv4-static
IP=192.168.1.2
GATEWAY=192.168.1.1
PREFIX=24
BROADCAST=192.168.1.255
EOF

イタリックで示す変数の値は、各ファイルごとにインターフェースが起動するように適切に設定してください。

ONBOOT 変数を yes に設定した場合、システム起動時に System V ネットワークスクリプトがネットワークインターフェースカード (network interface card; NIC) を起動します。 yes 以外に設定すると、ネットワークスクリプトから NIC は無視され、NIC が自動的に起動することはなくなります。 ネットワークインターフェースは ifupifdown といったコマンドを使って、起動や停止を行うことができます。

IFACE 変数は、インターフェース名を定義します。 例えば eth0 といったものです。 これはネットワークデバイスの設定を行うすべてのファイルにて必要な定義です。 ファイル拡張子もこの設定に合わせます。

SERVICE 変数はIP アドレスの取得方法を指定します。 LFS-ブートスクリプトは IP アドレス割り当て方法をモジュール化しています。 そして /lib/services/ ディレクトリに追加でファイルを生成すれば、他の IP アドレス割り当て方法をとることもできます。 通常は DHCP (Dynamic Host Configuration Protocol) において利用されるものです。 これについては BLFS ブックにて説明しています。

GATEWAY 変数は、デフォルトゲートウェイが存在するならその IP アドレスを指定します。 存在しない場合は、の変数設定を行っている一行をコメントにします。

PREFIX 変数はサブネットマスクにて用いられるビット数を指定します。 IP アドレスの各セグメントは 8 ビットで構成されます。 例えばサブネットマスクが 255.255.255.0 である場合、ネットワーク番号 (network number) を特定するには最初の 3 つのセグメント (24ビット) が用いられることを意味します。 もし 255.255.255.240 であれば、サブネットは最初の 28 ビットということになります。 24 ビットを超えるプレフィックスは、通常は DSL やケーブルを用いたインターネットサービスプロバイダー (Internet Service Provider; ISP) がよく利用しています。 上の例 (PREFIX=24) では、サブネットマスクは 255.255.255.0 となります。 PREFIX 変数の値は、ネットワーク環境に応じて変更してください。 これが省略された場合は、デフォルトの 24 が用いられます。

より詳しくは ifup の man ページを参照してください。

9.5.2. /etc/resolv.conf ファイルの生成

インターネットドメイン名を IP アドレスに、あるいはその逆の変換を行なうには、ドメイン名サービス (domain name service; DNS) による名前解決を必要とします。 これを行うには ISP やネットワーク管理者が指定する DNS サーバーの割り振り IP アドレスを /etc/resolv.conf ファイルに設定します。 以下のコマンドによりこのファイルを生成します。

cat > /etc/resolv.conf << "EOF"
# Begin /etc/resolv.conf

domain <Your Domain Name>
nameserver <IP address of your primary nameserver>
nameserver <IP address of your secondary nameserver>

# End /etc/resolv.conf
EOF

domain ステートメントは省略するか、search ステートメントで代用することが可能です。 詳しくは resolv.conf の man ページを参照してください。

<IP address of the nameserver> (ネームサーバーの IP アドレス) の部分には、DNS が割り振る適切な IP アドレスを記述します。 IP アドレスの設定は複数行う場合もあります。(代替構成を必要とするなら二次サーバーを設けることでしょう。) 一つのサーバーのみで十分な場合は、二つめの nameserver の行は削除します。 ローカルネットワークにおいてはルーターの IP アドレスを設定することになるでしょう。

[注記]

注記

Google Public IPv4 DNS アドレスは 8.8.8.8 と 8.8.4.4 です。

9.5.3. ホスト名の設定

システム起動時には /etc/hostname が参照されてシステムのホスト名が決定されます。

以下のコマンドを実行することで /etc/hostname ファイルを生成するとともに、ホスト名を設定します。

echo "<lfs>" > /etc/hostname

<lfs> の部分は、各システムにおいて定めたい名称に置き換えてください。 ここでは完全修飾ドメイン名 (Fully Qualified Domain Name; FQDN) は指定しないでください。 その情報は /etc/hosts ファイルにて行います。

9.5.4. /etc/hosts ファイルの設定

完全修飾ドメイン名 (Fully Qualified Domain Name; FQDN)、エイリアスの各設定を /etc/hosts ファイルにて行います。 固定 IP アドレスを利用する場合は、その IP アドレスも定めることが必要です。 その文法は以下のようになります。

IP_address myhost.example.org aliases

インターネットに公開されていないコンピューターである場合 (つまり登録ドメインであったり、あらかじめ IP アドレスが割り当てられていたりする場合。 普通のユーザーはこれを持ちません。) IP アドレスはプライベートネットワーク IP アドレスの範囲で指定します。 以下がそのアドレス範囲です。

Private Network Address Range      Normal Prefix
10.0.0.1 - 10.255.255.254           8
172.x.0.1 - 172.x.255.254           16
192.168.y.1 - 192.168.y.254         24

x は 16 から 31、y は 0 から 255 の範囲の数値です。

IP アドレスの例は 192.168.1.1 となります。

インターネット上にコンピューターを公開しようとする場合、正しい FQDN はドメイン名そのものか、あるいはプレフィックス(たいていはホスト名)とドメイン名を.でつなげて記述します。 そしてドメインプロバイダーに問い合わせて、FQDN を公開 IP アドレスとして解決する必要があります。

インターネット上にコンピューターが公開されていない場合であっても、特定のプログラム、たとえば MTA などにおいては、正常な処理が行われるように FQDN が必要になります。 特別な FQDN localhost.localdomain は、その目的で利用されます。

以下のようにして /etc/hosts ファイルを生成します。

cat > /etc/hosts << "EOF"
# Begin /etc/hosts

127.0.0.1 localhost.localdomain localhost
127.0.1.1 <FQDN> <HOSTNAME>
<192.168.1.1> <FQDN> <HOSTNAME> [alias1] [alias2 ...]
::1       localhost ip6-localhost ip6-loopback
ff02::1   ip6-allnodes
ff02::2   ip6-allrouters

# End /etc/hosts
EOF

<192.168.1.1>, <FQDN>, <HOSTNAME.example.org> の部分は利用状況に応じて書き換えてください。 (ネットワーク管理者から IP アドレスを指定されている場合や、既存のネットワーク環境に接続する場合など。). エイリアスの記述は省略しても構いません。