GlobalPing を使い始める: 実践!

昨年(6週間前)GlobalPingについてご紹介しました。彼らは自らをこのように説明しています。
Globalpingは、世界中に分散されたプローブに対して、ping、traceroute、dig、mtrなどのネットワークコマンドを誰でも実行できるプラットフォームです。私たちの目標は、誰もが興味深いネットワークツールやサービスを構築できるように、無料かつシンプルなAPIを提供することです。
これは、ボランティアによって世界中に分散されたプローブ群です。APIを操作することで、これらのプローブを使ってインターネットワーキングの問題を分析・トラブルシューティングできます。このプロジェクトは、 jsdelivrでご存知の@jimaek氏によって運営されています。
参加にGlobalPingハードウェアは必要ありません。Dockerコンテナ内でプローブを実行できます。手順については、こちらをご覧ください。
封筒の中身
GlobalPingのプローブはポーランドのクラクフからクッション封筒で届きました。中身は以下のとおりです。

含まれるもの:
- MicroSD カードがインストールされた GlobalPing ユニット。
- MicroUSBアダプター 5V/2A – パッケージには「RPi Zero用電源」と記載されています
- OSがロードされたMicroSDカード。私の場合は、Kingson CANVAS Select Plus 32GBカードでした。32GBのような容量は必要ないと思いますが、おそらく今は32GBが最も一般的なカードなので、8GBカードよりも安く手に入るでしょう。
- ユーロプラグの電源プラグと米国プラグアダプター
- 短いネットワークケーブル
- 説明書
- ステッカー!
注:パッケージを開けた時にMicroSDカードが抜け落ちてしまいました。念のため、カードが奥までしっかりと差し込まれていることを確認してください。そうでないと、お使いの端末用のOSがインストールされません。
プローブは密閉された金属製のケースで、片面にGlobalPingのステッカーが貼られています。ケースのサイズは約5.5cm×4.5cm、高さは約3cm(1-3/4インチ×2-1/8インチ、高さ1-1/4インチ)です。たまたま手元にあった布製の巻尺を使っているので、おおよその目測です。
アップデートに使用できるUSBポートがあります。詳細はこちらをご覧ください。ケースにはスイッチやボタンはなく、電源、ネットワーク、MicroSD、USBポートのみとなっています。


分解する理由は全くないので、当然分解しました。NEO 512Mを搭載した小さなボードです。写真が粗くて申し訳ありません。スマホのズーム機能がうまく機能しなかったためです。GlobalPingは同社のプローブを「金属製の筐体に収められたARMベースのミニコンピューター」と説明しています。Google検索でNeo 512というモジュールを見つけたのですが、いくつかのボードに搭載されているのが目に入りました。


反対側からもっと情報が得られるかもしれませんが、底面にヒートシンクがあり、側面から見ると放熱グリスが塗られているのがわかります。そこは邪魔したくないので、ここまでです。

ケースのデザインは非常に優れています。ボードの出し入れも非常に簡単で、組み立ててもガタつきません。
電源プラグは醜いレンガみたいで、USアダプターを取り付けてもさらに醜い。もちろん、FOSSプロジェクトにAppleレベルのカスタムエンジニアリングは期待できない!どっちみちコンセントに差し込まれて見えないんだから。

設定
セットアップは簡単です。電源ケーブルとネットワークケーブルを接続するだけです。説明書によると、完全に起動するまで約3分かかります。

