2.4. コマンドラインインターフェース (CLI) の使用

2.4.1. ifcfg ファイルを使用したネットワークインターフェースの設定

インターフェース設定ファイルは、個々のネットワークデバイスのソフトウェアインターフェースを制御します。システムは、ブート時にこれらのファイルを使用して、どのインターフェースをアクティブにして、どのように設定するかを決定します。これらのファイルは、通常 ifcfg-name と命名されます。接尾辞 name は設定ファイルが制御するデバイス名を指します。ifcfg ファイルの接尾辞は慣習的に、設定ファイル自体で DEVICE ディレクティブが提供する文字列と同じものになります。

静的ネットワーク設定

ifcfg ファイルを使って eth0 という名前のインターフェースを静的ネットワークで設定するには、/etc/sysconfig/network-scripts/ ディレクトリー内に以下のような ifcfg-eth0 という名前のファイルを作成します。
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
PREFIX=24
IPADDR=10.0.1.27
オプションでは、HWADDR ディレクティブを使ってハードウェアまたは MAC アドレスを指定します。この場合、「8章ネットワークデバイス命名における一貫性」で説明しているデバイス命名手順に影響が出る可能性があることに留意してください。ネットワークまたはブロードキャストアドレスは ipcalc が自動的に計算するので、指定する必要はありません。

動的ネットワーク設定

ifcfg ファイルを使って em1 という名前のインターフェースを動的ネットワークで設定するには、/etc/sysconfig/network-scripts/ ディレクトリー内に以下のような ifcfg-em1 という名前のファイルを作成します。
DEVICE=em1
BOOTPROTO=dhcp
ONBOOT=yes
オプションでは、HWADDR ディレクティブを使ってハードウェアまたは MAC アドレスを指定します。この場合、「8章ネットワークデバイス命名における一貫性」で説明しているデバイス命名手順に影響が出る可能性があることに留意してください。
インターフェースが DHCP サーバーに異なるホスト名を送信するよう設定するには、ifcfg ファイルに以下の行を追加します。
DHCP_HOSTNAME=hostname
DHCP サーバーが送信するルートをインターフェースが無視するよう設定するには、ifcfg ファイルに以下の行を追加します。
PEERDNS=no
これにより、ネットワークサービスは DHCP サーバーから受信した DNS サーバーで /etc/resolv.conf を更新しないようになります。
インターフェースが特定の DNS サーバーを使用するよう設定するには、上記のように PEERDNS=no と設定し、以下の行を ifcfg ファイルに追加します。
DNS1=ip-address
DNS2=ip-address
ここでの ip-address は、DNS サーバーのアドレスになります。これでネットワークサービスは、指定された DNS サーバーで /etc/resolv.conf を更新するようになります。
アドレスを自動的に取得するようにプロファイルが設定されていたり、インターフェース設定ファイルの BOOTPROTO が dhcp に設定されていると、NetworkManager はデフォルトで、DHCP クライアントの dhclient を呼び出します。DHCP が必要な場合は、インターフェース上で IPv4 および IPv6 のすべてのインターネットプロトコルに dhclient のインスタンスが開始されます。NetworkManager が実行中でない場合、もしくはこれがインターフェースを管理していない場合は、必要に応じてレガシーのネットワークサービスが dhclient のインスタンスを呼び出します。

DHCP クライアントの設定

2.4.2. ip コマンドを使用したネットワークインターフェースの設定

ip ユーティリティーを使うと、インターフェースに IP アドレスを割り当てることができます。コマンドは以下の形式になります。
ip addr [ add | del ] address dev ifname

ip コマンドを使って静的アドレスを割り当てる

インターフェースに IP アドレスを割り当てるには、root で以下のコマンドを実行します。
~]# ip address add 10.0.0.3/24 dev eth0
The address assignment of a specific device can be viewed as follows:
~]# ip addr show dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether f0:de:f1:7b:6e:5f brd ff:ff:ff:ff:ff:ff
    inet 10.0.0.3/24 brd 10.0.0.255 scope global global eth0
       valid_lft 58682sec preferred_lft 58682sec
    inet6 fe80::f2de:f1ff:fe7b:6e5f/64 scope link 
       valid_lft forever preferred_lft forever
ip-address(8) man ページでは、他の例やコマンドオプションが説明されています。

ip コマンドを使って複数のアドレスを設定する

ip ユーティリティーでは同一インターフェースへの複数のアドレス割り当てをサポートしているので、エイリアスインターフェースを使って複数アドレスを同一インターフェースにバインドする必要がありません。ip コマンドによるアドレスの割り当ては、複数のアドレス割り当てのために繰り返すことができます。例を示します。
~]# ip address add 192.168.2.223/24 dev eth1
~]# ip address add 192.168.4.223/24 dev eth1
~]# ip addr
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:fb:77:9e brd ff:ff:ff:ff:ff:ff
    inet 192.168.2.223/24 scope global eth1
    inet 192.168.4.223/24 scope global eth1
ip ユーティリティーのコマンドは、ip(8) man ページで確認することができます。

注記

コマンドライン上で実行される ip コマンドは、システム再起動後は維持されません。

