【Network】tracerouteの「応答なし(***)」はセキュリティの証?Googleへの経路を例に見ていくのだ
traceroute で Internet 上の data がどんな経路(route)を辿っていくのかを調べる
traceroute は、自分のcomputerから目的地のserverまで、Internet上のdataがどんな経路(route)を辿っていくのかを調べるための、とっても便利な探検道具なのだ。
In computing, traceroute and tracert are diagnostic command-line interface commands for displaying possible routes (paths) and transit delays of packets across an Internet Protocol (IP) network.
https://en.wikipedia.org/wiki/Traceroute
でも、その「経路」っていったい何なのだ?
それを知るには、インターネットの世界は、たくさんの独立したネットワークが繋がりあってできているということを押さえる必要があるのだ。一つ一つの独立したネットワークを、AS (Autonomous System) と呼ぶのだが、今回の記事では、AS (Autonomous System)とはについて単体で深掘りはしないので、AS (Autonomous System)のことを「国」と呼んでみることにするのだ。
今回は、試しに traceroute https://www.google.com/ を実行してみるのだ。目的地がGoogleだから、最終的にはぼくがいる国(どこにいるかは後で確認するのだ)から出発して、Googleの国にたどり着くはずなのだ。その道中、どういう経路を辿るのか、いくつの国を巡ることになるのか、さっそく見ていくのだ!
ログ
traceroute https://www.google.com/
traceroute to https://www.google.com/ (143.244.220.150), 64 hops max, 40 byte packets
1 dsldevice (192.168.1.254) 5.067 ms 2.738 ms 2.432 ms
2 172-4-68-1.lightspeed.hstntx.sbcglobal.net (172.4.68.1) 3.491 ms 3.573 ms 3.967 ms
3 71.149.23.100 (71.149.23.100) 3.977 ms 4.831 ms 4.799 ms
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 be2763.ccr31.dfw01.atlas.cogentco.com (154.54.28.73) 10.377 ms 10.933 ms
be2764.ccr32.dfw01.atlas.cogentco.com (154.54.47.213) 10.053 ms
10 port-channel8122.ccr92.jan02.atlas.cogentco.com (154.54.41.54) 17.125 ms 18.456 ms
port-channel8121.ccr91.jan02.atlas.cogentco.com (154.54.40.250) 23.957 ms
11 be3704.ccr42.atl01.atlas.cogentco.com (154.54.40.109) 24.157 ms 25.133 ms 49.456 ms
12 be4189.rcr51.b006503-1.atl01.atlas.cogentco.com (154.54.30.242) 25.271 ms 26.011 ms
be5283.rcr51.b006503-1.atl01.atlas.cogentco.com (154.54.31.90) 25.929 ms
13 38.32.170.89 (38.32.170.89) 23.605 ms
38.32.170.91 (38.32.170.91) 23.497 ms 23.767 ms
14 * * *
15 * * *
…(略)…
64 * * *
経路の解説
では出発したデータがネットのどういう経路をたどったのか、上記のtracerouteのログを頼りに探ってみるのだ。
Hop 1: 家を出発!
dsldevice (192.168.1.254)[1]
まず1番目は、ぼくの家のルーターなのだ。ここが旅の出発点だったのだ。
Hops 2-3: 地元のISPに入る
...hstntx.sbcglobal.net
2番と3番で、契約してるISP( AT&T[2] なのだ)のネットワークに入っていくのがみえるのだ。今回、sbcglobal.netとあるけれどこれは調べてみると AT&T という国を表していることがわかったのだ。hstntxってあるから、今まさにぼくが滞在中のテキサス州のヒューストン市内ということもわかるのだ。
Hops 4-8: 謎のガン無視区間w
* * *
ここでいきなりガン無視タイムw これは、途中のルーターが「忙しいんで!」とか「セキュリティ的に無理!」みたいな感じで返事をしてくれない状態なのだ[3]。
Hops 9-13: Cogentの国へ乗り換え!
...cogentco.com
9番でいきなりcogentco.comって出てきたのだ。何が起こったかというと、ここで AT&T の国[4]から Cogent っていう、別の大きなAS(国)に乗り換えていたことがわかるのだ。
-
Hop 9 (
dfw01): テキサス州ダラスに到着! -
Hop 10 (
jan02): ミシシッピ州ジャクソンを経由! -
Hop 11-12 (
atl01): ジョージア州アトランタに到着! -
Hop 13: アトランタのCogentネットワークから、いよいよGoogleのネットワークに渡される直前の地点って感じ!
Hops 14-64: 究極のガン無視タイム(そして旅は終わったのだ)
* * *
その後、結局14番からラストの64番[5]まで、ずーっと * * * だったのだ。
これは、ゴール周辺のガード固いってことなのかな?
目的地(Google)のネットワークとか、その手前にいる警備員(Firewall的なやつ)が、「ここから先は部外者立ち入り禁止です!」って感じで、tracerouteのピンポンを全部無視してる..みたいなことがおそらく起こっているのだ。
だから、ぼくのデータは13番のCogentの国までは追跡できたけど、そこから先のゴールまでの道のりは、残念ながら見せてもらえなかったってことなのだ。なので、旅はここで打ち切り。
でも、これはGoogleがダウンしてるとかじゃなくて、ただ単にセキュリティが厳しいだけということだと思うので心配しなくていいのだ。実際今回調査したhttps://www.google.com/のページにアクセスすることはできていたのだ。
The appearance of * * * in the traceroute output signifies that a router along the network path did not respond within the timeout for an ICMP Time Exceeded message. This can occur due to various factors, including firewall filtering, network congestion, rate limiting, or configuration issues.
https://techkluster.com/linux/traceroute-three-stars/
tracerouteの出力にアスタリスク(***)が表示されるのは、ICMP Time Exceededメッセージが指定されたタイムアウト時間内に受信されなかったことを意味するけれど、これは必ずしも実際のHTTP/HTTPS通信が通過していないことを意味するわけではないそうなのだ。
最後に
https://www.google.com/での調査の場合は、ページにアクセスできるけれど、* * *が出るという状態だった。けれど、逆に通信が失敗していて* * *が出るという場合もあるのだ。それを考えるヒントとなる記事があったのでよかったら見てほしいと思うのだ。
簡単に内容を紹介するのだ。
ある企業のネットワークで、Houstonの新システムからSan Antonioへデータが送れない、という問題が起きたのだ。サポート担当者は、通信を遮断するFirewall が原因だと考えたのだ。しかし、顧客は「そのようなものはありません」と回答したのだ。しかし、tracerouteで調査したらFirewallがありそうなことがわかったという話なのだ。そして実際、最初は顧客は設定していないといっていた Firewall も実はありましたというオチだったのだ..。
NOTE

