インターネットの経路ネタ その1

Q.ネットワークの範囲で授業ネタに困ることが多いんですが… と聞かれることが多くて。 IPの仕組みやサーバーに関するネタをあれこれとよく話すんですが、経路に関するネタはあまり興味を持たれず悲しいので、ここに記しておこうかと。 ※別件ですが、千葉県のlg.jpサーバー問題はかなり改善されました。ありがとう熊谷知事! 本当

Q.ネットワークの範囲で授業ネタに困ることが多いんですが…

と聞かれることが多くて。 IPの仕組みやサーバーに関するネタをあれこれとよく話すんですが、経路に関するネタはあまり興味を持たれず悲しいので、ここに記しておこうかと。

※別件ですが、千葉県のlg.jpサーバー問題はかなり改善されました。ありがとう熊谷知事!本当に!!(過去ログ参照)

1.tracerouteだけでも面白い

  • ログを読んでみよう サーバーの物理的な設置場所が事前にわかるものにTracerouteするといい。 (学校内で使っているWebサーバーとか。)

    >tracert cis.kashiwanoha.ed.jp

  • 結果をMAP(現実)に落とし込んでみよう
    記事内画像

    今回使ったのは

    Open Visual Traceroute. ※要JAVA。画像は公式Webサイトより。

    Tracerouteの各ホップの位置をIPから推定して、MAPにPinを立ててくれる。

    ネットワークを旅する様子がアニメーションとして可視化されるので結構楽しい。

    記事内画像

    ※左図はcis.kashiwanoha.ed.jpを検索した結果。CloudflareのProxy(CDN)を使っているので、アメリカが終着点となる。

    記事内画像

    宮内庁を検索した結果。

    内閣府も千葉県も、終着点はアメリカだった…。 実は日本国内で完結するサーバーを探す方がムズカシイ

  • 意味を探ってみよう
    cis.kashiwanoha.ed.jp [172.67.177.178] へのルートをトレースしています
    経由するホップ数は最大 30 です:
    
    1   192.168.30.1  //学校内のデフォルトゲートウェイ
    2   i211-130-175-130.s99.a049.ap.plala.or.jp //ISPのぷらら。しばらく、ぷらら網
    3   211.130.175.157
    4   114.190.183.117
    5   i118-21-178-57.s99.a049.ap.plala.or.jp [118.21.178.57]
    6   211.6.91.169
    7   60.37.54.161 
    8   ae-8.a03.tokyjp05.jp.bb.gin.ntt.net [120.88.53.17] //NTT網
    9   timeout
    10  ae-5.r26.sttlwa01.us.bb.gin.ntt.net [129.250.4.142]
    11  ae-18.a02.sttlwa01.us.bb.gin.ntt.net [129.250.2.27]
    12  ae-0.cloudflare.sttlwa01.us.bb.gin.ntt.net [128.241.3.182]
    13  108.162.243.35 //CloudFlare
    14  172.67.177.178 //エッジサーバー
    
    トレースを完了しました。

  • AIに解説させてみよう 結果をAIに張り付けて解説させるのも面白いです。 ホスト名が出ていないものを読み解くのも面倒ですし…各自で遊べますし!
    プロンプト「トレースルートの結果を解説して」 ※読みにくいです

    「トレースルートの結果を解説して」

    いいトレースです!これは 自宅 → NTTぷらら網 → NTTグローバルIPバックボーン(GIN)→ Meta(=Facebook/Instagram) 東京POP → Instagramエッジ という王道ルート。各ホップを読み解きます。


    ざっくり全体像

    • 1〜4: 自宅LAN → ぷらら(NTTのISP)アクセス網
    • 5〜7,9〜10: NTTの国際バックボーン gin.ntt.net(東京拠点内でルータ間を移動)
    • 10以降: tfbnw.net(MetaのAS32934)へ流入、東京POP内を数ホップ進んで instagram のエッジ に到達

    各ホップ解説

    1) 192.168.30.1(1/4/24ms)

    • 自宅の NAT/ホームルータ。私用アドレスなので妥当。
    • 24ms は単発のバースト(測定瞬間の処理待ち)。問題なし。

    2) i118-21-182-55.s99.a049.ap.plala.or.jp [118.21.182.55](7/5/4ms)

    • ぷらら(NTTぷらら)アクセス網の最寄りBRAS/収容ルータ付近。
    • plala.or.jp の逆引きがそれを示唆。

    3) 118.21.184.181(8/8/7ms)

    • ぷらら網の次段。逆引きが無いだけで中身は上と同系。

    4) i118-21-178-61.s99.a049.ap.plala.or.jp [118.21.178.61](6/5/10ms)

    • ぷらら網内の別ルータ。レイテンシ安定。

    5) 211.6.91.173(13/10/16ms)

    • ぷらら→NTT GIN への出口付近。ここから事業者バックボーンへ寄っていく。

    6) 60.37.54.165(8/6/14ms)

    • NTT網(地域ノード〜バックボーンの境界あたり)。

    7) ae-7.a04.tokyjp05.jp.bb.gin.ntt.net [120.88.53.25](103/8/12ms)

    • gin.ntt.net は NTTのグローバルバックボーン。
    • ae-7Aggregated Ethernet(束ねインタフェース)番号。
    • a04.tokyjp05東京(to ky jp)拠点群の装置a04 という命名。
    • 103ms は外れ値(一瞬のキュー詰まり or ICMP低優先度)。次ホップ以降は低遅延なので経路自体は健全。

    8) * * *(タイムアウト)

    • 典型的な ICMP応答制限/フィルタ
    • 「ここを通れなかった」ではなく「応答を返さない設定」のことが多いです。

    9) ae-0.a03.tokyjp08.jp.bb.gin.ntt.net [129.250.5.203](9/12/9ms)

    • 同じく NTT GIN 東京内の別ルータ。
    • tokyjp08 へ装置が変わっている=同拠点内での横移動

    10) ae-1.meta.tokyjp08.jp.bb.gin.ntt.net [157.238.226.59](11/12/12ms)

    • ここが NTT GIN → Meta (Facebook/Instagram) のピアリング境界
    • meta ラベル付きの対向。ここで AS32934 (Meta) 側へ交通が渡ります。

    11) po4004.asw01.nrt1.tfbnw.net [147.75.221.42](8/9/13ms)

    • Meta側に入った最初のスイッチ群。
    • tfbnw.net = The Facebook Network(Metaのバックボーン)。
    • aswAggregation Switch と解釈されることが多い命名。
    • po4004Port-Channel(LAG) #4004 を示す典型。
    • nrt1東京拠点(Naritaコード)

    12) psw02.nrt1.tfbnw.net [173.252.66.63](29/14/26ms)

    • pswPeering/Provider Switch 系の命名で使われがち。
    • 東京POP内でさらに内部へ。29ms は軽いバースト。

    13) msw1aj.02.nrt1.tfbnw.net [129.134.80.237](22/56/31ms)

    • mswMetro/Backbone/Module Switch 的な命名に見えます(Meta固有の略称)。
    • 56ms は単発の揺れ。次ホップはふつうに低いので気にしなくてOK。

    14) instagram-p42-shv-02-nrt1.fbcdn.net [157.240.31.174](28/15/13ms)

    • 最終宛先(Instagramのエッジ)
    • fbcdn.net は MetaのCDNドメイン。
    • nrt1 が付いている=東京のエッジ/キャッシュで応答。
    • 数十ms以内で安定しており良好です。

    何が読み取れる?

    • 国内(東京)でMetaにピアリングし、そのまま 東京のInstagramエッジで応答。
    • 全体遅延は10〜20ms台中心で、局所的な外れ値(Hop7, 12, 13)はICMP優先度や瞬間混雑の影響。実アプリ遅延とは直結しません。
    • 経路は短く、ISP(ぷらら)→NTT GIN→Meta東京POP の理想的な流れ。

    ちょいテク(読み方のコツ)

    • ae-# = Aggregated Ethernet インタフェース番号
    • po#### = Port-Channel(LAG)番号
    • asw/psw/msw = 集約/ピアリング/コア系スイッチを示すことが多い接頭辞
    • tokyjp## / nrt# = 東京拠点(館やフロア違い)

    まとめ

    このトレースは、ぷらら→NTTバックボーン→Meta東京POP→Instagram東京エッジという非常に健全で近い経路です。アプリ体感も良いはず。Hop 7/12/13 の突発的な高RTTは 測定上の揺れとして扱ってOKです。必要なら、この経路も「路線図」風に可視化しますよ!

    プロンプト「Notion用のテキスト版を生成」

    「Notion用のテキスト版を生成」

    あなたのPC
       │
       ▼
    【1】192.168.30.1
    (自宅ルータ)
    
       │
       ▼
    【2】ぷらら収容ルータ
     i211-130-175-130.s99.a049.ap.plala.or.jp
    
       │
       ▼
    【3】ぷらら中継(逆引きなし)
     211.130.175.157
    
       │
       ▼
    【4】ぷらら中継
     114.190.183.117
    
       │
       ▼
    【5】ぷらら別ノード
     i118-21-178-57.s99.a049.ap.plala.or.jp
    
       │
       ▼
    【6】ぷらら→NTT境界
     211.6.91.169
    
       │
       ▼
    【7】NTT境界(東京)
     60.37.54.161
    
       │
       ▼
    ===================
       NTT GIN(Global IP Network)東京
    ===================
    
       │
       ▼
    【8】tokyo GINルータ
     ae-8.a03.tokyjp05.jp.bb.gin.ntt.net
    
       │
       ▼
    【9】※ICMP応答なし(NTT内部)
     timeout
    
       │
       ▼
    ===================
        太平洋横断(東京 → シアトル)
    ===================
    
       │
       ▼
    【10】NTT GIN シアトル(Seattle)
     ae-5.r26.sttlwa01.us.bb.gin.ntt.net
    
       │
       ▼
    【11】NTT GIN シアトル(別ルータ)
     ae-18.a02.sttlwa01.us.bb.gin.ntt.net
    
       │
       ▼
    ===================
       NTT → Cloudflare シアトル接続点
    ===================
    
       │
       ▼
    【12】Cloudflare入口(Seattle)
     ae-0.cloudflare.sttlwa01.us.bb.gin.ntt.net
    
       │
       ▼
    【13】Cloudflare シアトル POP
     108.162.243.35
    
       │
       ▼
    【14】Cloudflare Anycast最終
     172.67.177.178(宛先)
    

  • 生徒が使っていそうなWebサイトをTracerouteしてみよう。 X.comとか、Google.com。FacebookとかAmazon.co.jpも面白い。

    DNSやDCなどのサーバーを自前で使っている所と、ClooudFlareを使っている場所で見比べるのが個人的には好き。

    C:\Users\hoge>tracert twitter.com
    
    twitter.com [162.159.140.229] へのルートをトレースしています
    経由するホップ数は最大 30 です:
    
      1     1 ms     1 ms     5 ms  192.168.30.1
      2    49 ms    47 ms    52 ms  i211-130-175-130.s99.a049.ap.plala.or.jp [211.130.175.130]
      3    65 ms    60 ms    63 ms  211.130.175.153
      4   118 ms    68 ms    58 ms  114.190.183.113
      5    62 ms    66 ms    67 ms  i118-21-178-49.s99.a049.ap.plala.or.jp [118.21.178.49]
      6    60 ms    58 ms    62 ms  211.6.91.169
      7    65 ms    67 ms    67 ms  122.1.245.65
      8    69 ms    61 ms    49 ms  ae-8.a04.tokyjp05.jp.bb.gin.ntt.net [120.88.53.29]
      9     *        *        *     要求がタイムアウトしました。
     10    70 ms     *       54 ms  ae-0.a03.tokyjp08.jp.bb.gin.ntt.net [129.250.5.203]
     11    68 ms    80 ms    73 ms  ae-0.cloudflare.tokyjp08.jp.bb.gin.ntt.net [128.241.9.77]
     12   248 ms    59 ms    60 ms  103.22.201.129
     13    65 ms    60 ms    48 ms  162.159.140.229
     //CloudFlareのエッジサーバーで終わる例
    
    トレースを完了しました。
    
    C:\Users\hoge>tracert google.com
    
    google.com [142.250.206.238] へのルートをトレースしています
    経由するホップ数は最大 30 です:
    
      1     4 ms     5 ms     3 ms  192.168.30.1
      2    27 ms    35 ms    40 ms  i211-130-175-130.s99.a049.ap.plala.or.jp [211.130.175.130]
      3    57 ms    51 ms    49 ms  211.130.175.157
      4    53 ms    45 ms    50 ms  114.190.183.117
      5     *       62 ms    51 ms  i118-21-178-61.s99.a049.ap.plala.or.jp [118.21.178.61]
      6    78 ms    65 ms    65 ms  211.6.91.173
      7    75 ms    69 ms    69 ms  60.37.54.165
      8    69 ms    53 ms    50 ms  60.37.54.110
      9    70 ms     *       64 ms  61.126.86.146
     10    68 ms    77 ms    64 ms  108.170.231.103
     11    69 ms    66 ms    66 ms  192.178.86.56
     12    70 ms    67 ms    62 ms  142.250.212.149
     13    75 ms    75 ms    70 ms  142.250.57.228
     14     *      139 ms    80 ms  142.250.60.231
     15    90 ms    74 ms    71 ms  142.250.58.193
     16    78 ms     *        *     kix06s10-in-f14.1e100.net [142.250.206.238]
     17    77 ms    77 ms    71 ms  kix06s10-in-f14.1e100.net [142.250.206.238]
     //Google自前の関西(Osaka/KIX)リージョンで終わる例
    
    トレースを完了しました。

