いますぐ実践! Linuxシステム管理

[バックナンバーのトップへ] [Linux システム管理のトップへ]


いますぐ実践! Linux システム管理 / Vol.203 / 読者数:1842名

こんばんは、うすだです。

昨日、4年強ほど使いつづけた携帯を、変えました。
で、まあ、こんなご時世ですので、今回は Android 携帯にしました。

INFOBAR A01
http://iida.jp/products/infobar/

まだ触り始めたばかりですが、なんと言いますか、 iPod touch とあまりにも似すぎていて、やや期待はずれな印象を持っています。

活用しているとは言い難いにしても、いちおうは iPod touch ユーザですので、 Android 携帯も違和感なく使えます。
しかし、逆に、Android 携帯の特長が見えてきません。

強いて言えば、設定項目などが多い分、わかりにくいように思われます。
ですので、 Apple の製品はやっぱり洗練されているよなあ…などと思ってしまったりしています。

まだ使い始めですし、2年は使わなければと思っていますので、 これからいろいろとカスタマイズなどして、よさを見つけたいと思います。

まずは栗々させようと思いつつ、今回もはりきってまいりますよ。

今回のお題 - DNSサーバの動作を確認する

インターネットに欠かせないものはいろいろありますが、 その中で最高峰のひとつに挙げられるのが DNS ではないでしょうか。

しかし、その割には、WWW や DB などに注目が行きがちで、 DNS はあまり注目されていないような気がしてなりません。

そこで今回は、DNS サーバの設定を…と思いましたが、その前に、 動作を確認するためのコマンドとその使い方を、ご紹介したいと思います。

コマンドと言えば host, dig, nslookup でしょうか

最初に、使いそうなコマンドをさらりとご紹介します。
といっても、上記タイトルですべてを語ってしまっていますが…。

 

まず、一番使用頻度の高そうなのが host コマンドです。
簡単な問合せから複雑なところの確認まで、幅広く行ってくれます。
簡単な書式は以下のとおりです。
([]で囲んだ部分は省略可能です。以降も同様です。)

  host [各種オプション] 解決したい名前 [DNSサーバ]

名前にホスト名を指定して実行しますとIPアドレスを教えてくれますし、 IPアドレスを指定するとホスト名を教えてくれます。
(下記は逆引きが一致しませんが、そういうポリシーなVPSなのです。)

  $ host www.usupi.org
  www.usupi.org has address 115.146.17.161
  $ host 115.146.17.161
  161.17.146.115.in-addr.arpa domain name pointer vps-...後略...

 

次に、dig コマンドです。
こちらは、host コマンドと比べるとややとっつきにくいですが、 詳細をきっちり報告してくださいますので、頼れる兄貴的なコマンドです。
簡単な書式は以下のとおりです。

  dig [@DNSサーバ] [各種オプション] 解決したい名前 [タイプ] ...

先ほどと同じように、www.usupi.org を解決してもらうと、 以下のようなお返事をいただけます。

  $ dig www.usupi.org
  ...前略...

  ;; QUESTION SECTION:
  ;www.usupi.org.               IN     A

  ;; ANSWER SECTION:
  www.usupi.org.        6726    IN     A       115.146.17.161

  ;; AUTHORITY SECTION:
  usupi.org.           85926    IN     NS      ns13.worldnic.com.
  usupi.org.           85926    IN     NS      ns14.worldnic.com.

  ;; ADDITIONAL SECTION:
  ns13.worldnic.com.   6726     IN     A       205.178.190.7
  ns14.worldnic.com.   6726     IN     A       206.188.198.7

  ;; Query time: 8 msec
  ;; SERVER: fd41:28b7:be11::1#53(fd41:28b7:be11::1)
  ;; WHEN: Sun Jul  3 18:54:30 2011
  ;; MSG SIZE  rcvd: 129

QUESTION SECTION は、自分が問合せた内容です。
ANSWER SECTION は、その答えです。
AUTHORITY SECTION は、情報元の DNS サーバです。
ADDITIONAL SECTION は、これらのやりとりで得られた情報です。

ちなみに、dig コマンドは太古の昔にご紹介しておりました。

Vol.022 - dig コマンドを使いこなす
http://www.usupi.org/sysad/022.html

…ああ、なんだかさっぱりしてますね。このくらいがいいのでしょうか。

 

さて、最後にご紹介するのが、nslookup コマンドです。
nslookup コマンドでは、基本的には対話形式で問合せを行います。

