Starlink(スターリンク)で自宅サーバ、IPv6ならできます!

2023年04月10日 月曜日


【この記事を書いた人】
谷口 崇

結構長くゲーム業界に出向していましたが、2022年秋に戻ってきました。ゲーム業界での経験も生かしながらIIJのエンジニアとしてちょっと面白いことを提供できていければいいなぁと思っています。格闘ゲームの世界チャンピオン(Evo2017)になった従兄弟がいますが彼にゲームを教えたのは僕ではありません(笑)

「Starlink(スターリンク)で自宅サーバ、IPv6ならできます!」のイメージ

Starlinkで自宅サーバを実現するには、CGNAT経由で接続されている環境をなんとかするしかありません。またIPv6が使えるようになってグローバルユニキャストアドレスが使えるようになりましたがインターネット側から接続する事はできませんでした。しかし構成を少し変更する事でIPv6なら自宅サーバが実現できる事がわかりました。

今回はStarlinkのネットワークについてあらためて調査した結果と自宅サーバを実現する方法を紹介します。IPv6を使うとこれまでのCGNAT配下という制約から解放されたインターネットの世界が広がります、是非お付き合いください。

過去ブログもよろしくお願いします。

スターリンク解説動画の紹介

「スターリンクって何?」といった方向けに解説動画を公開しています。
気になる方は、ぜひこちらもご覧ください。

StarlinkのIPv6環境について

日本で展開しているStarlinkには2種類のキットが存在し、それぞれG1とG2と呼ばれています。

最初はG1でしたがすぐにG2に切り替わり、今やG1は公式の資料も整理され情報入手が難しくなっています。

2月頃からIPv6が日本でも使えているという報告があるのにG1のStarlinkは使えなかったので確認した所、サポートしないとの回答がありがっかりしていました。

付属のWi-Fiルータを使わない構成を試す

筆者の環境では日本とドイツの2カ所がG1だったので諦めきれず、もしかするとIPv6が使えないのは付属のWi-Fiルータであってアンテナの所まではIPv6がきているかもしれないと思い、アンテナにRaspberryPiを直接接続してみました。

直接接続する方法ですが、G1の場合はWi-Fiルータが繋がっていたケーブルにRaspberryPiを繋ぐだけです。

G2ではWi-Fiルータの電源が一体化しているので切り離す事はできません。Wi-Fiルータをバイパスモードに変更して別売のイーサネット アダプターを取り付けて使う事になります。アプリでの設定画面はこんな感じです。

 

ネットワーク確認、フィルタについて

ドイツのRaspberryPiでネットワークの状態を確認すると、こんな形になっていました。

ドイツのRaspberryPiのインタフェース情報

予想通りIPv6アドレスが使える一方、新たな発見としてDHCPで配られているIPv4のアドレスがISP shared IPv4 アドレス(100.64.0.0/10 の範囲)になっている事がわかりました、これは以前に説明した内容と違っています。IPv4経路を確認すると、192.168.100.1と34.120.255.244がDHCPで配布されています(34.120.255.244はSpaceXのネットワークです)。この経路情報のおかげて192.168.100.1と通信ができるようです。192.168.31.0/24と192.168.32.0/24は前回のブログで設定しているVPNの経路になります。

以前の説明と違うのは仕様が変更された可能性もありますが、Starlinkが衛星と通信が確立できているか否かで配るアドレスが変わるのではないかと想像しています。衛星と通信できていなければCGNATのアドレスが確定できないので、その時は192.168.100.0/24からアドレスを配るのかもしれません。

ちなみにDHCPで情報が配られるには1台目の機器までで、2台目には配られません。IPv6は2台目の機器でも自動設定されます。IPv6だけ使えればいいのであれば複数台の機器を繋ぐ形でも使えます。割り当てられたIPv6アドレスはインターネットからの到達性がありますがSMTPはフィルタされています。

G2タイプのアンテナについてもWi-Fiルータをブリッジモードに変更し、イーサネット アダプターを介して機器を接続すれば同様の仕様になります。G2の場合はブリッジモードにしなくてもIPv6は使えますが、インターネットから到達できないフィルタされた状態での利用になります。

Starlinkで自宅サーバ

日本とドイツは機器をG1アンテナに直結、アメリカはそのままという構成で3台ともIPv6が使えるようになりました。アメリカはWi-Fiルータに繋いでいるのでインターネットからの到達性はありません。この構成にした段階で直結した機器は自宅サーバになりました。

これまではある程度守られていた環境でしたが、IPv6のみとはいえインターネットに晒されている環境になりました。脆弱性等を残したままでの運用は危険です。サーバ自身でFireWallなどを用いて防御する、セキュティパッチを当てていくといった基本的な対策を常に実施していく必要があります。

割り当てられたIPv6アドレスですが日本だと2週間ぐらいの間に3回ぐらい変わっています。当初フレッツのIPoE接続と同様の固定に近い「半固定」かと思っていましたが、それよりは変更される頻度は高そうです。自宅サーバで利用するにはDDNSなどを活用したアドレス変更に追従できる環境を整備した方がいいと思われます。

Starlink間をtracerouteする

インターネットからの到達性があるので、tracerouteで直接繋がります。3箇所からのtracerouteの結果はこんな形になりました。アメリカは構成を変えていないので通信先がアメリカのものは計測していません。

これまでは、計測してきたのはStarlinkからGoogleとかIIJとかへの接続性だったのでStarlinkを提供しているSpaceXのネットワークだけで完結するtracerouteは新鮮です。これをみると2620で始まるネットワークがバックボーン、日本が2406、アメリカが2605、ドイツが2a0dで始まるネットワークなのかな?と想像できます。

衛星による遅延は直近の衛星との往復と最後の衛星との往復ですが、地上のインターネット網の遅延も大陸や海を渡ると大きい事がわかります。

アメリカ起点で日本とドイツにtracerouteすると、日本は太平洋を渡る部分で130ms程度の遅延があり、ドイツにむけては200ms程度の遅延になっています。大陸を抜け、大西洋の海底ケーブルを通っている事が遅延の差だとすると、宇宙空間で衛星から衛星にレーザーで通信した方が真空を進む光の速さなどを考えても有利かもしれませんね。

次回予告

次回はVPN環境のIPv6ベースへの切り替え、GCPをつかったVPNやDDNS環境の構築について紹介したいと思います。

谷口 崇

2023年04月10日 月曜日

結構長くゲーム業界に出向していましたが、2022年秋に戻ってきました。ゲーム業界での経験も生かしながらIIJのエンジニアとしてちょっと面白いことを提供できていければいいなぁと思っています。格闘ゲームの世界チャンピオン(Evo2017)になった従兄弟がいますが彼にゲームを教えたのは僕ではありません(笑)

Related
関連記事