2.IPv4とIPv6の違いを学んだあとなら、比較もできる

IPv4とIPv6の比較や、経路の違いを見るだけでも相当に面白い。 現在執筆している環境ではIPv6環境がなかったため、VPSのログを提示しておく。

VPSからGoogleのDNSに到達するまでの経路(AI)


■比較表

ホップ数IPv4IPv6
GMO → NTT → GoogleGMO → JPNAP → Google
経路タイプトランジットピアリング
ホップ数9ホップ実質6ホップ
遅延約1ms台約1ms台
最適度高(最短距離)
接続形態上位ISPを経由直接Googleへ到達

IPv4

asami@163-44-252-204:~$ traceroute 8.8.8.8
traceroute to 8.8.8.8 (8.8.8.8), 64 hops max
  1   163.44.252.2
  2   133.130.14.245
  3   133.130.15.78
  4   133.130.12.174
  5   133.130.12.166
  6   210.171.224.95
  7   142.251.66.207
  8   108.170.236.127
  9   8.8.8.8

IPv6

asami@163-44-252-204:~$ traceroute6 2001:4860:4860::8888
 1  2400:8500:1801:488::2
 2  2400:8500:1800:1001::1
 3  2400:8500:1800:1004::2
 4  2400:8500:1000:1441::1
 5  2400:8500:1000:f004::1
 6  2001:de8:c::1:5169:2
 7  2001:4860:0:1::47cf
 8  2001:4860:0:1::659
 9  dns.google (2001:4860:4860::8888)