一例を以下に示します。
まず、普通に www.usupi.org の A レコードを問合せてみます。

  $ nslookup
  > www.usupi.org.
  Server:    fd41:28b7:be11::1
  Address:   fd41:28b7:be11::1#53

  Non-authoritative answer:
  Name:	www.usupi.org
  Address: 115.146.17.161

Non-authoritative answer とありますが、 これはキャッシュされた情報であることを示しています。
以前、誰かが問合せた結果がキャッシュに残っており、 その結果を返しているだけのようです。

そこで、ホンモノのサーバに答えを聞いてみましょう。
まずは、usupi.org の NS レコードを問合せて、ホンモノのDNSサーバを知ります。

  > set type=ns 
  > usupi.org.
  Server:    fd41:28b7:be11::1
  Address:   fd41:28b7:be11::1#53

  Non-authoritative answer:
  usupi.org   nameserver = ns13.worldnic.com.
  usupi.org   nameserver = ns14.worldnic.com.

  Authoritative answers can be found from:
  ns13.worldnic.com   internet address = 205.178.190.7
  ns14.worldnic.com   internet address = 206.188.198.7

2台ありますので、ns13.worldnic.com さんに伺ってみます。

  > server ns13.worldnic.com.
  Default server: ns13.worldnic.com.
  Address: 205.178.190.7#53
  > set type=a
  > www.usupi.org.
  Server:    ns13.worldnic.com.
  Address:   205.178.190.7#53

  Name:	www.usupi.org
  Address: 115.146.17.161
  > exit

今度は、Non-authoritative answer ではなくなりました。

さて、本題に入ります

メインはコマンドの使い方ではなく、動作確認をすることでした。
以降では、host コマンドを使って確認していきます。

まず、普通に A レコードや AAAA レコードを問合せてみましょう。
引数なしで実行すれば、双方を確認してくれます。

  $ host foo
  foo.local.usupi.org has address 192.168.1.11
  foo.local.usupi.org has IPv6 address fd41:28b7:be11::1234:5678

特定のレコードの情報だけを知りたいなら、 「-t」オプションでレコードを指定して実行します。

  $ host -t aaaa foo
  foo.local.usupi.org has IPv6 address fd41:28b7:be11::1234:5678
  $ host -t a foo
  foo.local.usupi.org has address 192.168.1.11

同じノリで、NS レコードや PTR レコードも確認できます。

  $ host -t ns local.usupi.org.
  local.usupi.org name server ns.local.usupi.org.
  $ host -t ptr 11.1.168.192.in-addr.arpa. 
  11.1.168.192.in-addr.arpa domain name pointer foo.local.usupi.org.

後者は、IPアドレスを直接指定しても、自動的に判断してくれます。
(…と、最初に書きましたが、念のため再度示します。)

  $ host 192.168.1.11
  11.1.168.192.in-addr.arpa domain name pointer foo.local.usupi.org.

IPv6の場合でも同様です。

  $ host fd41:28b7:be11::fffe
  e.f.f.f.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.1.e.b.7.b.8.2.1.4.d.f.\
  ip6.arpa domain name pointer test.local.usupi.org.

ちょっとだけひねります

2台のDNSサーバが、まったく同じ情報を返してくれているのだろうか、 という疑問がよぎることがあります。
そんなときは、SOA レコードのシリアル番号を確認すればよさそうです。

  $ host -t soa usupi.org. ns13.worldnic.com.
  ...中略...
  usupi.org has SOA record NS13.WORLDNIC.COM. namehost.WORLDNIC.COM. \
  108112301 10800 3600 604800 3600
  $ host -t soa usupi.org. ns14.worldnic.com.
  ...中略...
  usupi.org has SOA record NS13.WORLDNIC.COM. namehost.WORLDNIC.COM. \
  108112301 10800 3600 604800 3600

同じ値であることがわかります。
そして、ns13 がマスタサーバ、ns14 がスレーブサーバっぽいですね。

ちなみに、これらは、「-C」オプションでまとめて確認できます。

  $ host -C usupi.org
  Nameserver ns14.worldnic.com:
    usupi.org has SOA record NS13.WORLDNIC.COM. namehost.WORLDNIC.COM. \
  108112301 10800 3600 604800 3600
  Nameserver ns13.worldnic.com:
    usupi.org has SOA record NS13.WORLDNIC.COM. namehost.WORLDNIC.COM. \
  108112301 10800 3600 604800 3600

 

次に、再帰的な問合せを行ってみましょう。
…といっても、いままでがすべてそうでした。
ですので、再帰的でない問合せをしてみましょう。

通常、契約しているプロバイダのDNSサーバは、 いろんなホストの名前が解決できるよう、あちこちに問合せてくださいます。
ですが、再帰的な問合せをしないようにお願いすることで、 そのサーバが持っている情報を確認することができます。

