めもぶろぐ

お勉強したこと、趣味なんかを適当に書いてます。。。

LPIC1 名前解決が…

最近書いた記事のチェックポイント1について

 

 

chiita01.hatenablog.com

 

名前解決とは

そのなの通り名前を解決します。
 
filerってサーバーがあるとします
基本的にはネットワークでサーバーのつながり、道があります
 
どこにあるのってときに、IPを参照してそのターゲットに向かって通信します
 
IPって12桁ありますよね
 
普通は覚えられません
そこでIPの代わりにホスト名、サーバ名と紐付けて使っていきます。
 
インターネットも同じです。
yahoo.co.jpってURLもpingを打ってみればわかりますがIPが割り当てられてます
 
グローバルipなんかは、動的に動いたりもするので、ホスト名を使って、DDNSを使うことによって常に同じホスト名で通信できます。
 
IPが変わっても固定してホスト名が使用できます。
 
ほんでまあ、今回のはクライアント側の話です。名前解決をしてもらう側はなにをするんや
ということです
 
基本的には、/etc/hostsを参照するか、DNSサーバーのテーブルを参照します。
 
こいつらを使うように、参照するようにするには、
/etc/nsswitch.confのhostにて必要なものを記述してあげます
 
まあそもそもここにfilesの記述がなかったりするとhostsファイルを参照してくれないわけですね
 

/etc/nsswitch.conf

root@vyatta:~# cat /etc/nsswitch.conf
# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat

hosts:          files dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

netgroup:       nis
root@vyatta:~#

 
 
192.168.168.168     filer
 
[root@beagent ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
192.168.168.168     filer
[root@beagent ~]#
 
とでもhostsファイルにかいてあれば
ping filer
 
[root@beagent ~]# ping localhost
PING localhost (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.018 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.031 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.031 ms
64 bytes from localhost (127.0.0.1): icmp_seq=4 ttl=64 time=0.032 ms
64 bytes from localhost (127.0.0.1): icmp_seq=5 ttl=64 time=0.031 ms
^C
--- localhost ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4398ms
rtt min/avg/max/mdev = 0.018/0.028/0.032/0.007 ms
[root@beagent ~]#
 
でやると疎通が取れることを確認できます
 
じゃあホストごとにファイルをつくるの?ってめんどうですよね
 
そこで、hostsの中央管理サーバといえるDNSサーバーを参照するようにもできます
 
/etc/resolv.confに
nameserver 192.168.168.167
 

[root@beagent ~]# cat /etc/resolv.conf
# Generated by NetworkManager


# No nameservers found; try putting DNS servers into your
# ifcfg files in /etc/sysconfig/network-scripts like so:
#
# DNS1=xxx.xxx.xxx.xxx
# DNS2=xxx.xxx.xxx.xxx
# DOMAIN=lab.foo.com bar.foo.com

nameserver 192.168.168.167
[root@beagent ~]#

 
とかかいておくと、ここのサーバに名前解決をしてもらえるのです
 
digやhost、nslookup等で名前解決を試してみましょう
 
ちなみに、digこまんどにて@でDNSサーバを指定して名前解決を確認することもできます。
 

ping

root@vyatta:~# ping yahoo.co.jp
PING yahoo.co.jp (183.79.135.206) 56(84) bytes of data.
64 bytes from f1.top.vip.kks.yahoo.co.jp (183.79.135.206): icmp_req=1 ttl=48 time=54.7 ms
64 bytes from f1.top.vip.kks.yahoo.co.jp (183.79.135.206): icmp_req=2 ttl=48 time=60.2 ms
64 bytes from f1.top.vip.kks.yahoo.co.jp (183.79.135.206): icmp_req=3 ttl=48 time=77.0 ms
64 bytes from f1.top.vip.kks.yahoo.co.jp (183.79.135.206): icmp_req=4 ttl=48 time=56.7 ms
64 bytes from f1.top.vip.kks.yahoo.co.jp (183.79.135.206): icmp_req=5 ttl=48 time=53.0 ms
^C
--- yahoo.co.jp ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4042ms
rtt min/avg/max/mdev = 53.049/60.371/77.057/8.676 ms
 

nslookup

 

root@vyatta:~# nslookup yahoo.co.jp
Server:    192.168.20.1
Address 1: 192.168.20.1 buffalo.setup

Name:      yahoo.co.jp
Address 1: 183.79.135.206 f1.top.vip.kks.yahoo.co.jp
Address 2: 182.22.59.229 f1.top.vip.ssk.yahoo.co.jp

host

root@vyatta:~# host yahoo.co.jp
yahoo.co.jp has address 183.79.135.206
yahoo.co.jp has address 182.22.59.229
yahoo.co.jp mail is handled by 10 mx1.mail.yahoo.co.jp.
yahoo.co.jp mail is handled by 10 mx2.mail.yahoo.co.jp.
yahoo.co.jp mail is handled by 10 mx3.mail.yahoo.co.jp.
yahoo.co.jp mail is handled by 10 mx5.mail.yahoo.co.jp.
root@vyatta:~#
 
ということで、名前解決のポイントは3つ
 
  1. /etc/nsswitch.conf
  2. /etc/hosts
  3. /etc/resolv.conf
 
試験に出るのはこんなもんでしょう
 
おわり
 
広告を非表示にする