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

本節はネットワークカードを設定する場合にのみ作業を行っていきます。

7.2.1. ネットワークインターフェースの設定ファイル

systemd はバージョン 209 から、ネットワーク設定を行うデーモン systemd-networkd を提供するようになりました。 このデーモンが基本的なネットワーク設定を行います。 さらにバージョン 213 からは、DNS 名前解決を固定的に /etc/resolv.conf ファイルによって行っていたものが systemd-resolved により行うよう変更されています。 いずれのデーモンもデフォルトで有効となっています。

systemd-networkd (および systemd-resolved) に対する設定ファイルは /usr/lib/systemd/network ディレクトリまたは /etc/systemd/network ディレクトリに置きます。 /usr/lib/systemd/network ディレクトリにある設定ファイルよりも /etc/systemd/network ディレクトリにある設定ファイルの方が優先されます。 設定ファイルには .link, .netdev, .network の三種類があります。 これらの説明や設定例については man ページ systemd-link(5), systemd-netdev(5), systemd-network(5) を参照してください。

[注記]

注記

Udev は、システムの物理的な特性に従った enp2s1 などのような名称をネットワークカードインターフェースに割り当てます。 インタフェース名がよく分からない場合は、システム起動直後に ip link を実行して確認してください。

7.2.1.1. 固定 IP アドレスの設定

以下のコマンドは固定IPアドレスの設定を行う設定ファイルを生成するものです。 (systemd-networkd と systemd-resolved を利用します。)

cat > /etc/systemd/network/10-eth0-static.network << "EOF"
[Match]
Name=eth0

[Network]
Address=192.168.0.2/24
Gateway=192.168.0.1
DNS=192.168.0.1
Domains=<Your Domain Name>
EOF

複数のDNSサーバーを有している場合は、DNS設定行を複数指定することができます。 固定的に /etc/resolv.conf ファイルを利用する場合は DNS および Domains の設定行は記載しません。

7.2.1.2. DHCP 設定

以下のコマンドは IPv4 DHCP 設定を行う設定ファイルを生成します。

cat > /etc/systemd/network/10-eth0-dhcp.network << "EOF"
[Match]
Name=eth0

[Network]
DHCP=ipv4

[DHCP]
UseDomains=true
EOF

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

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

7.2.2.1. systemd 解決による設定

[注記]

注記

ネットワークインターフェース設定を別の方法 (例えば ppp や network-manager など) で行う場合、 またはローカルリゾルバー (local resolver; 例えば bind や dnsmasq など) や /etc/resolv.conf を生成するソフトウェア (例えば resolvconf) などを用いる場合、 systemd-resolved サービスは用いてはなりません。

DNS 設定に systemd-resolved を用いると /run/systemd/resolve/resolv.conf ファイルが生成されます。 このファイルを利用するためのシンボリックリンクを /etc に生成します。

ln -sfv /run/systemd/resolve/resolv.conf /etc/resolv.conf

7.2.2.2. スタティックな resolv.conf 設定

スタティックな /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.88.8.4.4 です。 また IPv6 では 2001:4860:4860::88882001:4860:4860::8844 です。

7.2.3. ホスト名の設定

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

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

echo "<lfs>" > /etc/hostname

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

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

完全修飾ドメイン名 (Fully Qualified Domain Name; FQDN)、エイリアスの各設定は /etc/hosts ファイルにて行います。 固定アドレスを用いる場合は 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 の例としては lfs.example.org となります。

ネットワークカードを用いない場合でも FQDN の記述は行ってください。 特定のプログラムが動作する際に必要となることがあるからです。

DHCP、DHCPv6 IPv6 Autoconfiguration を利用する場合あるいはネットワークカードを設定しない場合は、以下のコマンドにより /etc/hosts を生成します。

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

127.0.0.1 localhost
127.0.1.1 <FQDN> <HOSTNAME>
::1       localhost ip6-localhost ip6-loopback
ff02::1   ip6-allnodes
ff02::2   ip6-allrouters

# End /etc/hosts
EOF

::1 という項目は IPv6 における 127.0.0.1 に相当し、IPv6 のループバックインターフェースを表します。 127.0.1.1 は FQDN に対して特別に割り当てられたループバック項目です。

スタティックアドレスを利用する場合は、以下のコマンドにより /etc/hosts を生成します。

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

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

# End /etc/hosts
EOF

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