Help us understand the problem. What is going on with this article?

名前解決・疎通確認する際の基本的なLinuxコマンド

はじめに

この記事はLIFULL Advent Calendar2018の10日目の記事です。
業務やプライベートでインフラ構築をすることが度々あり、疎通確認方法について改めて整理したいと思ったので、基本的なLinuxコマンドの使い方について解説していきます。

名前解決をするコマンド

・nslookup
・host
・dig

ネットワーク疎通確認コマンド

・ping
・traceroute

nslookupコマンドを使ってみる

まずは、nxlookupコマンドを使って名前解決してみます。

$ nslookup google.com
Server:     172.28.xxx.xxx
Address:    172.28.xxx.xxx#53

Non-authoritative answer:
Name:   google.com
Address: 172.217.25.110

Server: 172.28.xxx.xxxは、問い合わせを行なったネームサーバーのIPを示しています。
Non-authoritative answerと返ってきた場合、DNSサーバーにキャッシュされた情報を返却しており、実際のIPアドレスの設定が変更されている可能性があることを示しています。
また、問い合わせた結果、IPアドレスは172.217.25.110であることがわかります。

hostを使って簡潔な情報を取得する

hostを使うとnslookupよりも簡潔な情報を得ることができます。

$ host google.com
google.com has address 172.217.26.46
google.com has IPv6 address 2404:6800:4004:80d::200e
google.com mail is handled by 30 alt2.aspmx.l.google.com.
google.com mail is handled by 40 alt3.aspmx.l.google.com.
google.com mail is handled by 20 alt1.aspmx.l.google.com.
google.com mail is handled by 10 aspmx.l.google.com.
google.com mail is handled by 50 alt4.aspmx.l.google.com.

詳細な情報を得たい場合は-vオプションを使用します。

$ host -v google.com
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 845
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.            IN  A

;; ANSWER SECTION:
google.com.     60  IN  A   172.217.26.14

Received 44 bytes from 172.20.16.4#53 in 5 ms
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54113
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.            IN  AAAA

;; ANSWER SECTION:
google.com.     60  IN  AAAA    2404:6800:4004:80c::200e

Received 56 bytes from 172.20.16.4#53 in 4 ms
Trying "google.com"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21931
;; flags: qr rd ra; QUERY: 1, ANSWER: 5, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;google.com.            IN  MX

;; ANSWER SECTION:
google.com.     60  IN  MX  40 alt3.aspmx.l.google.com.
google.com.     60  IN  MX  10 aspmx.l.google.com.
google.com.     60  IN  MX  30 alt2.aspmx.l.google.com.
google.com.     60  IN  MX  50 alt4.aspmx.l.google.com.
google.com.     60  IN  MX  20 alt1.aspmx.l.google.com.

digコマンドでより詳細な情報を取得する

次に、digコマンドを使って名前解決をしてみます。
nslookupコマンドでは、IPアドレスの情報のみが返されましたが、digコマンドを使うとドメインに関する詳細な情報を知ることができます。

$ dig aws.amazon.com

; <<>> DiG 9.10.6 <<>> aws.amazon.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20698
;; flags: qr rd ra; QUERY: 1, ANSWER: 3, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4000
;; QUESTION SECTION:
;aws.amazon.com.            IN  A

;; ANSWER SECTION:
aws.amazon.com.     12  IN  CNAME   1.aws-lbr.amazonaws.com.
1.aws-lbr.amazonaws.com. 50 IN  CNAME   aws-us-west-2.amazon.com.
aws-us-west-2.amazon.com. 44    IN  A   52.119.168.190

;; Query time: 9 msec
;; SERVER: 172.28.xxx.xxx#53(172.28.xxx.xxx)
;; WHEN: Mon Dec 10 17:24:28 JST 2018
;; MSG SIZE  rcvd: 121

実行すると上記のような結果が返ってきます。

aws-us-west-2.amazon.com. 44    IN  A   52.119.168.190

この場合、DNSサーバーのキャッシュ残り時間が44秒で、aws-us-west-2.amazon.comAレコード52.119.168.190で登録されていることがわかります。

pingを使って疎通確認をする

pingはネットワークの接続経路が接続されているかを確認するコマンドです。
ただし、AWSでpingを使う場合はデフォルトでは疎通しないため注意してください。
基本的な使い方は以下の通りです。

$ ping google.com
PING google.com (172.217.26.46) 56(84) bytes of data.
64 bytes from nrt12s17-in-f14.1e100.net (172.217.26.46): icmp_seq=1 ttl=39 time=5.28 ms
64 bytes from nrt12s17-in-f14.1e100.net (172.217.26.46): icmp_seq=2 ttl=39 time=5.08 ms
64 bytes from nrt12s17-in-f14.1e100.net (172.217.26.46): icmp_seq=3 ttl=39 time=5.05 ms

疎通できれいれば、上記のようなログが何度も出力されます。回数は-cオプションで指定できます。

$ ping -c 3 google.com
PING google.com (172.217.24.142) 56(84) bytes of data.
64 bytes from nrt20s01-in-f142.1e100.net (172.217.24.142): icmp_seq=1 ttl=39 time=6.59 ms
64 bytes from nrt20s01-in-f142.1e100.net (172.217.24.142): icmp_seq=2 ttl=39 time=6.30 ms
64 bytes from nrt20s01-in-f142.1e100.net (172.217.24.142): icmp_seq=3 ttl=39 time=6.27 ms

--- google.com ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2002ms
rtt min/avg/max/mdev = 6.271/6.392/6.599/0.160 ms

tracerouteを使って疎通確認をする

tracerouteをLinuxで使う場合、デフォルトのプロトコルはUDPです。
最後に宛先にたどり着いて処理が終了すれば疎通確認が取れていることがわかります。

traceroute google.com
traceroute to google.com (216.58.197.142), 64 hops max, 52 byte packets
 1  10.33.23.254 (10.33.23.254)  3.929 ms  3.392 ms  2.997 ms
 2  10.33.91.254 (10.33.91.254)  74.841 ms  74.608 ms  68.587 ms
 3  10.33.91.222 (10.33.91.222)  67.503 ms  75.631 ms  76.663 ms
 4  192.168.3.4 (192.168.3.4)  71.895 ms  84.070 ms  78.555 ms
 5  192.168.2.1 (192.168.2.1)  74.489 ms  61.916 ms  63.660 ms
 6  158.205.127.1 (158.205.127.1)  95.288 ms  65.370 ms  61.405 ms
 7  158.205.188.229 (158.205.188.229)  70.257 ms  50.754 ms  55.554 ms
 8  158.205.192.105 (158.205.192.105)  57.842 ms  58.442 ms  55.389 ms
 9  as15169.ix.jpix.ad.jp (210.171.224.96)  57.065 ms  62.574 ms  60.141 ms
10  108.170.242.97 (108.170.242.97)  62.677 ms
    108.170.242.129 (108.170.242.129)  71.308 ms
    108.170.242.97 (108.170.242.97)  69.742 ms
11  216.239.62.25 (216.239.62.25)  69.914 ms  6.564 ms  68.025 ms
12  nrt12s01-in-f142.1e100.net (216.58.197.142)  64.729 ms  58.575 ms  64.304 ms

最後に

自身があまり詳しくないこともあり、簡単な使い方の紹介のみになってしまいましたが、他にも便利なコマンドがたくさんあるので時々更新しようと思います。

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away