2.4.3. 静的ルートおよびデフォルトゲートウェイ

静的ルートは、デフォルトゲートウェイを通過すべきでない、通過してはいけないトラフィックのためのものです。ルーティングは通常、ネットワーク上にあるルーティング専用のデバイスによって処理されます (ただし、どのデバイスもルーティングを実行するように設定可能です)。このため多くの場合、Red Hat Enterprise Linux サーバーやクライアントで静的ルートを設定する必要はありません。例外は、暗号化 VPN トンネルの通過が必要なトラフィックや、費用やセキュリティーのために特定のルートを通過すべきトラフィックなどです。デフォルトゲートウェイは、ローカルネットワークが宛先となっておらず、ルーティングテーブルに優先ルートが指定されていないすべてのトラフィックのためのものです。デフォルトゲートウェイは従来、専用ネットワークルーターでした。

注記

専門知識のさらなる拡充を図るには、Red Hat System Administration I (RH124) トレーニングコースもあります。

コマンドラインを使って静的ルートを設定する

静的ルートが必要な場合は、ip route add コマンドでルーティングテーブルに追加でき、削除したい時は ip route del コマンドを使います。頻繁に使用される ip route コマンドは、以下の形式で用います。
ip route [ add | del | change | append | replace ] destination-address
オプションおよび形式についての詳細は、ip-route(8) man ページを参照してください。
オプションなしで ip route コマンドを実行すると、IP ルーティングテーブルが表示されます。例を示します。
~]$ ip route
default via 192.168.122.1 dev ens9  proto static  metric 1024
192.168.122.0/24 dev ens9  proto kernel  scope link  src 192.168.122.107
192.168.122.0/24 dev eth0  proto kernel  scope link  src 192.168.122.126
ホストアドレス、つまり単一 IP アドレスに静的ルートを追加するには、root で以下のコマンドを実行します。
ip route add 192.0.2.1 via 10.0.0.1 [dev ifname]
ここでの 192.0.2.1 はドット形式 10 進法でのホストの IP アドレスに、10.0.0.1 はネクストホップアドレスに、ifname はネクストホップに進む終了インターフェースになります。
ネットワーク、つまり IP アドレスの範囲を表す IP アドレスに静的ルートを追加するには、root で以下のコマンドを実行します。
ip route add 192.0.2.0/24 via 10.0.0.1 [dev ifname]
ここでの 192.0.2.0 はドット形式 10 進法での宛先ネットワークの IP アドレスに、/24 はネットワークプレフィックスになります。ネットワークプレフィックスは、サブネットマスク内の有効なビット数です。ネットワークアドレスにスラッシュ、ネットワークプレフィックス長を続けるこの形式は、classless inter-domain routing (CIDR) 表記と呼ばれることもあります。
静的ルート設定はインターフェースごとに、/etc/sysconfig/network-scripts/route-interface ファイルに格納することができます。たとえば、eth0 インターフェースの静的ルートは、/etc/sysconfig/network-scripts/route-eth0 ファイルに格納されます。route-interface ファイルには ip コマンド引数とネットワーク/ネットマスクディレクティブの 2 つの形式があり、これらは後で説明されます。
ip route コマンドに関する詳細情報は、ip-route(8) man ページを参照してください。

デフォルトゲートウェイを設定する

デフォルトゲートウェイは、ネットワークスクリプトが決定します。このスクリプトは、まず /etc/sysconfig/network ファイルを、その後に 稼働中のインターフェースのネットワークインターフェース ifcfg ファイルを解析します。ifcfg ファイルは数的に昇順で解析され、最後に読み取られる GATEWAY ディレクティブがルーティングテーブルでデフォルトのルートを作成するために使用されます。
つまりデフォルトルートは GATEWAY ディレクティブで指定することが可能で、グローバルかインターフェース固有の設定ファイルのいずれかで指定できます。ただし、Red Hat Enterprise Linux ではグローバルの /etc/sysconfig/network ファイルの使用は非推奨となっており、ゲートウェイの指定はインターフェースごとの設定ファイルでのみ行なってください。
NetworkManager がモバイルホストを管理しているという動的なネットワーク環境では、ゲートウェイ情報はインターフェース固有である可能性が高く、DHCP による割り当てに任せるのが最善です。NetworkManager においてゲートウェイに達する出口インターフェースの選択に影響を及ぼす必要がある特別なケースでは、デフォルトゲートウェイに進まないインターフェースに ifcfg ファイルの DEFROUTE=no コマンドを利用します。

2.4.4. ifcfg ファイルでの静的ルートの設定

コマンドプロンプトで ip コマンドを使って設定した静的ルートは、システムが終了したり再起動すると失われます。システム再起動後も維持される静的ルートを設定するには、/etc/sysconfig/network-scripts/ ディレクトリー内のインターフェースごとの設定ファイルに格納する必要があります。ファイル名は、route-ifname という形式にします。設定ファイル内で使用するコマンドには、「IP コマンド引数形式を使用した静的ルート」 で説明する ip コマンドと、「ネットワーク/ネットマスクディレクティブの形式」 で説明する Network/Netmask 形式という 2 つのタイプがあります。

