routerd ドキュメント

routerd は、ルーターにしてほしいことを YAML ファイルに書くための道具です。 たとえば「この線を WAN にする」「LAN にこの IP アドレスを付ける」「LAN から 外へ出るときだけ IPv4 NAT を使う」と書きます。routerd は、その内容を読んで Linux ホストの設定を作ります。
現在の最初の対象は Ubuntu Server です。FreeBSD と NixOS には、ビルド、 導入場所、サービス管理の土台がありますが、各 OS に合ったネットワーク設定の 生成はまだそろっていません。この入門では Ubuntu Server を使ってください。 対応状況は 対応プラットフォーム で確認できます。
routerd はネットワークを変えられます。最初の実験は、普段の自宅・学校・職場の ルーターではなく、隔離した Ubuntu Server VM で行ってください。 Proxmox、KVM、VirtualBox などの VM コンソールを開ける状態にし、変更する NIC とは別の管理経路も残します。SSH だけに頼らないでください。
新規に導入するなら、安定版マイルストーン にある推奨版から 始めてください。
最初の順番
- 隔離した Ubuntu Server VM と、そのコンソールを用意します。
- routerd を導入します。
- 小さな YAML を書き、
routerd validateで形を確かめます。 routerd apply --once --dry-runを、使い捨ての state・ledger・status ファイルを 指定して実行します。この段階では本当に反映しません。- VM の構成が安全だと分かってから
routerd.serviceを起動します。 - サービスが起動した後で、
routerctl get statusを使って状態を見ます。
具体的なコマンドは はじめに にあります。
目的から探す
| やりたいこと | 読むページ |
|---|---|
| Ubuntu Server VM に導入する | インストール |
| ネットワークの基本用語を知る | routerd を始める前のネットワーク基礎 |
| 最初の安全な確認をする | はじめに |
| WAN と LAN を持つ小さなルーターを作る | 最初のルーターを立ち上げる |
| IPv4 NAT の形を知る | 基本的な IPv4 NAT ルーター |
| routerd が設定をどう扱うか知る | 適用と生成 |
| ファイアウォールの現在地を知る | NAT44 とファイアウォールの準備 |
| ゲスト端末を本当に分ける方法を知る | ゲスト / IoT の分離を設計する |
| 稼働中のルーターを運用する | 調整(リコンサイル) |
| リソース名や項目を調べる | リソース API |
大切な言葉
- WAN は、インターネットや上流ルーターにつながる側です。
- LAN は、自分で使う PC やスマートフォンをつなぐ側です。
- YAML は、設定を人が読み書きしやすい形で書くファイル形式です。
- validate は、設定の書き方を確認することです。
- dry-run は、本当には変更せず、何をする予定か試すことです。
- daemon(デーモン) は、起動し続けて状態を見守るプログラムです。
分からない言葉が出たら、まず ネットワーク基礎 を 読んでください。全部を暗記する必要はありません。
できることと、まだ途中のこと
routerd は、インターフェース、IPv4 アドレス、DHCP、NAT44、経路、dnsmasq を使う LAN サービスなどを扱えます。一方、ファイアウォールのリソースは現在も土台を 整えている段階です。インターネットに公開する機器の唯一の防御としては使わないで ください。
同じスイッチや同じ Wi-Fi にいる端末は、ルーターを通らず直接通信できることが あります。ゲストと信頼済み端末を本当に分けるには、管理できるスイッチや AP で VLAN / SSID を分ける必要があります。
次の一歩
隔離した Ubuntu Server VM へのインストール から始めます。