質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
DNS

DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

Q&A

解決済

4回答

1974閲覧

hostsについての解釈

mint.cherry

総合スコア284

DNS

DNSとは、Domain Name Systemのことで、インターネットなどのTCP/IPネットワーク上でドメイン名やホスト名と、IPアドレスとの対応づけを管理するシステムです。DNSのデータベースは、IPアドレスの4つの数字を通知するDNSサーバーで構築されており、IPアドレスをドメイン名から引き出す機能やドメイン名に関するメールサーバ情報を取り扱っています。

0グッド

0クリップ

投稿2015/11/09 08:16

一通りDNSの勉強しました。
hostsは自分の端末のdnsサーバーと思っていいのでしょうか?

以下、例です。
パターン1
PC1でabc.comドメインのwebページを作りました。
PC1のブラウザで確認するため、abc.comと打ちました。
PC1はまずhostsを確認してなかった場合に上位のDNSに問い合わせを始めます。
逆にPC1でhostsに「127.0.0.1 abc.com」と記述があれば上位のDNSへ問い合わせずにPC1のwebを表示させます。

パターン2
PC1でabc.comドメインのwebページを作りました。
PC2がPC1のabc.comを見たいという場合にDNSサーバーに問い合わせます。
DNSサーバーにabc.comはPC1IPアドレスです。という情報が書き込まれていた場合PC1に問い合わせが行きます。
PC1はhostsを参照し「127.0.0.1 abc.com」の記述があればabc.comをPC2へ渡します。
逆に記述がなければ、場所がわからずにPC2へ送れなくエラーになる。

このような感じでいいのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答4

0

127.0.0.1 というのは、ローカル・ループバック・アドレスと呼ばれる特殊なIPアドレスで、そのマシン自身を表します。

PC1,PC2の両方のhostsに「127.0.0.1 abc.com」の記述があるとすると、
PC1でabc.comを宛先にすると、PC1にアクセスされます。
PC2でabc.comを宛先にすると、PC2にアクセスされます。

127.0.0.1は、このように特殊な動きを起こすことを知っておいてください。

ローカル・ループバック・アドレスではないIPアドレスを使って質問を書き直しては如何でしょうか。
何が知りたいのかが、判りかねます。

投稿2015/11/09 08:49

coco_bauer

総合スコア6915

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mint.cherry

2015/11/09 08:58

回答ありがとうございますm(__)m 127.0.0.1はループバックアドレスというものは知っていました。 例えば、PC2のhosts「(PC1のIP) abc.com」と記述があれば、dnsへ問い合わせることなく、PC1のabc.comへいってくれるのでしょうか?
guest

0

概ねその解釈でOKだと思います。
hostsファイルはもともとDNSサーバーがまだない時代に
それぞれのhostコンピューターが他のコンピューターを認識できるようにするための
参照ファイルだったので、
hostsファイルの延長というか拡張が現在のDNSサーバーになったという印象でしょうか。

ただ、hostsファイルを見るかDNSサーバーを見るかはそのhostコンピューターによって
優先順位をつけれたりすると思います。
(たとえば、DNSサーバー自体を内包しているLinuxOSのマシン自体がlocalhostといった場合などです。)
基本的にはいわゆるラウンドロビンとか言われているように、
マッチするまでぐるぐると検索して最初にマッチしたところが引かれるという感じなってます。
ネットワークがうまくつながらなくて、hostsファイルに書く順序を入れ替えたらつながった…とか、
よくありますよね。。。

投稿2015/11/09 08:38

osamuya

総合スコア241

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mint.cherry

2015/11/09 09:06

回答ありがとうございます。 DNSのがない時代にhostファイルを参照していたのですね!!初めて知りました。。 DNSラウンドロビン? hostsの順序を入れ替えたらつながったとかよくあるもんなのですか!?(汗) まだ、この業界始めたばかりですので、あまり理解ができていませんm(__)m
guest

0

ベストアンサー

すこし違うと思います。

私は以下の理解でいます。
名前解決の仕組みがhostsでありDNSである。

なお、パターン2にある以下について、

PC1はhostsを参照し「127.0.0.1 abc.com」の記述があればabc.comをPC2へ渡します。

他PCからの問合せに関して、ローカルのhostsにレコードがあっても回答はしません。

hostsはローカルPCが名前解決する際に参照されるものです。

補足として、

PC1はまずhostsを確認してなかった場合に上位のDNSに問い合わせを始めます。
逆にPC1でhostsに「127.0.0.1 abc.com」と記述があれば上位のDNSへ問い合わせずにPC1のwebを表示させます。

名前解決の参照順は以下に設定されています。
/etc/nsswitch.conf
hosts: files dns

上記「hosts」に設定されている順番に名前解決を試みます。
デフォルトでは、/etc/hosts を最初に参照して、解決できなかった場合はdnsを参照します。

投稿2015/11/09 08:37

over

総合スコア4309

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mint.cherry

2015/11/09 09:16

回答ありがとうございます!! hostsはローカルPCでしか対応できないということですか。 例えば、PC2のhosts「(PC1のIP) abc.com」と記述があれば、dnsへ問い合わせることなく、PC1のabc.comへいってくれるのでしょうか? 順番の設定も少し気になってはいました。ありがとう御座いますm(__)m
over

2015/11/09 09:21

> 例えば、PC2のhosts「(PC1のIP) abc.com」と記述があれば、dnsへ問い合わせることなく、PC1のabc.comへいってくれるのでしょうか? ご認識の通りだと思います。
mint.cherry

2015/11/09 09:28

返信ありがとうございます。 認識してたとおりなんですね!ありがとう御座いますm(__)m
guest

0

パターン2の場合は、DNSサーバで名前解決が完了してしまっているので、PC2からはPC1のIPアドレスでアクセスします。そのため、PC1のhostsは関係しません。

もっとも、現実問題として、(デフォルトループバック以外で)hostsを設定する必要はインターネットに接続するような運用では、特定のサーバへ繋がないためにローカルで解決しておくような場合を除いてあまりないとは思います。

投稿2015/11/09 08:33

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mint.cherry

2015/11/09 09:23

回答ありがとうございます!! 先にDNSをが完了しているのでhosts関係しないのですね。 ただDNSの勉強をしていてふと疑問におもっていました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問