新人研修の

講師をしてます。今日は_ネットワークはなぜつながるのか_を eXtreme Reading をナニ。

ping

IP アドレスの話の中で、実は IP アドレスって 32bit の数値で (IPv4 の場合)、この数値でも通信できたりなんかするんだよねー、と言いつつブラウザで試験してみたら通信できず。昔はできたはずなのに、と言いつつ ping では通信可能なことを確認。
ってソレを tweet したら_16 進でも可能_との RT があったので、わはははと言いつつ試してみたらできた。これはこれは、って思いつつ wiki でまとめを作らせてたら、8 進でもできまっせ、との RT を発見。別途 iputils-ping パケジのソースをげとして中身を見てみる予定。

dig

root-servers.net から順にネイムサーバを探していくというリゾルバの動作を確認中に、co.jp. とか ac.jp. なネイムサーバが無い事が判明。いつ仕様が変更になったのかなぁ。って、もしかするとそーゆー仕様、って理解自体がダウトであった可能性もあるな。
とりあえず . の ns を探して

$ dig . ns

; <<>> DiG 9.5.1-P3 <<>> . ns
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 36990
;; flags: qr rd ra; QUERY: 1, ANSWER: 13, AUTHORITY: 0, ADDITIONAL: 14

;; QUESTION SECTION:
;.                              IN      NS

;; ANSWER SECTION:
.                       312986  IN      NS      g.root-servers.net.
.                       312986  IN      NS      i.root-servers.net.
.                       312986  IN      NS      k.root-servers.net.
.                       312986  IN      NS      l.root-servers.net.
.                       312986  IN      NS      h.root-servers.net.
.                       312986  IN      NS      j.root-servers.net.
.                       312986  IN      NS      b.root-servers.net.
.                       312986  IN      NS      f.root-servers.net.
.                       312986  IN      NS      c.root-servers.net.
.                       312986  IN      NS      e.root-servers.net.
.                       312986  IN      NS      a.root-servers.net.
.                       312986  IN      NS      d.root-servers.net.
.                       312986  IN      NS      m.root-servers.net.

;; ADDITIONAL SECTION:
a.root-servers.net.     349305  IN      A       198.41.0.4
a.root-servers.net.     150055  IN      AAAA    2001:503:ba3e::2:30
b.root-servers.net.     461589  IN      A       192.228.79.201
c.root-servers.net.     352162  IN      A       192.33.4.12
d.root-servers.net.     590163  IN      A       128.8.10.90
e.root-servers.net.     415853  IN      A       192.203.230.10
f.root-servers.net.     95080   IN      A       192.5.5.241
f.root-servers.net.     267647  IN      AAAA    2001:500:2f::f
g.root-servers.net.     584158  IN      A       192.112.36.4
h.root-servers.net.     95100   IN      A       128.63.2.53
h.root-servers.net.     325876  IN      AAAA    2001:500:1::803f:235
i.root-servers.net.     432143  IN      A       192.36.148.17
j.root-servers.net.     583422  IN      A       192.58.128.30
j.root-servers.net.     584158  IN      AAAA    2001:503:c27::2:30

;; Query time: 74 msec
;; SERVER: 192.168.10.1#53(192.168.10.1)
;; WHEN: Fri Apr 16 20:47:54 2010
;; MSG SIZE  rcvd: 500

$

で、jp. の NS を探す。

$ dig @198.41.0.4 jp. ns

; <<>> DiG 9.5.1-P3 <<>> @198.41.0.4 jp. ns
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 18346
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 7, ADDITIONAL: 13
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;jp.                            IN      NS

;; AUTHORITY SECTION:
jp.                     172800  IN      NS      a.dns.jp.
jp.                     172800  IN      NS      c.dns.jp.
jp.                     172800  IN      NS      e.dns.jp.
jp.                     172800  IN      NS      d.dns.jp.
jp.                     172800  IN      NS      f.dns.jp.
jp.                     172800  IN      NS      g.dns.jp.
jp.                     172800  IN      NS      b.dns.jp.

;; ADDITIONAL SECTION:
a.dns.jp.               172800  IN      A       203.119.1.1
a.dns.jp.               172800  IN      AAAA    2001:dc4::1
b.dns.jp.               172800  IN      A       202.12.30.131
b.dns.jp.               172800  IN      AAAA    2001:dc2::1
c.dns.jp.               172800  IN      A       204.74.112.245
c.dns.jp.               172800  IN      AAAA    2001:502:d399::245
d.dns.jp.               172800  IN      A       210.138.175.244
d.dns.jp.               172800  IN      AAAA    2001:240::53
e.dns.jp.               172800  IN      A       192.50.43.53
e.dns.jp.               172800  IN      AAAA    2001:200:c000::35
f.dns.jp.               172800  IN      A       150.100.2.3
f.dns.jp.               172800  IN      AAAA    2001:2f8:0:100::153
g.dns.jp.               172800  IN      A       203.119.40.1

;; Query time: 117 msec
;; SERVER: 198.41.0.4#53(198.41.0.4)
;; WHEN: Fri Apr 16 20:50:28 2010
;; MSG SIZE  rcvd: 416

$

ここで、co.jp. の NS を探そうとすると以下。

$ dig @203.119.1.1 co.jp. ns

; <<>> DiG 9.5.1-P3 <<>> @203.119.1.1 co.jp. ns
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4198
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;co.jp.                         IN      NS

;; AUTHORITY SECTION:
jp.                     900     IN      SOA     z.dns.jp. root.dns.jp. 1271418301 3600 900 604800 900

;; Query time: 52 msec
;; SERVER: 203.119.1.1#53(203.119.1.1)
;; WHEN: Fri Apr 16 20:51:07 2010
;; MSG SIZE  rcvd: 70

$

むむ。と言いつつこうすると引ける。

$ dig @203.119.1.1 google.co.jp. ns

; <<>> DiG 9.5.1-P3 <<>> @203.119.1.1 google.co.jp. ns
; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 39604
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 4, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;google.co.jp.                  IN      NS

;; AUTHORITY SECTION:
google.co.jp.           86400   IN      NS      ns4.google.com.
google.co.jp.           86400   IN      NS      ns2.google.com.
google.co.jp.           86400   IN      NS      ns1.google.com.
google.co.jp.           86400   IN      NS      ns3.google.com.

;; Query time: 63 msec
;; SERVER: 203.119.1.1#53(203.119.1.1)
;; WHEN: Fri Apr 16 20:51:29 2010
;; MSG SIZE  rcvd: 112

$

これって jp. な NS がそれぞれの組織の NS な情報を持ってる、という事なんでしょうね。以前は co.jp. とか ac.jp. とかなレベルのドメインの NS が居たって思ってたんですが気のせいだったのかなぁ。
仕様が変わったらリゾルバ側の実装も変えないと、と思ったんですが、jp. な NS にドメインの NS のクエリを投げてて cache を持ってたらそれを戻す実装になってたのだとするとインパクトは皆無だな、と思いつつな帰宅の途だった訳です。