で、再帰的に問合せないようにするには、「-r」オプションを用います。

たとえば、わたしが適当に立ち上げたDNSサーバは、 google.co.jp の情報を管理しているわけではありません。ですので、 -r をつけて問合せても答えを教えてくれません。

  $ host -r www.google.co.jp
  $

ですが、google.co.jp のDNSサーバは、自前でその情報を管理していますので、 -r をつけて問合せてもちゃんと答えてくれます。

  $ host -t ns google.co.jp.
  google.co.jp name server ns2.google.com.
  google.co.jp name server ns1.google.com.
  google.co.jp name server ns3.google.com.
  google.co.jp name server ns4.google.com.
  $ host -r www.google.co.jp. ns1.google.com.
  ...中略...
  www.google.co.jp is an alias for www.google.com.
  www.google.com is an alias for www.l.google.com.
  www.l.google.com has address 64.233.183.104
  www.l.google.com has address 64.233.183.106
  ...後略...

 

最後に、ゾーン転送です。
通常、マスターサーバはスレーブサーバに対してゾーン転送を許可しますが、 それ以外に対しては拒否することが多いと思われます。
その場合、スレーブでないマシンからゾーン転送を試みて、 できないことを確認する必要が生じたりするのではないかと思います。

ゾーン転送を行うには「-l」オプションを指定します。

  $ host -l local.usupi.org.
  local.usupi.org name server ns.local.usupi.org.
  local.usupi.org has address 192.168.1.1
  ...後略...

あるいは、axfr を指定してもよいと思います。
見た目は異なりますが、どちらも同じ情報を返しています。

  $ host -t axfr local.usupi.org.
  ...中略...
  ;; ANSWER SECTION:
  local.usupi.org.    86400    IN    SOA    local.usupi.org. \
  root.local.usupi.org. 2011041701 86400 86400 2419200 604800
  local.usupi.org.    86400    IN    NS     ns.local.usupi.org.
  local.usupi.org.    86400    IN    A      192.168.1.1
  ...後略...

おわりに

以上、主に host コマンドを使用した、DNSに関する確認方法をさらっとご紹介しました。

他にも、「-d」や「-v」オプションで冗長な表示を、 「-T」オプションで TCP を使うなど、興味深いオプションがいくつかあります。

自分のところのDNSサーバへの問合せなら、 いろいろアクセスしても支障はないと思います。 いろいろ試してマスターしてくださいませ。

宿題の答え

前回の宿題は、

  GRUB 2 でも、シャットダウンのメニューを追加してみましょう。

でした。

というわけで、Ubuntu 11.04 で試してみました。
ただ、以下では、/usr/sbin/grub-mkconfig を書き換えており、 あんまりおすすめはいたしません。(どうでもいい環境でお試しください。)

まず、/etc/default/grub に以下を設定すると、追加するようにします。
(「なにか」にはなにか書けばよいです。値が設定されていればOKです。)

GRUB_MENU_SHUTDOWN=なにか
GRUB_MENU_REBOOT=なにか

これが、/etc/grub.d/ の各ファイルから参照できるよう、 grub-mkconfig コマンドで export する必要があります。
まず、grub-mkconfig のバックアップをとっておきます。
(以下では grub-mkconfig.ORG としていますが、お好みでよいです。)

  # which grub-mkconfig
  /usr/sbin/grub-mkconfig
  # cp -p /usr/sbin/grub-mkconfig /usr/sbin/grub-mkconfig.ORG

そして、下記のあたりに export を挿入します。

# These are optional, user-defined variables.
export GRUB_DEFAULT \
  GRUB_HIDDEN_TIMEOUT \
  GRUB_HIDDEN_TIMEOUT_QUIET \
...
  GRUB_BADRAM

export GRUB_MENU_SHUTDOWN GRUB_MENU_REBOOT

if test "x${grub_cfg}" != "x"; then
  rm -f ${grub_cfg}.new
  exec > ${grub_cfg}.new
...

最後に、/etc/grub.d/41_custom に下記を追加します。

if [ -n "${GRUB_MENU_SHUTDOWN}" ]; then 
      echo "menuentry 'Shutdown' {"
      echo "    halt
      echo "}"
fi
if [ -n "${GRUB_MENU_REBOOT}" ]; then 
      echo "menuentry 'Reboot' {"
      echo "    reboot
      echo "}"
fi

あとは、/etc/default/grub をよきように変えてgrub-mkconfigコマンドを実行し、 意図したように menuentry が表示されましたら、 本番である update-grub2 コマンドを実行しちゃってください。

