ChromebookのAndroidアプリ環境のネットワーク

スマホでのネットワーク調査ツールは、用途ごとにあれこれ使い分けていた時期もあったけれど、

今はこのアプリに落ちついています。1つでいろいろできて便利!

この前のおためし旅行でChromebookにも入れていったんですが、ネパールの宿のWi-Fiに接続したときに妙なことに気がつきました。

Network Analyzer Proで見える自IPアドレスが100.115.92.14/30になっていて、プライベートアドレスじゃないんです。

ローカルネットワークにグローバルIP領域のアドレスをふるなんて、お行儀のよくない宿やなあと思っていたんですが、これがどこの宿に行っても同じ。なんか変なもんが流行ってる!?

スマホの方で見てみると、ふつうに192.168で始まるプライベートアドレスがふられています。あれ?

ためしにChromebookの方からインターネットに向けてトレースルートを打ってみると、

100.115.92.13

宿のルータ (192.168.*)

プロバイダ

インターネット

こんな感じになるんです。つまり、

100.115.92.14/30 (Chromebook内のAndroidアプリから見た自IPアドレス)

100.115.92.13/30 (Chromebook内のAndroidアプリ専用セグメント用ゲートウェイ)
192.168.* (宿のルータからふられたChromebookのIPアドレス)
|↑ここまでがChromebookの中

Chromebook内のAndroidアプリは、こんなふうに30ビットマスク(ネットワーク自身とブロードキャスト分を除くとIPアドレス2つ分)のサブネットに内部的に押し込められているということみたいです。

なので、AndroidアプリでLAN ScanをしてもChromebook周辺の実際の機器は見えず、100.115.92.13と100.115.92.14しか見えません。

なるほど、そういうしくみになってるんかー。

悪意あるAndroidアプリに外部向けのポートを開けられたとしても、外から接続できないようにそうしてるんやろなあ。そしてこれのせいで、Chromebook上ではうまく動かないアプリがあると。

で、ここで気になったのが、100.115.92.14というアドレス。

本当にこういうアドレスがグローバルIP領域にあるのだとしたら、このアドレスを自分にふってしまうと、外にある本物の?100.115.92.14と通信したくてもできなくなってしまいます。そこ宛のリクエストパケットを送っても、自分宛になってしまって外に出ていかないので。

これがどこの国のアドレスなのか調べてみると、

100.115.92.14
国名: シェアードアドレス
国名コード: SHARED
管轄: SHARED
範囲: 100.64.0.0 から 4,194,304 個

え、なにそれ?

知らんかったー。

家のルータのWAN側ポートにまぐれでLAN側ポートとかぶるサブネットのアドレスがふられてしまわないように、プロバイダ専用のプライベートアドレス領域を作ったってことやね。希少なIPv4のグローバルIPアドレスを無駄に消費しないようにしつつ。

それだと今度は、ChromebookのAndroidアプリと、プロバイダ内部のIPアドレスがかぶることがあるかもしれないけれど、プロバイダ内部のグローバルじゃないアドレス領域にユーザー端末から直接接続したいサーバなんて置かないので、問題は起こらないと。

なるほど、うまいこと考えられてるなあ。このシェアードアドレス、覚えておくとどこかで応用できるかも。

コメント

読み込み中...