IPアドレスにまつわるチョイネタ

   このエントリをはてなブックマークに登録    2010/11/9-2

先ほど、Twitter上で「テレ朝のIPアドレスの説明で666.66.66.666とかいう数字がIPだと出てきた」というTweetが頻繁にReTweetされていたのですが、ネタとして面白かったので文章を書いてみることにしました。

追記:多分コレ→ http://twitpic.com/35j59t ですね。

「マスコミがぁ!」というネタじゃありません

「666.66.66.666ってIPv4アドレスとしてあり得ないしぃ」ということが言いたいわけではありません。 そもそも、本当にテレビ朝日で666.66.66.666という数値が紹介されたかどうかの確認は個人的に出来ていません。

ということで、今回は「666.66.66.666」そのものはどうでも良くて、折角なのでIPアドレスにまつわる思いつきで文章を書いてます。

「66.66.66.66」だったら良かったの?

66.66.66.66というIPv4アドレスは実在します。 dig -xを使って逆引きで調べると、以下のように「cpe-66-66-66-66.rochester.res.rr.com」という結果が返り、ニューヨークのRochesterの一般家庭に割り当てられているように見えます。 CPE(Customer Premises Equipment)というのは、恐らく、一般ユーザが家庭に置く通信機器のことです。


> dig -x 66.66.66.66
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21247
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;66.66.66.66.in-addr.arpa.	IN  PTR

;; ANSWER SECTION:
66.66.66.66.in-addr.arpa. 36976	IN  PTR	cpe-66-66-66-66.rochester.res.rr.com.

;; AUTHORITY SECTION:
66.66.66.in-addr.arpa.	36976	IN  NS  dns-sec-01.nyroc.rr.com.
66.66.66.in-addr.arpa.	36976	IN  NS  dns-pri-01.nyroc.rr.com.

;; ADDITIONAL SECTION:
dns-pri-01.nyroc.rr.com. 37035	IN  A  24.92.226.100
dns-sec-01.nyroc.rr.com. 37035	IN  A  24.92.226.240

;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Tue Nov  9 22:20:00 2010
;; MSG SIZE  rcvd: 180

さらに、66.66.66.66をwww.radb.netで調べると、66.66.64.0/18が「RR-Route」としてOrigin ASがAS11351であることがわかります。

で、このrr.comが何かを調べてみると、Time WarnerがやっているCATV会社によるインターネット接続サービスのRoad Runner High Speed Online(wikipedia)であることが推測されます。

ということで、恐らく、66.66.66.66というIPv4アドレスは、ニューヨークにある一般家庭に割り振られる実運用されているアドレスっぽいことがわかります。

そもそも「正しいIPv4アドレスの例」って知ってますか?

IPv4アドレスの例を出す時に使うべきIPv4アドレスを知らないIT関係者は以外と多いと思われます。 実際「66.66.66.66だったら良かったのにね」という感じの反応をしている方々がTwitter上などに複数いました。

恥ずかしながら、私も数年前まで「正しいIPv4アドレスの例」を知りませんでした。 IPv4アドレスの例としては、RFC5735「Special Use IPv4 Addresses」というRFCに記載されているIPv4アドレスを使います(RFC5735はRFC3330を上書きするものです)。

そこでは、ドキュメンテーションやサンプルで利用するためのIPv4アドレスとして、以下のものが定義されています。

192.0.2.0/24TEST-NET-1
198.51.100.0/24TEST-NET-2
203.0.113.0/24TEST-NET-3

IPv4アドレスの例としては、上記IPv4アドレスを使えばいいわけですが、世の中を見ると結構好き勝手なIPv4アドレスを例として利用している事例が多いというのが現状ではないかと思います。

私が初めてこれを知ったのは、kazuさんのブログの「あどけない話:例として推奨されているドメイン名とIPアドレス」を読んだときです。 それまでは、知らなかったので、適当なIPv4アドレスを使ったサンプルを書いてしまってました。 申し訳ありません。。。

