9.5 ネットワークの問題

システム上の問題は、最初はそうは見えないのですが、ネットワークに関する問題であることが多いです。例えば、システムにユーザがログインできない理由は、ある種のネットワークの問題であったりします。ここでは、ネットワークの問題に直面した場合の簡単なチェックリストを紹介します。

コンピュータとネットワークの接続の確認をする場合、以下の手順に従ってください。

  1. イーサネット接続を使用する場合、まずハードウェアを確認します。ネットワークケーブルがきちんとコンピュータに差し込んであることを確認してください。イーサネットコネクタの隣に管理用ライトがある場合、その両方がアクティブである必要があります。

    接続に失敗する場合、お使いのネットワークケーブルが他のコンピュータでは使用可能かどうか確認します。使用可能な場合、ネットワークカードに問題の原因があります。ネットワークの設定でハブやスイッチを使用している場合、それらが原因でないかも調べる必要があります。

  2. 無線接続を使用する場合、他のコンピュータからワイヤレスリンクが確立できるかどうか確認します。これ以外の場合は、無線ネットワーク管理者に連絡してください。

  3. 基本的なネットワーク接続を確認し終わったら、どのサービスが応答していないかを探します。

    お使いの構成上のすべてのネットワークサーバのアドレス情報を集めます。適切なYaSTモジュール内で探すか、システム管理者に問い合わせてください。以下のリストには、ある構成内に含まれる一般的なネットワークサーバを、それらの故障の兆候とともに表わしています。

    DNS (ネームサービス)

    壊れた、あるいは誤作動しているネームサービスは、ネットワークの機能にさまざまな形で影響を与えます。ローカルコンピュータの認証がネットワークサーバによって行われ、それらのサーバが名前解決に問題があるために見つからない場合、ユーザはローカルコンピュータにログインすることもできません。壊れたネームサーバが管理するネットワーク上のコンピュータは、お互いを「認識」し、通信することができません。

    NTP (タイムサービス)

    誤作動している、または完全に壊れたNTPサービスは、Kerberosの認証およびXサーバの機能に影響を与えます。

    NFS (ファイルサービス)

    NFSによってマウントされたディレクトリ内のデータを必要とするアプリケーションがあった場合、このNFSサービスがダウンしてるか、間違って設定されていると、そのアプリケーションは開始できないか、正しく機能しません。最悪の場合は、.gconfまたは.kdeサブディレクトリを含んでいる、あるユーザのホームディレクトリが、NFSサーバの故障のために発見できなかった場合、そのユーザ個人のデスクトップ設定が起動しません。

    Samba (ファイルサービス)

    Sambaサーバ上にあるディレクトリ内のデータを必要とするアプリケーションがあった場合、このSambaサービスがダウンしたら、そのアプリケーションは開始できないか、適切に機能しません。

    NIS (ユーザ管理)

    お使いのSUSE Linuxシステムが、ユーザデータを提供するためにNISサーバを使用していた場合、NISサービスがダウンしたら、ユーザはこのコンピュータにログインできません。

    LDAP (ユーザ管理)

    お使いのSUSE Linuxシステムが、ユーザデータを提供するためにLDAPサーバを使用していた場合、LDAPサービスがダウンしたら、ユーザはこのコンピュータにログインできません。

    Kerberos (認証)

    認証ができずに、すべてのコンピュータへのログインが失敗します。

    CUPS (ネットワーク印刷)

    ユーザは印刷できません。

  4. ネットワークサーバが起動しているか、ネットワーク上で接続を確立できる設定になっているか、を確認します。

    [Important]重要項目

    以下で説明するデバッグの手順は、内部ルーティングを必要としない、簡単なネットワークサーバ/クライアント設定にのみ適用されます。サーバとクライアントの両方が、追加でルーティングする必要がない同じサブネットのメンバーであることが前提です。

    1. ping hostname (hostnameはサーバのホスト名で置き換える)を使って、サーバが起動中で、ネットワークに反応するかどうか確認します。このコマンドが成功する場合は、目的のホストは起動しており、ネットワークのネームサービスは正しく設定されていることが分かります。

      pingが「destination host unreachable」というメッセージで失敗する場合、お使いのシステムまたは宛先のサーバが正しく設定されていないか、ダウンしています。その場合、他のコンピュータからping your_hostnameを使用して、お使いのシステムに到達可能か確認してください。他のコンピュータからお使いのコンピュータへ到達可能な場合、宛先のサーバが起動していないか、正しく設定されていません。

      pingが「unknown host」というメッセージで失敗する場合、ネームサービスが正しく設定されていないか、使用したホスト名が正しくありません。ping -nipaddressを使用して、ネームサービスなしでこのホストに接続できるか試してください。これが成功する場合、ホスト名の綴り、およびお使いのネットワーク上のネームサービスが誤って設定されていないか確認します。この問題を詳細に調べるには、ステップ 4.bを参照してください。それでもpingが失敗する場合は、ネットワークカードが正しく設定されていないか、ネットワークのハードウェアに障害があります。これに関する情報については、ステップ 4.cを参照してください。

    2. host hostnameを使用して、接続しようとしているサーバのホスト名が適切なIPアドレスに変換され、またその逆も問題ないか確認します。このコマンドによって、このホストのIPアドレスが返される場合、ネームサービスは起動中です。このhostコマンドが失敗する場合、お使いのホスト上の名前とアドレス解決に関係するすべてのネットワーク設定ファイルを確認します。

      /etc/resolv.conf

      このファイルは、ネームサーバおよび現在使用中のドメインを管理するために使用されます。このファイルは手動で変更するか、YaSTまたはDHCPによる自動調整が可能ですが、自動調整のほうをお勧めします。ただし、このファイルが以下のような構造およびネットワークアドレスを含んでいること、さらにドメイン名が正しいことを確認してください。

      search fully_qualified_domain_name
      nameserver ipaddress_of_nameserver

      このファイルには1つ以上のネームサーバのアドレスを含むことができますが、その中の少なくとも1つは、お使いのホストの名前解決が正しくできる必要があります。必要であれば、YaST DNSおよびHostnameモジュールを使用してこのファイルを調整します。

      お使いのネットワークの接続がDHCP経由の場合、YaST DNS およびHostnameモジュール内で、[DHCP経由でのホスト名の変更]および[DHCP経由でのネームサービスおよび検索リストの更新]を選択し、DHCPを有効化してホスト名およびネームサービス情報を変更します。

      /etc/nsswitch.conf

      このファイルは、Linuxがネームサービス情報を探す場所を示します。次のようになります。

       ...
      hosts: files dns
      networks: files dns
      ...

      dnsエントリは必須です。これにより、Linuxは外部のネームサーバを使用するようになります。通常は、これらのエントリはYaSTによって自動的に作成されますが、内容を確認するのは構いません。

      ホスト上で、すべての関連エントリが正しい場合は、システム管理者に依頼して、正しいゾーン情報に関するDNSサーバの設定を確認してもらいます。DNSの詳細については、第20章 ドメインネームシステム (↑リファレンス)を参照してください。お使いのホストのDNS設定およびDNSサーバが正しいことが確認できた場合、ネットワークおよびネットワークデバイス設定の確認に進みます。

    3. お使いのシステムがネットワークサーバに接続できない状況で、ネームサービスの問題を障害原因の可能性リストから除外した場合は、ネットワークカードの設定を確認します。

      ifconfig network_device (rootユーザで実行)コマンドを使用して、このデバイスが適切に設定されているか確認します。inetアドレスおよびマスクの両方が正しく設定されていることを確認してください。IPアドレス内に間違いがある場合、またはネットワークマスク内で不明のビットがある場合は、ネットワーク設定が使用不可能になります。必要であれば、サーバ上でもこの確認をしてください。

    4. ネームサービスおよびネットワークサービスが正しく設定され起動している場合でも、外部のネットワーク接続がタイムアウトするのに時間がかかったり、完全に失敗する場合は、traceroute fully_qualified_domain_name (rootユーザで実行)コマンドを使用して、リクエストがネットワーク上でどのルートを使用するか追跡します。このコマンドは、お使いのコンピュータのリクエストが宛先に到達するまでに経由するゲートウェイ(ホップ)をリストします。各ホップの応答時間およびこのホップにそもそも到達可能か否かをリストします。tracerouteおよびpingコマンドを組み合わせて原因を追究し、管理者に知らせてください。

ネットワーク障害の原因を突き止めたら、自身でそれを解決するか(自分のコンピュータ上に問題がある場合)、お使いのネットワークのシステム管理者に原因について報告し、サービスを再設定するか、必要なシステムを修理してもらってください。