第 12章ネットワークスクリプト

Red Hat Linuxを使用したすべてのネットワーク通信は、インターフェイス間で行われます。これらのインターフェイスは、システムに接続されたネットワークデバイスで、ある特定の方法で設定されており、ほかのシステムとデータを交換するためにプロトコルを1つ以上利用しています。さまざまなタイプのインターフェイスが存在し、ネットワークインターフェイスカード(NIC 一般にイーサネットカードと呼んでいます)、無線LAN PCカード、赤外線ポートなど、インターフェイスをサポートするデバイスと同様に多岐にわたります。

各種ネットワークインターフェイス用の設定ファイルとインターフェイスをアクティブ/非アクティブにするスクリプトは/etc/sysconfig/network-scriptsディレクトリにあります。個々のインターフェイスファイルが存在するかどうかは使い方によりシステムごとに異なりますが、3種類のファイルがこのディレクトリに存在し、それらはインターフェイス設定ファイルインターフェイス制御スクリプトネットワーク機能ファイルで、協調して機能し、Red Hat Linuxが用意されている各種ネットワークデバイスを使用できるようにします。

この章では、これらのファイル間の関係と、ファイルを使用する際のさまざまなオプションについて説明します。

インターフェイス設定ファイル

インターフェイス設定ファイルは、個々のネットワークインターフェイスデバイスの動作を制御しています。Red Hat Linuxシステムはブートするときに、これらのファイルを使用して自動的にアップするインターフェイスとそれらのインターフェイスが適正に動作するように設定する方法を知ります。これらのファイルは通常、ifcfg-<device>と命名されています。<device> は設定ファイルが制御するデバイスの名前です。

イーサネットインターフェイス

最も一般的なインターフェイスファイルの1つはifcfg-eth0で、これはシステム内の最初のNICを制御します。システム内に多数のNICがある場合は、複数のifcfg-ethファイルを用意し、それぞれのファイル名の末尾に番号を付けます。各デバイスには独自の設定ファイルがあるので、各インターフェイスの動作を大幅に制御できます。

固定IPアドレスを使用したシステムのifcfg-eth0は、以下のようなものになります。

DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
BROADCAST=10.0.1.255
NETWORK=10.0.1.0
NETMASK=255.255.255.0
IPADDR=10.0.1.27
USERCTL=no

インターフェイス設定ファイルで要求される値はほかの値によって変わることがあります。たとえば、DHCPを利用するインターフェイスのifcfg-eth0ファイルは、次のように少し異なっていますが、それはIP情報がDHCPサーバーより供給されるためです。

DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes

ほとんどの場合、Network Configuratorredhat-config-network)やnetconfigなどのGUIユーティリティを使用してさまざまなインターフェイス設定ファイルを変更したくなります。これらのツールの使用方法については、オフィシャル Red Hat Linuxカスタマイズガイドを参照してください。

個々のインターフェイス設定ファイル内では、以下の値が共通です。

  • BOOTPROTO=<protocol> <protocol>は次のうちのどれかです。

    • none 起動時プロトコルを使用してはいけません。

    • bootp BOOTPプロトコルを使用しなければいけません。

    • dhcp DHCPプロトコルを使用しなければいけません。

  • BROADCAST=<address> <address>はブロードキャストアドレスです。

  • DEVICE=<name> <name>は物理デバイス名です(論理名である動的に割り当てられたPPPデバイスを除く)。

  • IPADDR=<address> <address>はIPアドレスです。

  • NETMASK=<mask> <mask>はネットマスク値です。

  • NETWORK=<address> <address>はネットワークアドレスです。

  • ONBOOT=<answer> <answer>は次のうちのどれかです。

    • yes このデバイスは起動時に有効にする必要があります。

    • no このデバイスは起動時に有効にしてはいけません。

  • USERCTL=<answer> <answer>は次のうちのどれかです。

    • true ルートでないユーザーは、このデバイスを制御できます。

    • false ルートでないユーザーは、このデバイスを制御できません。

これらのオプションを使用する共通のインターフェイス設定ファイルには、ほかにifcfg-lo(IPプロトコルのローカルループバックデバイスを制御します)、ifcfg-irlan0(最初の赤外線デバイスの設定値を配列します)、ifcfg-plip0(最初のPLIPデバイスを制御します)、ifcfg-tr0(最初のToken Ringデバイスと併用されます)などがあります。

ローカルループバックインターフェイスはテストによく使用されるだけでなく、同一システムをポイントバックするIPアドレスを必要とする各種アプリケーションでもよく使用されます。ループバックデバイスに送られたデータはただちにホストのネットワーク層に戻されます。赤外線インターフェイスを使用すれば、ラップトップコンピュータ、プリンタ間などデバイス間の情報を赤外線リンクに流すことができ、このリンクはイーサネットデバイスと同様に機能しますが、一般にピアツーピア接続に限定されます。PLIP(Parallel Line Interface Protocol)接続はほとんど同じように機能しますが、パラレルポートを使用する点が異なります。Token Ringトポロジーは、LANでは一頃のようには使用されておらず、イーサネットによってその影が薄くなっています。

ダイアルアップインターフェイス

PPPダイアルアップ接続によりインターネットなどのネットワークに接続するときは、そのインターフェイスの設定ファイルが必要になります。モデムなどの特定デバイス用に複数のPPPインターフェイス設定ファイルを用意することができます。ifcfg-ppp0ファイルは次のようなものになります。

DEVICE=ppp0
NAME=test
WVDIALSECT=test
MODEMPORT=/dev/modem
LINESPEED=115200
PAPNAME=test
USERCTL=true
ONBOOT=no
PERSIST=no
DEFROUTE=yes
PEERDNS=yes
DEMAND=no
IDLETIMEOUT=600

