LinuxはPING IPができるがPINGホストドメイン名ができない解決方法


vi/etc/nsswitch.conf
hosts: files dns
networks: files
変更:
hosts: files dns wins
networks: files
違うならhosts:あの行の後ろにwinsをつければいいのに.
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------
最近こんな質問がありました:pingドメイン名domain_nameの場合のヒント"ping:unknown host domain_name」ですが、pingドメイン名に対応するIPアドレス(hostまたはnslookupで取得)は問題ありません.
libc&&glibc標準Cライブラリ(the standard C library)はISO C標準を実現し、すべてのCプログラムで使用できる関数を含む.libcは通常the standard C libraryの略語として用いられる.
libcは標準Cライブラリの実装の名前としても使用されている.1990年代の初期、Linuxカーネルの開発者はglibc 1.xは独立し(forked glibc)、それを「Linux libc」と呼び、libcとも略称する.Linux libcは主に2,3,4,5の4つのバージョンを発表した.
1997年、FSFはglibc 2.0を発表し、POSIX規格をよりよくサポートし、コードの移植性がより良い.そのため、現在ではすべての主要なLinuxリリース版がglibcを使用しています.
Linux libcの最後のso-nameはlibcである.so.5.その後のglibc 2.xで使用するso-nameはlibc.so.6.
ネットワーク情報サービス(Network Information Service,NIS)NISは、RPC(Remote Procedure Call Protocol)ベースのクライアント/サーバシステムであり、NISドメイン内のマシンのセットが一連のプロファイルを共有できるようにしたYP(Yellow Pages)とも呼ばれています.NIS環境には、プライマリサーバ、スレーブサーバ、クライアントの3種類のホストがあります.サーバの役割は、ホスト構成情報の中央データベースとして機能します.プライマリ・サーバにはこれらの情報の権威的なコピーが保存され、セカンダリ・サーバはこれらの情報を保存する冗長なコピーです.クライアントは、サーバに依存してこれらの情報を提供します.
DNS Resolverのドメイン名(Domain Name)は、1つ以上のラベル(label)で構成され、ラベル間は点で区切られています.右端のラベルはトップドメイン(top-level domain,TLD)を表します.DNS(Domain Name System、ドメイン名解析システム)はインターネットのコアサービスであり、ドメイン名とIPアドレスを互いにマッピングできる分散階層化システムである.DNSは、ドメイン名サーバがそのドメイン名解析サービスの一部をサブサーバに委任することを許可することによって、階層化されたドメイン名空間を実現する.DNSは解析器(Resolver)とドメイン名サーバの2つの部分から構成されている.
DNSシステムのクライアントはDNS解析器(DNS Resolver)と呼ばれる.Linuxシステムでは、プロセッサは特定のアプリケーションではなく、プロセッサライブラリを指します.このライブラリは標準Cライブラリの一連の関数を含み、最も主要な2つの関数はgethostbyname()gethostbyaddr()である.DNSプロセッサは、/etc/hostsの情報を検索したり、DNSサーバに問い合わせたり、ネットワーク情報サービスシステムの構成情報を使用したりするように構成することができる.libcは/etc/host.confプロファイルを使用します.glibcは/etc/nsswitch.confプロファイルを使用します./etc/host.confの主なオプションは、(1)orderがドメイン名解析の検索順序を指定し、hostsが/etc/hostsプロファイルを表す.bindはクエリDNSサーバを表す.Nisは、クエリーNISシステムの構成情報を表します.(2)multi[on|off]は、/etc/hostsのホストが複数のIPアドレスを持つことができるかどうかを指定する./etc/nsswitch.confは名前サービススイッチ(name service switch)のプロファイルであり、DNS解析器に対応するデータベース名はhosts:.その主なオプションは、(1)dnsはDNS解析アドレス(2)filesを使用して/etc/hosts/etc/networkプロファイル(3)nisまたはnisplusを使用することを示す.
DNSサーバは/etc/resolv.confで構成します.
ping pingコマンドは、ネットワーク上のホストが接続できるかどうかをテストします.pingコマンドは、ICMP(Internet Control Message Protocol)エコー要求メッセージをターゲットホストに送信し、ソースホストからターゲットホストへのメッセージの往復時間(round-trip time,RTT)を計算します.
問題解決まず,pingドメイン名に対応できるIPは,サーバがpingサービス(ファイアウォールの使用など)を禁止していることは明らかではない.hostとnslookupはドメイン名に対応するIPアドレスを返すことができ、/etc/resolv.confのDNS設定も問題ありません.
実際、pingコマンドを使用してドメイン名を処理する場合、gethostbyname()関数を使用して対応するホスト情報(参加ソースコード)を返す.一方hostとnslookupは/etc/resolv.confのDNSサーバを直接使用している.したがって、/etc/nsswitch.confのhosts:データベースがdnsオプションを開いているかどうかを確認する必要があります.