メインコンテンツまでスキップ
最初は隔離した Ubuntu Server VM で試す

routerd

YAML に書いてから、ネットワークを変える。

routerd は WAN、LAN、DNS、NAT、経路、OS 設定を1つの YAML に明示します。最初は検証用ホストを使い、コンソールまたは独立した管理 NIC を確保してください。live 実行は接続性を変えることがあります。

最新安定版: v20260707.1514

この順で始める

最初に6つのネットワーク用語

最初のラボに必要なのは WAN、LAN、IP アドレス、ゲートウェイ、DHCP、DNS だけです。ネットワーク経験を前提にせず、短く説明します。

  • WAN
  • LAN
  • DHCP
  • DNS
6つの基本用語を読む →

隔離した Ubuntu Server ラボを用意

予備の VM またはホストを使い、コンソールか独立した管理 NIC を確保します。最初の live 変更を本番や唯一のルーターに行わないでください。

  • Ubuntu Server
  • コンソール接続
  • 独立した管理 NIC
ラボを準備する →

小さなルーターの役割を1つ書く

最初はインターフェースと狭い LAN サービスだけにし、DHCP、DNS、外向き IPv4 NAT を役割ごとに1つずつ追加します。

  • Interface
  • DHCPv4Server
  • NAT44Rule
最初のルーターを作る →

FreeBSD / NixOS は基盤整備の段階

導入レイアウトとサービス管理の土台はありますが、ネイティブなプラットフォームレンダラーと機能同等性は未対応です。最初のルーターは Ubuntu Server で始めてください。

  • Ubuntu Server が主対象
  • FreeBSD の基盤整備
  • NixOS の基盤整備
対応状況を見る →

次に、安全な初回変更へ

この順で進めてください。検証と dry-run はホストネットワークを変更しません。コンソールでの live apply とデーモンは変更する可能性があるため、コンソールまたは独立した管理経路を使います。routerctl はデーモン起動後にだけ使います。

1
6つの基本用語を知る
WAN / LAN / DHCP / DNS
2
Ubuntu ラボを用意
コンソール / 管理 NIC
3
YAML を書く
router.yaml
4
静的に検証
routerd validate
5
隔離 dry-run
routerd apply --once --dry-run
6
コンソールで live apply
routerd apply --once
7
デーモン起動後に確認
routerd serve → routerctl

Ubuntu Server: 確認してから live にする

予備の Ubuntu Server VM またはホストへ routerd を導入し、下記パスへサンプル YAML を置きます。live 実行の前に、コンソールまたは独立した管理経路を必ず確保してください。

Ubuntu Server の導入手順を読む

1. 設定ファイルだけを検証する

YAML とリソースの規則を確認します。ホストネットワークは変更せず、routerd デーモンの起動も不要です。

sudo routerd validate --config /usr/local/etc/routerd/router.yaml

2. 隔離した dry-run を実行する

一時ディレクトリへ state、ledger、status を出して、1回分の apply 経路を確認します。ネットワーク変更や通常の routerd 状態ファイルは書かれず、routerd デーモンも routerctl も使いません。

LAB_DIR="$(mktemp -d)"
sudo routerd apply --config /usr/local/etc/routerd/router.yaml --once --dry-run --skip-service-manager --state-file "$LAB_DIR/state.db" --ledger-file "$LAB_DIR/ledger.db" --status-file "$LAB_DIR/status.json"

3. コンソールから live apply する

ホストネットワークを変更して終了します。ラボのコンソール、または独立した管理経路があるときだけ実行してください。

# 1回だけ live で反映します。ホストネットワークを変更して終了します。
sudo routerd apply --config /usr/local/etc/routerd/router.yaml --once

4. デーモンを起動してから routerctl を使う

routerd serve は live であり、実行中もホストネットワークを反映・調整します。起動後にだけ、別の端末で routerctl を使います。

# コンソールから live デーモンを起動します。
sudo routerd serve --config /usr/local/etc/routerd/router.yaml

# routerd serve の起動後、別の端末で実行します。
sudo routerctl get status
sudo routerctl get events --limit 20

routerd はプレリリースの v1alpha1 ソフトウェアです。最初の live 実行を、そのネットワークで唯一のルーターや唯一のリモート管理経路に対して行わないでください。

デーモン起動後にルーターを確認する

routerctl はローカルで動作中の routerd デーモンと通信します。上の単体検証や dry-run に使うものではなく、起動済みルーターを確認するためのものです。

routerctl get status

次の変更を行う前に、実行中のデーモンが報告するリソース状態を確認します。

routerctl doctor

ルーター起動後、デーモン経由で絞り込んだヘルス診断を実行します。

routerctl get events

リソースが期待した状態にならないとき、最近のコントローラーイベントを確認します。

ホストコンソールを残す

live のネットワーク変更でリモート接続に影響したとき、コンソールまたは独立した管理経路が復旧手段になります。