今回の宿題

今回の宿題は、

  hostコマンドで行った確認を、dig コマンドでも行ってみましょう。

です。

すべてでなくて構いませんが、主要な確認を dig コマンドで行ってみてください。

あとがき

今日、21世紀になってはじめて、美容院へ行きました。

普段はよめに切ってもらっているのですが、ここ数週間、 よくわからないまま走り続けていたところ、 いつの間にか髪がぼさぼさになってしまっており、 もう手に負えない(から美容院へ行け)と言われてしまいました。

基本的に、ひととの対話が超苦手でして、美容師さんとの1時間くらいの雑談も、 それを無難にこなす必要があると思った時点でトイレへ行きたくなってしまうくらい、 苦手です。

ただ、そうやってずっと避けていては進歩がないと思い、清水の舞台から飛び降りて、 意を決して行ってきました。

担当してくださったのは、気さくな感じの男の美容師さんでした。
で、出身とか職業とか、無難な話から入るのかなと思いきや、 なぜか唐突にソフトモヒカンの話から始まり、リアルなちょんまげの話へと推移し、 結局残りの時間もチョンマゲで持ってしまいました。

もちろん、おそらく、気を使ってそういう話をされたのだと思いますが、 きっかけはどうであれ、興味深く楽しい時間を共有できたということが、 重要なのではないかと思います。

もし、今までどおり、いやだと思ってトライしていなければ、 得ることのできなかった時間です。たとえ、いやな時間を過ごしたとしても、 行動を伴う方の選択肢を自分で選んだわけですから、 それほど後悔はしなかったのではないかと推測します。

というわけで、今後も、どちらかを選ぶ必要が生じた時には、 過去の経験から自動的に決めつけることは止めて、なるべく前向きにとらえて、 行動する方の選択肢を選びたいと思った次第です。

 

…まあ、今日のところは、ちょんまげの話だったんですけどね。

 

今回も、ここまで読んでいただき、たいへんありがとうございました。
次回は、7月17日(日) の未明にお会いしましょう!

 

「いますぐ実践! Linux システム管理」の解除は、以下からできます。
http://www.usupi.org/sysad/ (まぐまぐ ID:149633)

バックナンバーは、こちらにほぼ全部そろっています。
http://www.usupi.org/sysad/backno.html

「栗日記」- あとはお芝居のチラシを描くだけだー。
http://www.usupi.org/kuri/ (まぐまぐ ID:126454)
http://usupi.seesaa.net/ (栗日記ブログ)
http://usupi.org/k/ (モバイル栗日記)


[バックナンバーのトップへ] [Linux システム管理のトップへ]

トップ

バックナンバー
    [日付順] [目的別]

プロフィール

▼ リンク

独学Linux
Linuxデスクトップ環境に関する情報が満載です。 メルマガもありますよ。
Server World
CentOS 6をサーバとしたときの設定例が、これでもかというくらいたくさん載っています。 CentOS以外のディストリビューション(Fedora, Ubuntu)も充実しています。
LINUXで自宅サーバーを構築・導入(Fedora9)
Fedora9のインストールの仕方から管理方法まで、詳しく載っています。 SearchManには情報がもりだくさんです。
マロンくん.NET
〜サーバ管理者への道〜
Linuxをサーバとして使用するための、いろいろな設定方法が載っています。 マロンくんもかわいいです。 なんといっても、マロンくんという名前がいいですね!!
日経Linux
今や数少なくなってしまったLinuxの雑誌。ニュースやガイドもあります。
Linux Square − @IT
@ITが提供する、Linux の情報が満載。 載っていない設定方法はないんじゃないでしょうか。
gihyo.jp…技術評論社
Linuxに限らず様々な技術情報が満載のサイト。 SoftwareDesign誌も、 ソフトウェア技術者は必見です。
SourceForge.JP Magazine
Linux に限らず、オープンソース関連の記事が網羅されています。
ITmediaエンタープライズ:Linux Tips 一覧
Tips というより FAQ 集でしょうか。わからないことがあれば覗きましょう。
IBM developerWorks : Linux
開発者向けですが、勉強になりますよ。
Yahoo!ニュース - Linux
Yahoo!のLinuxに関するニュース一覧です。
栗日記
システム管理とかと全然関係ありませんが、毎日栗の絵を描いています。
システム管理につかれちゃったとき、癒されたいときに、ご覧ください。:-)
WEB RANKING - PC関連
ランキングに参加してみました。押してやってください。

▼ 作ってみました

Add to Google

▼ せんでん




▼ 最近読んだ本

▼ 気に入ってる本