✅ IPv4 の経路解説

✅ IPv6 の経路解説

  • 1〜5:GMOインターネット内部バックボーン(AS7506)

    → すべて東京データセンターのルータ。

  • 1〜5:GMOインターネット内部バックボーン(AS7506)

    → IPv4同様、東京DCのルータ。

  • 7〜8:Google 東京PoP(AS15169)

    → Googleのバックボーン入口。

  • 7〜9:Google 東京PoP(AS15169)

    → Google側のIPv6バックボーンに直接入る。

  • 9:8.8.8.8

    → Anycastで東京PoPが応答。

📍 IPv4は「GMO → NTT → Google」という構成

📍 IPv6は「GMO → JPNAP(IX直結)→ Google」という最短経路


■ なぜこうなるのか?(理由)

IPv6による最適化

  • そもそもGoogle(AS15169)は世界中でIPv4よりIPv6を最適化する方針を持っている。
  • 各端末がグローバルIPを持ち、NATが不要(直通)できるため経路が効率化されやすい。


3.ついでに、NSとか見ても面白い。

  • x.comの例
    >nslookup -type=ns x.com
    サーバー:  dns.google
    Address:  8.8.8.8
    
    権限のない回答:
    x.com   nameserver = b.r10.twtrdns.net
    x.com   nameserver = b.u10.twtrdns.net
    x.com   nameserver = c.r10.twtrdns.net
    x.com   nameserver = c.u10.twtrdns.net
    x.com   nameserver = d.r10.twtrdns.net
    x.com   nameserver = d.u10.twtrdns.net
    x.com   nameserver = a.r10.twtrdns.net
    x.com   nameserver = a.u10.twtrdns.net
    
    a.u10.twtrdns.net       internet address = 204.74.111.101
    b.r10.twtrdns.net       internet address = 205.251.196.198
    b.u10.twtrdns.net       internet address = 205.251.196.198
    c.r10.twtrdns.net       internet address = 205.251.194.151
    c.u10.twtrdns.net       internet address = 205.251.194.151
    d.r10.twtrdns.net       internet address = 205.251.199.195
    d.u10.twtrdns.net       internet address = 205.251.199.195

    ※x.comのNSが、TwitterDNSのまま流用されていることが解る。

  • facebookとinstagramの比較
    >nslookup -type=ns facebook.com
    facebook.com    nameserver = c.ns.facebook.com
    facebook.com    nameserver = a.ns.facebook.com
    facebook.com    nameserver = d.ns.facebook.com
    facebook.com    nameserver = b.ns.facebook.com
    
    d.ns.facebook.com       internet address = 185.89.219.12 //同じA
    b.ns.facebook.com       internet address = 129.134.31.12 //同じB
    c.ns.facebook.com       internet address = 185.89.218.12
    a.ns.facebook.com       internet address = 129.134.30.12
    
    >nslookup -type=ns instagram.com
    instagram.com   nameserver = c.ns.instagram.com
    instagram.com   nameserver = d.ns.instagram.com
    instagram.com   nameserver = a.ns.instagram.com
    instagram.com   nameserver = b.ns.instagram.com
    
    b.ns.instagram.com      internet address = 129.134.31.12 //同じB
    d.ns.instagram.com      internet address = 185.89.219.12 //同じA
    

    ※同じMetaのNSが使用されている

まぁ…

  • MAPに落としこむとTracerouteの中身が見えるようになって面白いよ。
  • 実際の経路を指で追わせるだけで理解度が変わるんじゃないかな?

…という話でした。長々と呼んでいただきThanks!


コメント

コメントを読み込んでいます…

コメントを投稿する

お名前とコメントを入力してください。HTMLは使用できません。

0 / 1000文字