2.4.4.1. IP コマンド引数形式を使用した静的ルート

インターフェースごとの設定ファイル、たとえば /etc/sysconfig/network-scripts/route-eth0 で必要な場合は、1 行目でデフォルトゲートウェイへのルートを定義します。これは、ゲートウェイが DHCP 経由で設定されておらず、かつ /etc/sysconfig/network ファイルでグローバルに設定されていない場合にのみ必要となります。
default via 192.168.1.1 dev interface
ここでの 192.168.1.1 は、デフォルトゲートウェイの IP アドレスになります。interface は、デフォルトゲートウェイに接続されている、または到達可能なインターフェースになります。dev オプションは省略可能なオプションです。この設定は、/etc/sysconfig/network ファイル内の設定に優先することに注意してください。
リモートネットワークへのルートが必要な場合は、静的ルートは以下のように指定できます。各行は、個別のルートとして解析されます。
10.10.10.0/24 via 192.168.1.1 [dev interface]
ここでの 10.10.10.0/24 は、リモートもしくは宛先ネットワークのネットワークアドレスおよびプレフィックス長です。アドレス 192.168.1.1 は、リモートネットワークに続く IP アドレスです。ネクストホップアドレス の方が好ましいですが、出口インターフェースのアドレスでも機能します。ネクストホップ とは、ゲートウェイやルーターなどリンクのリモート側を意味します。dev オプションを使うと出口インターフェース interface を指定できますが、これは必須ではありません。必要に応じた数の静的ルートを追加してください。
以下は、ip コマンド引数形式を使用した route-interface ファイルの例です。デフォルトゲートウェイは 192.168.0.1 で、インターフェースは eth0 、また専用回線または WAN 接続が 192.168.0.10 で利用可能です。2 つの静的ルートは、10.10.10.0/24 ネットワークおよび 172.16.1.10/32 ホストに到達するためのものです。
default via 192.168.0.1 dev eth0
10.10.10.0/24 via 192.168.0.10 dev eth0
172.16.1.10/32 via 192.168.0.10 dev eth0
上記の例では、ローカルの 192.168.0.0/24 ネットワークに向かうパケットはそのネットワークに接続されているインターフェースに移動します。10.10.10.0/24 ネットワークおよび 172.16.1.10/32 ホストに向かうパケットは、192.168.0.10 に移動します。既知でないリモートネットワークに向かうパケットはデフォルトゲートウェイを使用するので、デフォルトルートが適切でない場合は、静的ルートはリモートネットワークもしくはホスト用のみに設定すべきです。ここでのリモートとは、システムに直接繋がれていないネットワークやホストを指します。
出口インターフェースの指定は、オプションです。特定のインターフェースからトラフィックを強制的に締め出したい場合は、これが便利です。たとえば VPN の場合、tun0 インターフェースが宛先ネットワークにつながる別のサブネットにあったとしても、リモートネットワークへのトラフィックを強制的にこのインターフェース経由とさせることができます。

重要

DHCP がすでにデフォルトゲートウェイを割り当てており、設定ファイル内でこの同一ゲートウェイが同一メトリクスで指定されている場合、起動時またはインターフェースをアクティベートする際にエラーが発生します。"RTNETLINK answers: File exists" というエラーメッセージが表示される可能性がありますが、これは無視して構いません。

2.4.4.2. ネットワーク/ネットマスクディレクティブの形式

ネットワーク/ネットマスクディレクティブの形式を route-interface ファイルに使用することも可能です。以下は、ネットワーク/ネットマスク形式のテンプレートで、後に説明が続きます。
ADDRESS0=10.10.10.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.1.1
  • ADDRESS0=10.10.10.0 は、到達するリモートネットワークまたはホストのネットワークアドレスです。
  • NETMASK0=255.255.255.0 は、ADDRESS0=10.10.10.0 で定義されているネットワークアドレスのネットマスクです。
  • GATEWAY0=192.168.1.1 は、ADDRESS0=10.10.10.0 への到達に使用可能なデフォルトゲートウェイまたは IP アドレスです。
以下は、ネットワーク/ネットマスクディレクティブの形式を使用した route-interface ファイルの例です。デフォルトゲートウェイは 192.168.0.1 ですが、専用回線または WAN 接続が 192.168.0.10 で利用可能です。2 つの静的ルートは、10.10.10.0/24 および 172.16.1.0/24 のネットワークに到達するためのものです。
ADDRESS0=10.10.10.0
NETMASK0=255.255.255.0
GATEWAY0=192.168.0.10
ADDRESS1=172.16.1.10
NETMASK1=255.255.255.0
GATEWAY1=192.168.0.10
後に続く静的ルートは、順番に番号付けされる必要があり、いずれの値もスキップしてはいけません。たとえば、ADDRESS0ADDRESS1ADDRESS2 というようになります。

2.4.5. VPN の設定

Red Hat Enterprise Linux 7 で VPN を作成する推奨方法は、Libreswan が提供する IPsec になります。コマンドラインを使って IPsec VPN を設定する方法は、『Red Hat Enterprise Linux 7 セキュリティーガイド』 で説明されています。