Starlink(スターリンク) 対応ルータをSEIL/x86 Ayameで自作する

2024年01月09日 火曜日


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

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

「Starlink(スターリンク) 対応ルータをSEIL/x86 Ayameで自作する」のイメージ

SEIL/x86をStarlinkルータとして考える

Starlink付属のWi-Fiルータはカスタマイズできる範囲がとても狭く、面白くありません。

そこで多機能なIIJルータに置き換える話をしたいわけですが、機器として提供しているのはいずれも法人向けの製品で、MPCと呼ばれるクラウド型のマネジメントサービスとセットになっています。

 

そこで今回は個人でもAmazonから購入できるソフトウェアルータのSEIL/x86 Ayameに同じくAmazonから購入できるネットワーク機器向けのPCを組み合わせて動かしてみたいと思います。

Starlink関係の記事をまとめていますので活用してください。動画も公開していますので、よろしければそちらもあわせてご覧ください。

SEIL/x86 Ayameとは?

数あるSEILの中でもSEIL/x86 Ayameは仮想環境(VMware, KVM, Hyper-V)の中に組み込んで使うソフトウェアルータの最新版になります。

今回は筆者が多少慣れているという事もありますが、Linux環境で動くKVMを使う事にしました。

SEIL/x86 Ayameの入手方法

SEIL/x86 Ayameは個人向けにAmazonで販売しています(税込5,500円)。

SEIL/x86 Ayame スタンダードエディション

スタンダートエディションは使えるCPUのコア数が2個までに制限されていますが、Starlink向けのルータで使って困ることはないかと思います。

PC + Debian + KVM + SEIL/x86 Ayame

Amazonで購入可能なPCとして今回はこれを使いました。HUNSN mini PCは深圳のPCメーカでネットワーク機器向けのPCを色々と扱っている会社です。

このPCはIntelのN100を搭載し4コア、最大3.4GHzで動きます。メモリは8GB、ストレージは128GB搭載したモデルを選択しました。

ネットワークは4ポートあり、全て2.5GbE EthernetのIntel I226-V を搭載しています。本体はファンレスで動くのでうるさくないです。細かいスペックは販売先のAmazonのページで確認してください。SEIL/x86 Ayameのラインセンスも合わせて大体4万円ぐらいの予算という事になります。

このPCにDebianをインストールし、KVMを導入します。画面はDebianインストール途中のネットワーク選択画面ですが、4個のネットワークインタフェースを認識しています。

Debianの環境整備について

Debianにインストールするソフトウェアは下図のように最小限で大丈夫です。GUIはチェックから外しSSH Serverを追加しています。

追加するソフトウェアについて

Debianに追加したソフトウェアは以下のとおりです。

  • sudo
  • avahi-daemon

sudoは一般ユーザから他のユーザの権限(主にroot)でコマンドを実行するときに使うものです。avahi-daemonはローカルネットワークの名前解決につかえるサービスで設定したホスト名をつかってavahiに対応しているクライアントから名前でアクセスできるようになります。Macからssh接続するときにIPアドレスを調べる事なく名前でアクセスできるので便利に使っています。

KVMのインストール

次にKVM関係のツールをインストールします。

# apt -y install qemu-kvm libvirt-daemon-system libvirt-daemon virtinst bridge-utils libosinfo-bin

ネットワーク周りの設計・設定について

このPCには4本のイーサネットがあります(enp2s0, enp3s0, enp4s0, enp5s0)。これを1本+3本の2つのネットワークグループ(enp2s0, br0)に分け、SEIL/x86から2本のネットワーク(ge0, ge1)で認識するようにしました。またStarlinkがDHCPで配布するIPv4アドレスは1個だけなのでDebian側はIPv6のみで構成します。

以上を踏まえてDebianのネットワーク設定は以下のようにしました。

/etc/network/interfaces

allow-hotplug enp2s0
iface enp2s0 inet6 dhcp

auto br0
iface br0 inet manual
bridge_ports enp3s0 enp4s0 enp5s0

SEIL/x86の取得、KVMの設定

仮想マシンのイメージは以下からダウンロードできます。

SEIL/x86 Ayame 仮想マシン

ダウンロードページにあるプロダクトキーを購入済みを選択、ソフトウェア使用許諾規約に同意とすすめてください。イメージのダウンロードリンクに辿り着けます。

ダウンロードしたイメージは/seilx86-kvm/seilx86.qcow2に置くようにします。

仮想サーバの起動は以下のコマンドのようになりました。オプションの詳細には触れませんが、注意している点として、vcpuのコア数はスタンダードエディションでの制限値である2にしています。ネットワークはvirtioを使いDebian上のネットワークインタフェースに対応させています。

virt-install \
--connect qemu:///system \
--name seilx86 \
--memory 1024 \
--vcpus 2 \
--osinfo netbsd9.0 \
--disk path=/seilx86-kvm/seilx86.qcow2 \
--import \
--network type=direct,source=enp2s0,model=virtio \
--network type=direct,source=br0,model=virtio \
--graphics vnc,'listen=*' \
--autostart \
--noautoconsole

起動に成功すれば、次はSEIL/x86のコンソールに接続します。vncでも繋げますが、ここではコマンドラインからコンソールにつないでネットワーク周りの初期設定などを変更していく事にします。

初期パスワードを設定したあとは、実際の設定をしていきます。初期状態で入っている設定は一旦クリアして以下のように設定をいれていきます。設定はコンソールからeditコマンドで編集しますが、エディタとしてviの基本的な操作ができる必要があります。また編集後はcommitで設定を反映し、save-to flashrom で設定内容自体を保存する必要もあるので注意してください。

完成したSEIL/x86 Ayameのネットワーク性能を確認してみます、確認はフレッツ光ネクストファミリー・ハイスピードタイプにつないでいるIIJmioひかりで実施しています。Starlinkとは異なる環境ですがご容赦ください。この回線は上り速度が100Mbpsに制限されていますが下りの速度はIPv6の場合には概ね1Gbpsになっています。

これだけの性能があればStarlinkと組み合わせて使うには十分ですよね?

谷口 崇

2024年01月09日 火曜日

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

Related
関連記事