位置づけ
routerd は、設定から理解でき、実行時の状態から説明できるルーターを作るための ローカル制御プレーンです。
routerd はネットワーク OS 全体の置き換えではありません。 また、多数のルーターを外側から所有するクラウドコントローラーでもありません。 各ルーターホスト上で動作し、型付き YAML リソースをホストのネットワーク、 サービス、経路、トンネル、ファイアウォール、ログ、状態へ変換します。
重視すること
routerd は、次のような運用を重視します。
- git で管理できる宣言的なルーター設定
- ホスト型コントローラーに依存しないローカル運用
- 生成したホスト成果物の明示的な所有関係
- 隠れたデーモン状態ではなく、イベントで説明できる状態
- 危険な変更前の管理経路確認
- 経路、トンネル、ファイアウォール判断の理由を追える観測性
主な対象は、ホームラボ、小規模オフィス、Proxmox VE や KVM を使う開発者、 手書き Linux ルータースクリプトを再現可能な仕組みに置き換えたい人です。
カバーする範囲
| 領域 | 例 |
|---|---|
| WAN 接続 | DHCPv4、DHCPv6-PD、DHCPv6 information request、PPPoE |
| IPv4 移行 | DS-Lite、NAT44、多段 WAN fallback |
| LAN サービス | DHCPv4、DHCPv6、RA、DNS、NTP |
| 経路 | 静的経路、ポリシー経路、EgressRoutePolicy、ヘルスチェック |
| セキュリティ | 3 ロールファイアウォール、ゲストモード、拒否ログ |
| オーバーレイ | WireGuard、Tailscale 連携、VXLAN の土台、VRF |
| 運用 | Web Console、routerctl、OpenTelemetry、ログストア |
| 初期構築 | パッケージ、sysctl profile、systemd unit、ライブ ISO |
この spectrum の両端は、かなり離れています。
- 仮想 SDN/VNET 間ルーティング: Proxmox VE SDN、WireGuard overlay、 VRF、VXLAN 実験、ラボ用 policy route をつなぐルーター VM です。
- ディスクレス PC ルーター: 小型 x86 mini PC がライブ ISO から起動し、
USB から
router.yamlを復元し、ログを RAM に保持し、物理 LAN を提供します。
この両端を同じ設定問題として扱うルータープロジェクトは多くありません。 routerd はそこを同じ問題として扱います。 違いは主に生成されるホスト成果物であり、意図モデルではありません。
範囲が広いことには意味があります。 ルーターの障害は境界で起きやすいからです。 DNS の選択が DHCPv6 information option に依存することがあります。 DS-Lite トンネルが特定の upstream でしか解決できない AFTR レコードに依存することもあります。 経路は、ヘルスチェックが成功してから primary になるべきです。 routerd は、それらの関係を 1 つのリソースグラフに置きます。
シェルスクリプトとの違い
シェルスクリプトは始めやすい一方で、後から監査しにくくなります。 「どのコマンドを実行したか」は分かっても、「いま存在すべき状態」が残らないためです。
routerd は期待状態を YAML に置き、観測状態を保存し、イベントを発行します。 API、CLI、Web Console から結果を確認できます。 差分、世代、実トラフィックの調査を進めやすくなります。
アプライアンスファームウェアとの違い
アプライアンスファームウェアは、用途が UI に合う場合は便利です。 一方で、DS-Lite、PPPoE fallback、ローカル DNS、独自 firewall、 OpenTelemetry、ラボ用オーバーレイなどを細かく組み合わせると難しくなります。
routerd は、それらをリソースとして扱います。 UI は読み取りと調査のためにあります。 設定変更は CLI と YAML を正とします。
Kubernetes 型コントローラーとの違い
routerd はリソースとコントローラーの考え方を借りています。 ただし、クラスターは必要ありません。 境界はホストです。 調整対象はカーネル、ローカルデーモン、ローカルファイルです。
この形により、家庭用ルーターとして扱える小ささを保ちつつ、DHCP、DNS、 トンネル、ヘルスチェック、経路、ファイアウォールログ、telemetry を イベント駆動で連携できます。
非目標
routerd は、現時点では次を目指しません。
- ホスト型 SDN コントローラー
- リモートプラグインマーケットプレイス
- 汎用ファイアウォール言語
- すべてのエンタープライズルーター機能の置き換え
- GUI 優先の設定システム
routerd は、広いクリック式管理画面よりも、明示的な YAML、ローカル制御、 高品質な運用情報を重視します。