メインコンテンツまでスキップ

位置づけ

routerd が local declarative router control plane として適する範囲と、対象外の境界

routerd は、設定から理解でき、実行時の状態から説明できるルーターを作るためのローカル制御プレーンです。

routerd は、ネットワーク OS 全体の置き換えではありません。多数のルーターを外側から所有するクラウドコントローラーでもありません。各ルーターのホスト上で動き、型付きの YAML リソースを、ホストのネットワーク、サービス、経路、トンネル、ファイアウォール、ログ、状態へ変換します。

重視すること

routerd は、次のような運用を重視します。

  • git で管理できる宣言型のルーター設定
  • ホスト型コントローラーに依存しないローカル運用
  • 生成したホスト成果物の、明示的な所有関係
  • 隠れたデーモン状態ではなく、イベントで説明できる状態
  • 危険な変更の前に行う、管理経路の確認
  • 経路、トンネル、ファイアウォールの判断理由を追える観測性

主な対象は、ホームラボ、小規模オフィス、Proxmox VE や KVM を使う開発者、そして手書きの Linux ルータースクリプトを再現可能な仕組みに置き換えたい人です。

カバーする範囲

領域
WAN 接続DHCPv4、DHCPv6-PD、DHCPv6 情報要求、PPPoE
IPv4 移行DS-Lite、NAT44、多段 WAN フォールバック
LAN サービスDHCPv4、DHCPv6、RA、DNS、NTP
経路静的経路、ポリシー経路、EgressRoutePolicy、ヘルスチェック
セキュリティ3 ロールのファイアウォール、ゲストモード、拒否ログ
オーバーレイWireGuard、Tailscale 連携、VXLAN の土台、VRF
運用Web 管理画面、routerctl、OpenTelemetry、ログストア
初期構築パッケージ、sysctl プロファイル、systemd ユニット、ライブ ISO

routerd が扱う範囲は、両端がかなり離れています。

  • 仮想 SDN / VNET 間のルーティング: Proxmox VE SDN、WireGuard オーバーレイ、VRF、VXLAN 実験、ラボ用のポリシー経路をつなぐルーター VM です。
  • ディスクレス PC ルーター: 小型 x86 mini PC がライブ ISO から起動し、USB から router.yaml を復元し、ログを RAM に保持し、物理 LAN を提供します。

この両端を同じ設定問題として扱うルータープロジェクトは多くありません。routerd は、ここを同じ問題として扱います。違いは主に生成されるホスト成果物であって、意図のモデルではありません。

範囲が広いことには意味があります。ルーターの障害は、機能どうしの境界で起きやすいからです。DNS の選択が DHCPv6 の情報オプションに依存することもあれば、DS-Lite トンネルが特定の上流でしか解決できない AFTR レコードに依存することもあります。経路は、ヘルスチェックが成功してからプライマリになるべきです。routerd は、こうした関係を 1 つのリソースグラフに置きます。

シェルスクリプトとの違い

シェルスクリプトは始めやすい一方で、後から監査しにくくなります。「どのコマンドを実行したか」は分かっても、「いま存在すべき状態」が残らないためです。

routerd は、望ましい状態を YAML に置き、観測した状態を保存し、イベントを発行します。結果は API、CLI、Web 管理画面から確認でき、差分、世代、実トラフィックの調査を進めやすくなります。

アプライアンスファームウェアとの違い

アプライアンスのファームウェアは、用途が UI に合う場合は便利です。一方で、DS-Lite、PPPoE フォールバック、ローカル DNS、独自のファイアウォール、OpenTelemetry、ラボ用オーバーレイなどを細かく組み合わせると難しくなります。

routerd は、それらをリソースとして扱います。UI は読み取りと調査のためにあり、設定変更は CLI と YAML を正とします。

Kubernetes 型コントローラーとの違い

routerd は、リソースとコントローラーの考え方を借りています。ただし、クラスターは必要ありません。境界はホストであり、調整(リコンサイル)の対象はカーネル、ローカルデーモン、ローカルファイルです。

この形により、家庭用ルーターとして扱える小ささを保ちながら、DHCP、DNS、トンネル、ヘルスチェック、経路、ファイアウォールログ、テレメトリをイベント駆動で連携できます。

非目標

routerd は、現時点では次を目指しません。

  • ホスト型 SDN コントローラー
  • リモートプラグインのマーケットプレイス
  • 汎用のファイアウォール言語
  • すべてのエンタープライズルーター機能の置き換え
  • GUI 優先の設定システム

routerd は、広いクリック式の管理画面よりも、明示的な YAML、ローカル制御、質の高い運用情報を重視します。