VyOSでソフトウェアルータ

posted on 2021-12-13

はじめに

これは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をダウンロードしましょう。

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_で_OS_を入れ替える

ubuntu20だからかsnapshotで不適切なのを選んだからか、いくつかの組み合せではカーネルパニックが起きて失敗しました。これをやる際はいろいろな組み合わせを試してみてください。ちなみにVyOSはqcow2イメージも配っています、優しい。

ansible

また実際のコードは置きません。ドキュメントはこれです。

https://docs.vyos.io/en/equuleus/automation/vyos-ansible.html

コマンド列挙するだけなんですが自動化できるのは良いことです。私はGitHubに適用するコマンドを列挙してGitHub Actionsでansibleを叩いてデプロイするようにしています。