RP3Kpppを使用してダイアルアップアカウントを作成すると、このファイルが自動的に作成されます。さらに、ダイアルアップアカウントの設定値を変更すると、その結果はすべてこれらのインターフェイス設定ファイルに反映されます。オフィシャル Red Hat Linux入門ガイドにはGUIベースのこれらのダイアルアップ接続ツールを使用する手順が記載されています。また、このファイルを手作業で作成/編集することもできます。

SLIP(Serial Line Internet Protocol)はもう1つのダイアルアップインターフェイスですが、一般には使用されなくなっています。SLIPファイルのインターフェイス設定ファイル名には、ifcfg-sl0などがあります。

まだ説明していないオプションの中に、次のようにこれらのファイルで使用されるものがあります。

  • DEFROUTE=<answer> <answer> は次のうちのどれかです。

    • yes このインターフェイスをデフォルトルートとして設定します。

    • no このインターフェイスをデフォルトルートとして設定してはいけません。

  • DEMAND=<answer> <answer> は次のうちのどれかです。

    • yes このインターフェイスにより、接続を試みられたときにpppdはその接続を開始します。

    • no このインターフェイスの接続を手動で確立する必要があります。

  • IDLETIMEOUT=<value> <value>はインターフェイスが自己切断するまで活動停止している秒数です。

  • INITSTRING=<string> <string> はモデムデバイスに渡されるinit文字列です。このオプションは主にSLIPインターフェイスと併用されます。

  • LINESPEED=<value> <value>はデバイスのボーレートです。取り得る標準値には5760038400192009600などがあります。

  • MODEMPORT=<device> <device>は、このインターフェイスの接続を確立するために使用するデバイス(通常はモデム)の名前です。

  • MTU=<value> <value>はこのインターフェイスのMTU(Maximum Transfer Unit)設定値です。MTUは1フレームが転送できるデータの最大バイト数を表します(ヘッダー情報とトレーラ情報は除く)。ダイアルアップの場合、MTUの値を576に設定すると、脱落するパケットが減り、接続のスループットが少し改善されます。

  • NAME=<name> <name>はダイアルアップ接続設定の集まりに与えられているタイトルの参照名です。

  • PAPNAME=<name> <name>は、リモートシステムに接続できるようにするために行われるPAP(Password Authentication Protocol)交換時に与えられるユーザー名です。

  • PEERDNS=<answer> <answer>は次のうちのどれかです。

    • yes 接続が確立したときにリモートシステムによって提供されるDNSサーバーを使用するために、このインターフェイスはシステムの/etc/resolv.confファイルエントリを変更します。

    • no /etc/resolv.confファイルは変更されません。

  • PERSIST=<answer> <answer>は次のうちのどれかです。

    • yes このインターフェイスは、たとえモデムがハングアップした後に停止されても、常にアクティブのままにする必要があります。

    • no このインターフェイスは常にアクティブのままにしてはいけません。

  • REMIP=<address> <address>はリモートシステムのIPアドレスです。これは、通常、指定しないでおきます。

  • WVDIALSECT=<name> <name>/etc/wvdial.confのダイアラ設定とこのインターフェイスを関連付けます。ダイアラ設定には、ダイアルする電話番号、インターフェイスの重要情報などが含まれています。

エイリアスファイルとクローンファイル

使用頻度の少ない2種類のインターフェイス設定ファイルが/etc/sysconfig/network-scriptsにありますが、それらはエイリアスファイルクローンファイルで、インターフェイス名の後ろにファイル名の要素が追加されています。

エイリアスインターフェイス設定ファイルにはifcfg-<if-name>:<alias-value>の書式の名前を使用することで、エイリアスがインターフェイスを指すことができます。たとえば、ifcfg-eth0:0ファイルならば、DEVICE=eth0:0と静的IPアドレス10.0.0.2を指定するように設定でき、ifcfg-eth0のDHCPよりIP情報を受け取るようにすでに設定されているイーサネットインターフェイスのエイリアスとして機能します。そのとき、eth0デバイスは動的IPアドレスにバインドされますが、そのシステム上では固定IPアドレス10.0.0.2を介していつも参照できます。

クローンインターフェイス設定ファイルにはifcfg-<if-name>-<clone-name>に類似した名前があります。エイリアスファイルは既存のインターフェイス設定ファイルを参照する別の方法ですが、クローンファイルはインターフェイスを指定する際に追加オプションの指定に使用します。たとえば、eth0という標準のDHCPイーサネットインターフェイスの場合は、次のようなものになります。

DEVICE=eth0
ONBOOT=yes
BOOTPROTO=dhcp

USERCTLyesに設定されていないので、ユーザーがこのインターフェイスをアップ/ダウンすることはできません。この操作をユーザーができるようにするには、ユーザーがeth0インターフェイスのアップ/ダウンをできるようにするifcfg-eth0からuserと呼ばれるクローンを作成します。作成されたクローンの名前はifcfg-eth0-userとなり、次の1行で済みます。

USERCTL=yes

ifup eth0-userコマンドを使用してユーザーがeth0インターフェイスをアップする措置を講じると、ifcfg-eth0ifcfg-eth0-userからの設定オプションが一緒に使用されます。これは非常に基本的な例ですが、この方法はさまざまなオプションとインターフェイスで使用できます。

インターフェイス設定のエイリアスファイルとクローンファイルを作成する最も簡単な方法はGUIベースのNetwork Configuratorredhat-config-network)ツールを使用することです。