余談ですが、kazuさんは、私が「技術的に一生追いつけそうにない」と思っている凄い人の一人です。 こういった凄い方々を色々と見ていると、私が自分のサイト名に「Geek」という在らぬ単語を入れてしまったことを悔いていたりします。 以前から書き続けていますが、私は「ギーク」なんかじゃないです。サイト名は気のせいです。すみません。。。

というか、そういう「凄い」と純粋に思える方々と話を出来ることがあるというのは有り難い限りです。 Twitter上とかで頂く情報を含めて、色々と日々勉強になってます。 ありがとうございます。

0xdeadbeef

32ビットを16進数で表して単語を作るという意味では、0xdeadbeefが非常に有名です。 0xdeadbeefは、かなり昔から愛用されている値です。

個人的にはスタック破壊系の解説で良く見ましたが、由緒正しいドキュメンテーションでも登場します。 たとえば、Sun(現在はOracle)のSolarisモジューラデバッガの「メモリー破壊の検出」のドキュメンテーションを見ても、そこら中に0xdeadbeefが登場します。

deadbeefにping!

実は、32ビットの値ということで、0xdeadbeefに対してそのままpingも可能な場合もあります。 0xdeadbeefは「222.173.190.239」というIPv4アドレスになりますが、radbで調べる限り、222.173.0.0/16は「ChinaNet ShanDong Province Network」となっており、中国に割り当てられたIPv4アドレスのようです。


> ping 0xdeadbeef
PING 0xdeadbeef (222.173.190.239): 56 data bytes
36 bytes from 219.146.113.213: Time to live exceeded

実際にpingをやってみると、TTL Exceedになり、パケットは届かないようです。

Ciscoのドキュメントにもdeadbeef!

Ciscoのドキュメントにもdeadbeefが登場します。

たとえば、「Cisco IPv6ソリューション(PDF,2002)」を見ると、「dead:beef:cafe:1::/64」というIPv6アドレスが登場しています


Ciscoのサイトより

他にも、「site:cisco.com deadbeef」で検索すると色々出てきます。

「site:intel.com deadbeef」とかでもいくつか出てきます。 他の会社名でdeadbeefを検索しても、いくつか資料にヒットすることがあります。 色々試してみると、新しい発見があるかも知れません。

cafeも一般的

16進数で「cafe」を含むものが運用されている例もあります。 たとえば、mobile IPv6の実験で「:cafe:」が含まれているプレゼンを見たことがあります。 検索しても、いくつか出てきます。

あとは、feedとか、faceとかが一般的かも知れません。

1.1.1.1

IPv4アドレスが枯渇しそうになってきていて、今まで割り当てられていなかったIPv4アドレスブロックも使わざるを得ない状況になりつつありますが、1.0.0.0/8というIPv4アドレスブロックがアジア太平洋地域のAPNICへと割り当てられました。

実は、1.0.0.0/8は、1.1.1.1のような「誰でも思いつくいい加減な値」と思えるIPv4アドレスを含んでいます。 実際、各種マニュアルや設定サンプルドキュメントに「1.1.1.1」などが含まれており、結構通信ができないという調査結果が出ていました。

そのため、1.0.0.0/8のうちのいくつかのブロックは割り当てが行われなかったようです。 とはいえ、もう既に1.0.0.0/8の割り当て可能な部分は、結構割り当て済みで、苦労しながらも実際にそれらを実運用に使っている組織もあるようです。

参考:xslash8の動向について(NTT Communications 吉田さんのJANOG26発表資料)

IPアドレスネタといえば。。。

IPv4アドレスの面白ネタとしては、たとえば、以下のようなものが有名です。

192.168.0.1は私のIPアドレスです

