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

位置づけ

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、ローカル制御、 高品質な運用情報を重視します。