この記事を書いてから映画を見に行ったのだけど、その行く途中の道で AT&T のショップを見つけたのだ
-
192.168.1.254はプライベートIPアドレスなのだ。これは、家庭やオフィス内のローカルネットワーク(Wi-Fiなど)でのみ使用される、いわば「内線番号」のようなものなのだ。 ↩︎ -
最近、トランジスタやUNIXなどを発明した伝説的なベル研究所について調べていたから、その親会社 AT&T の名前が今繋がっているインターネットの ISP として出てきて少し感激したのだ。アメリカの電話事業は「Bell System」と呼ばれる巨大企業 AT&T に独占されていてた話があるのだけれど、インターネットの歴史を調べていたら電話網の歴史は避けて通れない部分なのだ。でも、現在の AT&T は当時の姿のままではなく、政府命令による分割を経て大きく姿を変えているということなのだ。だから、ちょっと複雑だけど今回登場した AT&T は、もともと分割によって生まれた「子供」にあたる会社(SBC)が成長し、2005年にかつての「親」である AT&T 本体を買収、そしてその有名な名前を引き継いだものということなのだ。 ↩︎
-
途中にいるルーター(中継地点)が返事をくれないとtracerouteがとっても遅くなるのだ。一個 * が出るたびに数秒待っちゃうから、これが何個も続くととっても時間かかるのだ。 ↩︎
-
あらためて、今回の記事での「国」というのは、AS (Autonomous System) のことを分かりやすく表現した言葉なのだ。インターネットは、世界中の無数のネットワークが繋がってできている巨大な世界なのだ(ここ重要)。その中でも、AT&T や Cogent、Googleのように、一つの大きな組織が自分たちのルール(ポリシー)で管理している巨大なネットワークのまとまりのことを AS (Autonomous System) と呼ぶのだ。今回これを、それぞれが独自のルールを持つ「国」に例えた、というわけなのだ。インターネット上のデータは、色々な会社のAS(国)を経由して、目的地までバケツリレーのように運ばれていくのだ。今回の
tracerouteでは、その乗り換えの現場がハッキリと見えた、ということなのだ。 ↩︎ -
最初に 64 hops max って書いてあったのは「最大64回までしか挑戦しないよ」って意味なので、64回乗り換えるか、目的地に着くかしたら、諦めて勝手に終わるようになっていたのだ。 ↩︎
Discussion
タイトル修正した方がいい気がするけれどタイトル考えるの難しい..
【変更前】traceroute で Internet 上の data がどんな経路を辿っていくのかを調べる → 【変更後】tracerouteの「応答なし(***)」はセキュリティの証?Googleへの経路を例に見ていくのだ
結果論的なタイトルだけど記事全体としては変更後の方が内容に即しているかな。