VyOSでソフトウェアルータ
はじめに
これはUEC 2 Advent Calendar 2021の12/14の記事です。前の方は12/13にpizacさんが投稿している外付けSSDにUbuntuをインストールした話です。
USBメモリにLinux入れとくの便利ですよね。わたしの推しのArch LinuxはwikiにUSBメモリにインストールする方法が載ってたりします。わたしもPCが死んだときの復旧に重宝しています。
自己紹介
uec20のごっちです。12/13の23:30ごろに急に記事書きてえなとなり12/14のadvent calendar枠を確保して頑張って書いています。
ところでみなさんも一度は家庭用ルータではできない複雑なルーティングをしたりVPNを張りまくったりしたくなりますよね。
ルータ用OSとして有名なものとして、家庭用ルータに焼けるOpenWrtなどもあります。
しかし組み込み機器向けなOSなので(わたしは)かなりつらくなって嫌になりました。そこでVyOSです。
特徴
VyOSはその名の通りOSで、x86_64のパソコンにインストールして使います。debianベースらしいです。
利点
- 家庭用ルータのCPUとは比べものにならないx86_64の性能で殴れます
- VPNにいろいろ対応しています。WireGuardやOpenVPN、L2TPなどなど
- ansibleから叩くことでデプロイを自動化できます
- コマンド書式が綺麗
欠点
- x86_64機用意するのめんどい
- 用途によってはtoo muchなことも多い
やっていく
ある用途にOpenVPNのサーバが欲しくなったのと強いソフトウェアルータを触ってみたかったなどがありVyOSを使っていくことにしました。
インストールですが、VyOSはLTSが有償という謎なライセンス体系です。snapshotとnightly buildsは無償です。snapshotをダウンロードしましょう。
インストール手順は解説しません。公式ドキュメントを見てください。
これはQuick Start Guideです。コマンドが良い感じなのがわかりますね。コマンドで設定するタイプのルータを触ったことがある人は雰囲気で触れるはず。
ユーザーを追加してファイアウォールなどを設定したらansibleもやっていきましょう。
memo
ところで私はNTTPC Indigoの350円/月なVPSサーバにVyOSをインストールしました。このVPSはUbuntuとCentOSとWindowsしか動かせないのですが、黒魔術を使うとVyOSを起動できます。
ubuntu20だからかsnapshotで不適切なのを選んだからか、いくつかの組み合せではカーネルパニックが起きて失敗しました。これをやる際はいろいろな組み合わせを試してみてください。ちなみにVyOSはqcow2イメージも配っています、優しい。
ansible
また実際のコードは置きません。ドキュメントはこれです。
コマンド列挙するだけなんですが自動化できるのは良いことです。私はGitHubに適用するコマンドを列挙してGitHub Actionsでansibleを叩いてデプロイするようにしています。