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ベースらしいです。

利点

欠点

やっていく

ある用途にOpenVPNのサーバが欲しくなったのと強いソフトウェアルータを触ってみたかったなどがありVyOSを使っていくことにしました。
インストールですが、VyOSはLTSが有償という謎なライセンス体系です。snapshotとnightly buildsは無償です。snapshotをダウンロードしましょう。
https://vyos.net/get/
インストール手順は解説しません。公式ドキュメントを見てください。
https://docs.vyos.io/en/equuleus/installation/index.html
これはQuick Start Guideです。コマンドが良い感じなのがわかりますね。コマンドで設定するタイプのルータを触ったことがある人は雰囲気で触れるはず。
https://docs.vyos.io/en/equuleus/quick-start.html
ユーザーを追加してファイアウォールなどを設定したらansibleもやっていきましょう。

memo

ところで私はNTTPC Indigoの350円/月なVPSサーバにVyOSをインストールしました。このVPSはUbuntuとCentOSとWindowsしか動かせないのですが、黒魔術を使うとVyOSを起動できます。
https://scrapbox.io/otofune/NTTPC_Indigo_%E3%81%A7_OS_%E3%82%92%E5%85%A5%E3%82%8C%E6%9B%BF%E3%81%88%E3%82%8B
ubuntu20だからかsnapshotで不適切なのを選んだからか、いくつかの組み合せではカーネルパニックが起きて失敗しました。これをやる際はいろいろな組み合わせを試してみてください。ちなみにVyOSはqcow2イメージも配っています、優しい。

ansible

また実際のコードは置きません。ドキュメントはこれです。
https://docs.vyos.io/en/equuleus/automation/vyos-ansible.html
コマンド列挙するだけなんですが自動化できるのは良いことです。私はGitHubに適用するコマンドを列挙してGitHub Actionsでansibleを叩いてデプロイするようにしています。