このデバイスがネットワーク上のどこにあるのか知りたかったので、起動してMACアドレスをキャプチャし、DHCPサーバーを使って固定IPアドレスを割り当てました。幸い、このデバイスのクライアントIDは「globalping-probe-1234」なので、簡単に見つけられました。この場合の1234はMACアドレスの最後の4桁です。
IP を割り当てた後、デバイスのプラグを抜き差しして、それを拾いました。
その後、指示に従ってログインしました。logs @IP_ADDRESSにパスワードなしでssh接続できます。表示される内容は以下のとおりです。
$ ssh ログ@192.168.XX ホスト「192.168.XX (192.168.XX)」の信頼性を確立できません。 ED25519 キーのフィンガープリントは SHA256:0aM7QP6qbVaJV/4i4oGhf2v6GS18vu9YMArjBlRMkcI です。 このキーは他の名前では知られていない 接続を続行しますか(はい/いいえ/[指紋])?はい 警告: '192.168.XX' (ED25519) が既知のホストのリストに永続的に追加されました。 ホームディレクトリ /home/logs に chdir できませんでした: そのようなファイルまたはディレクトリはありません /etc/ssl/certs 内の証明書を更新しています... 0 個追加、0 個削除、完了。 /etc/ca-certificates/update.d でフックを実行しています... 終わり。 最新バージョンを確認しています 現在のバージョン 0.10.1 最新バージョン 0.10.1 [2023-01-01 19:21:44] [INFO] [687] [general] プローブバージョン0.10.1を本番環境で起動します [2023-01-01 19:21:45] [DEBUG] [687] [一般] APIへの接続が確立されました [2023-01-01 19:21:45] [INFO] [687] [api:connect] が (ポートランド、米国、北米) から接続しました (緯度: 45.XXXX 経度: -122.XXXX)
GlobalPing の API ページを見ると、オレゴン州ポートランドに 2 つの異なるプローブがリストされています。
[0.10.1] [READY] ポートランド (OR)、米国、NA、7922 -- Comcast Cable Communications, LLC [0.10.1] [READY] ポートランド (OR)、米国、NA、54600 -- Peg Tech
たぶん私が初めてだと思います。私はComcastを使っていますが、「Peg Tech」(聞いたこともない会社で、かなり…波乱万丈な経歴の持ち主です)を使っているComcastユーザーは他にいません。7922と54600の番号がASNです。私のデバイスに何らかの固有の識別子があれば、ポートランドで正常に動作していることを確認できるので便利です。ポートランドに多くのユーザーがいたら、おそらくComcastを利用している人も多かったでしょう。
箱はちゃんと閉まっています。ローカルのnmapスキャンの結果は次のとおりです。
root@rundeck:~# nmap -p1-65535 192.168.XX Nmap 7.80 ( https://nmap.org ) を2023年1月2日 09:53 PST に開始 192.168.XXのNmapスキャンレポート ホストは稼働しています (遅延 0.00089 秒)。 表示されていない: 65534 個の閉じたポート ポート 国家奉仕 22/tcp オープン SSH MACアドレス: 02:3F:30:36:XX:XX (不明) Nmap 完了: 1 つの IP アドレス (1 つのホストが稼働中) を 3.35 秒でスキャンしました
GlobalPingで遊ぶ
デバイス上ではログを見る以外には何もできませんが、 APIを使って遊ぶことはできます。ログインすると、世界中で利用可能なプローブが579個あると表示されました。
最初の10回、場所を「ポートランド」として google.com に ping をリクエストしたところ、ISP が「Peg Tech」である隣人が使用されました (WordPress が JSON を改ざんします、申し訳ありません):
PING google.com (142.250.72.206) 56(84) バイトのデータ。
sfo03s21-in-f14.1e100.net (142.250.72.206) からの 64 バイト: icmp_seq=1 ttl=113 time=1.60 ms
sfo03s21-in-f14.1e100.net (142.250.72.206) からの64バイト: icmp_seq=2 ttl=113 time=1.58 ms
sfo03s21-in-f14.1e100.net (142.250.72.206) からの64バイト: icmp_seq=3 ttl=113 time=1.58 ms
--- google.com ping 統計 ---
送信パケット3個、受信パケット3個、パケットロス0%、時間402ミリ秒
rtt 最小/平均/最大/平均偏差 = 1.575/1.585/1.602/0.011 ミリ秒
{
"id": "5oNHmcDO4VGdxJN7",
「タイプ」:「ping」、
「ステータス」:「完了」
"作成日時": "2023-01-01T19:42:48.316Z",
「更新日時」: 「2023-01-01T19:42:49.104Z」
"プローブ数": 1,
"結果": [
{
「プローブ」:{
「大陸」:「NA」、
"地域": "北米",
「国」:「米国」
"状態": "OR",
"都市": "ポートランド",
"asn": 54600,
「経度」: -122.6684,
「緯度」: 45.5242,
"ネットワーク": "ペグテック",
「タグ」: [],
「リゾルバ」: [
「8.8.8.8」、
「8.8.4.4」
]
},
"結果": {
"rawOutput": "google.com (142.250.72.206) にPINGを実行しました。56(84)バイトのデータです。\nsfo03s21-in-f14.1e100.net (142.250.72.206) からの64バイト: icmp_seq=1 ttl=113 time=1.60 ms\nsfo03s21-in-f14.1e100.net (142.250.72.206) からの64バイト: icmp_seq=2 ttl=113 time=1.58 ms\nsfo03s21-in-f14.1e100.net (142.250.72.206) からの64バイト: icmp_seq=3 ttl=113 time=1.58 ms\n\n--- google.com ping 統計 ---\n送信パケット 3 個、受信パケット 3 個、パケット損失 0%、時間 402ms\nrtt 最小/平均/最大/平均偏差 = 1.575/1.585/1.602/0.011 ms",
"解決されたアドレス": "142.250.72.206",
"解決されたホスト名": "sfo03s21-in-f14.1e100.net",
「タイミング」: [
{
"ttl": 113,
"rtt": 1.6
},
{
"ttl": 113,
「rtt」: 1.58
},
{
"ttl": 113,
「rtt」: 1.58
}
],
「統計」: {
「最小」: 1.575,
「最大」: 1.602,
「平均」: 1.585,
「損失」: 0
}
}
}
]
}ASNを7922に設定した後、作業は自分のデバイスから来ていると思っていました。しかし、実際にはComcastも拠点を置いているイリノイ州から来ていることがわかりました。そこで都市フィルターを追加したところ、期待通りに動作しました。そして、私のデバイスのログには次のように表示されました。
[2023-01-01 19:38:56] [DEBUG] [687] [general] pingリクエストEYTkITWoJw8Fv6nMを受信しました
GlobalPing は「私たちのプロジェクトは現在開発中であり、まだ実稼働環境での使用には適していません」と述べているため、この話はまだ初期段階にあることに注意してください。
グローバルプローブネットワーク
まず、570個のプローブのすべてが実際のハードウェアプローブではないことに注意してください。GlobalPingはDockerコンテナ内で実行できます。 @jimaekによると、リストされているプローブのうちGlobalPingのハードウェアプローブは約150個のみです。
GlobalPing プローブを実行する場合は、ここをクリックしてください。
API ページに表示されているリストに基づいて、2023 年 1 月 1 日時点で 10 個以上のプローブがリストされているすべての国のリストを以下に示します。
- アメリカ国道152号線
- RU 61
- ナショナルリーグ38
- DE 27
- GB 26
- CA 18
- FR 17
- PL 16
- JP 15
- 13インチ
- AU 11
- BR 11
- SG 11
- ES 10
2023 年 1 月 1 日現在、オンラインになっている 579 店舗の地域別の内訳は次のとおりです。
- EU 288
- NA 171
- AS 83
- SA 18
- OC 14
- AF5
アメリカとEUがリストを独占しているのは驚きではありません。ロシアが2位というのは驚きです。オセアニアの参加者は、ニュージーランド人1人を除いて全てオーストラリア人、アフリカの参加者はケープタウン1人を除いて全てヨハネスブルグ人です。それでも、真のグローバルミックスを見るのは素晴らしいことですし、プロジェクトが進むにつれてこれらの参加者数も増え、バランスが取れていくと確信しています。