Starlink(スターリンク)で自宅サーバ、IPv6ならできます!
2023年04月10日 月曜日
CONTENTS
Starlinkで自宅サーバを実現するには、CGNAT経由で接続されている環境をなんとかするしかありません。またIPv6が使えるようになってグローバルユニキャストアドレスが使えるようになりましたがインターネット側から接続する事はできませんでした。しかし構成を少し変更する事でIPv6なら自宅サーバが実現できる事がわかりました。
今回はStarlinkのネットワークについてあらためて調査した結果と自宅サーバを実現する方法を紹介します。IPv6を使うとこれまでのCGNAT配下という制約から解放されたインターネットの世界が広がります、是非お付き合いください。
過去ブログもよろしくお願いします。
- Starlink(スターリンク)がやってきたのでネットワークを調べました
- Starlink(スターリンク)の遅延を日本とアメリカとドイツで長期収集しています
- Starlink(スターリンク)のネットワーク、アンテナのIPアドレス、NATの仕様などを調べました
- Starlink(スターリンク)とクラウドで月額171円の冗長VPNを構築してみました
「スターリンクって何?」といった方向けに解説動画を公開しています。
気になる方は、ぜひこちらもご覧ください。
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でネットワークの状態を確認すると、こんな形になっていました。
予想通り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環境の構築について紹介したいと思います。