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

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

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

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

Q&A

解決済

2回答

3509閲覧

digコマンドとIPアドレス

strike1217

総合スコア651

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

ネットワーク

ネットワークとは、複数のコンピューター間を接続する技術です。インターネットが最も主流なネットワークの形態で、TCP/IP・HTTP・DNSなどの様々なプロトコルや、ルータやサーバーなどの様々な機器の上に成り立っています。

0グッド

0クリップ

投稿2017/04/15 10:43

編集2017/04/15 11:05

よくグローバルIPアドレスの確認に以下のようなコマンド使うと思います。

BASH

1curl inet-ip.info

Bash

1curl -v inet-ip.info

Connected to inet-ip.info(23.21.174.210)
と出てきます。

次です。

Bash

1dig inet-ip.info
;; ANSWER SECTION: inet-ip.info. 282 IN CNAME inet-ip-info.herokuapp.com. inet-ip-info.herokuapp.com. 198 IN CNAME us-east-1-a.route.herokuapp.com. us-east-1-a.route.herokuapp.com. 59 IN A 54.243.91.79

inet-ip-info.herokuapp.comはブラウザで開けば、閲覧出きるんですが、CNAMEの us-east-1-a.route.herokuapp.com と 54.243.91.79 の2つはブラウザでは閲覧できません。
なぜでしょうか?

digコマンドとcurl -vでのIPアドレスが異なっているのはなぜでしょうか??

参考にしたサイト
AレコードとCNAMEレコードの違い
digコマンドを理解する
そうだ、DNSを調べよう。

us-east-1-a.route.herokuapp.com これは名前からしてアメリカっぽいのですが、海外だからという理由は関係あるんでしょうか?

[追記]
他にも試したことがあります。
www.yahoo.com のIPアドレスを調べて、ブラウザで閲覧したんですが、一回目は、アクセスできなかったのですが、2回目やってみたら、さっきとは別のIPアドレスが出現して、本来の「www.yahoo.com」とは違うサイトが表示されました。

digコマンドの信頼性がなんか低いような気がするんですが・・・

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

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

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

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

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

guest

回答2

0

ベストアンサー

IPアドレスが、違うのはDNSがラウンドロビンでIPアドレスを返しているからでしょう。

Bash

1$ dig inet-ip.info | grep $'IN\tA\t[1-9]' 2us-east-1-a.route.herokuapp.com. 53 IN A 107.22.213.25 3$ dig inet-ip.info | grep $'IN\tA\t[1-9]' 4us-east-1-a.route.herokuapp.com. 38 IN A 50.16.193.32 5$ dig inet-ip.info | grep $'IN\tA\t[1-9]' 6us-east-1-a.route.herokuapp.com. 6 IN A 54.225.145.56

IPアドレスでアクセスするとエラーになるのは、そのIPアドレスのサーバーにVirtual Hostで複数サイトがあるためです(Herokuサービス)。

Bash

1#!/bin/bash 2exec 3<>/dev/tcp/54.225.145.56/80 3(cat <&3 >out.html)& 4echo >&3 $'GET / HTTP/1.1\r' 5echo >&3 $'Host: inet-ip.info\r' 6echo >&3 $'\r' 7echo 3>&-

と、ホスト名を与えてアクセスすると正しいページが返ります。

投稿2017/04/15 12:47

otn

総合スコア84499

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

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

strike1217

2017/04/15 12:49

おお!! 自分も試してみますね!
strike1217

2017/04/15 12:56

dig inet-ip.info | grep $'IN\tA\t[1-9]' しばらく時間を置いてから実行すると、別のIPアドレスが表示されるんですね!! us-east-1-a.route.herokuapp.com これはネームサーバーなのでしょうか? dig コマンドの結果は間違っていないということですよね?
strike1217

2017/04/15 13:00

Herokuサービスというのは、つまり、1つのIPグローバルアドレスが割り当てられているマシーン上で複数のホストが存在しているということですよね?
otn

2017/04/15 13:11

> us-east-1-a.route.herokuapp.com これはネームサーバーなのでしょうか? いいえ。 > dig コマンドの結果は間違っていないということですよね? はい。 >つまり、1つのIPグローバルアドレスが割り当てられているマシーン上で複数のホストが存在しているということですよね? そうです。なので、IPアドレスだけではサービスが特定できません。
strike1217

2017/04/15 13:15

dig inet-ip.info | grep $'IN\tA\t[1-9]' しばらく時間がたってしまったIPアドレスでも、ホスト名と合わせれば、アクセス可能でしょうか?
strike1217

2017/04/15 13:28

DNSラウンドロビン以外にもDDNSの可能性もありますよね??
otn

2017/04/15 13:41

> DNSラウンドロビン以外にもDDNSの可能性もありますよね?? 論理的にはあり得ますが、 ・サービス内容 ・秒単位で変わる から、ラウンドロビンでしょう。 > しばらく時間がたってしまったIPアドレスでも、ホスト名と合わせれば、アクセス可能でしょうか? ラウンドロビンなら出来ます(サーバー障害やメンテ中で無ければ)。DDNSなら出来ないでしょうね。
strike1217

2017/04/15 14:33

わかりました。 ありがとうございました。
strike1217

2017/04/15 14:43

dig inet-ip.info | grep $'IN\tA\t[1-9]' かなりの数のIPアドレスがあるようですが、これって「ある範囲でIPアドレスを割り振って、ある時間単位で変更している」のでしょうか? こんなに大量のグローバルIPを割り当てることが可能なんですね!
otn

2017/04/15 15:24

Heroku(だけかどうか分かりませんが)で、10とか20とかのサーバーを借りているんでしょう。 サーバーの数だけIPアドレスがあります。
strike1217

2017/04/15 15:31

なるほど!! 分かりました。
guest

0

DNSサービスをブラウザで見ようとしているからではないでしょうか。
WEBサービスでないと見られませんが

投稿2017/04/15 10:51

mike2mike4

総合スコア894

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

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

strike1217

2017/04/15 10:54

us-east-1-a.route.herokuapp.com これってネームサーバーではないですよね? NSと表示されていないんですが・・・
mike2mike4

2017/04/15 11:00

Aレコードはご自身がリンクに挙げられて居るとおり別名のはずです。 試しにIPで接続してみてください。
mike2mike4

2017/04/15 12:07 編集

失礼。勘違いしてました。AレコードはDNSです。 CNAMEが別名です。 http://server.change.jp/5-minibird/5-minibird_5/ ところでDNSの名前解決用のdigコマンドで表示されたものをブラウザで見るというのが、ふと謎に思ったのですが。telnetでみるならともかく
strike1217

2017/04/15 12:12

ああ~~ AレコードはDNSなんですね! inet-ip-info.herokuapp.com. 198 IN CNAME us-east-1-a.route.herokuapp.com. この時に inet-ip-info.herokuapp.com これはブラウザで閲覧可能でした。 CNAMEと書いてあったので、us-east-1-a.route.herokuapp.com これもブラウザでアクセスできると思っていたのです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問