「あのぉ、192.168.0.1 と 192.168.0.2 は、わたしが使っている IP アドレスですので勝手に使わないでください。なおこの件に付いては、 JPNIC にも通報済みです。」(続きあり) http://damedame.monyo.com/?date=20030221#p07

ある「ハッカー」の顛末(Matzにっき)

http://www.rubyist.net/%7Ematz/20050420.html
IRC上でトラブルが起きて、"あるハッカー"が「お前をハックしてやる。IPアドレスを教えろっ」と言って、言われた相手が「127.0.0.1だけど」と答えて、"あるハッカー"が127.0.0.1を攻撃してダメージを与えるお話。

両方とも結構前のネタですが、今見ても笑えます。

映画で「75.748.86.91」と「23.75.345.200」というIPアドレス登場

サンドラ・ブロックが登場するThe Net(邦題:ザ・インターネット)で、「75.748.86.91」と「23.75.345.200」というIPv4アドレスが登場するようです。

Goofs for The Net (1995)」には、以下のように書かれています。

When Angela is searching for the Praetorians on the computer at the Cathedral office the IP address that first pops up is: 75.748.86.91. A close-up of the IP address shows it as: 23.75.345.200

(via maemさん)

8.8.8.8とか4.3.2.1とか

去年、Google Public DNSが8.8.8.8というIPアドレスを使っていました。 当時、非常に特徴的で覚えやすいIPv4アドレスだと思いました。

また、そのときに、関連して4.3.2.1というIPv4アドレスもありました。 今では、私の環境で4.3.2.1は到達不能になっているようです。

なお、余談ですが、昨年Google Public DNSが発表されてブログ記事を書いたら、日経NETWORKの記者から取材依頼があり、取材されに行って来たという経験があります。 当時、Googleの日本支社に問い合わせたら「誰も答えることができない」という回答を得たらしく、Googleとは全く関係がない、単に調べてブログ記事を書いた私が取材を受けました。 当時、他に調べている人があまりいない状況だったようです。 それが人生初の取材でした。

最後に

「666.66.66.666」でご飯が何杯食べれるか?というコンセプトで日本酒を飲みながら文章を書いてみました。 今、いい感じにお酒が入ってます。

この文章は全て余談なので、特に深い意味はありません。 お楽しみ頂ければ幸いです。。。

追記

UNIX系でも、こんなのが行けますね。 ただし、システムによって値が変わるかも知れません。


> ping 192.168.257
PING 192.168.257 (192.168.1.1): 56 data bytes

...

> ping 192.168.256
PING 192.168.256 (192.168.1.0): 56 data bytes

...

> ping 192.168.1
PING 192.168.1 (192.168.0.1): 56 data bytes

...

> ping 127.1
PING 127.1 (127.0.0.1): 56 data bytes

...

> ping 2130706433
PING 2130706433 (127.0.0.1): 56 data bytes

...

> ping 192.11010049
PING 192.11010049 (192.168.0.1): 56 data bytes

...


これらに関してはwikipediaの「IPアドレス」の項目に解説があります。 RFC3986「Uniform Resource Identifier (URI): Generic Syntax」の7.4. Rare IP Address Formatsにも記述があるようです。

追記2:ドキュメンテーション用IPv6アドレス

ドキュメンテーション用のIPv6アドレスもRFC3849「IPv6 Address Prefix Reserved for Documentation」に記述されています。(2004年のRFCです)

2001:0db8::/32

IANAの「IPv6 Global Unicast Address Assignments」を見ると、「2001:0C00::/23」はAPNICに割り当てられているようですが、「2001:0db8::/32」がRFC3849で「NON-ROUTABLE range to be used for documentation purpose」とされているとの注意書きがあります。

RFC5156「Special-Use IPv6 Addresses」でも、以下のように紹介されています。

The 2001:db8::/32 are the documentation addresses [RFC3849]. They are used for documentation purposes such as user manuals, RFCs, etc. Addresses within this block should not appear on the public Internet.
   このエントリをはてなブックマークに登録