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

適用と生成

routerd の validate、plan、dry-run、apply、render が同じ有効リソースグラフを使う流れ

routerd には、日常の運用でよく使う操作がいくつかあります。 このページでは、ドキュメント内で使う言葉をそろえて説明します。

検証する

routerctl validate は YAML の形を確認します。 Kind 名、必須フィールド、値の範囲、明らかな依存関係の誤りを検出します。

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

計画を見る

routerctl plan は、ホストに対して何をしようとしているかを表示します。 本番ルーターへ適用する前に、管理用の接続が切れないか、予期しない経路変更がないかを確認できます。

routerctl plan --config /usr/local/etc/routerd/router.yaml

予行実行する

--dry-run は、ホストを変更せずに適用の流れだけを確認します。実際に変わる箇所を事前に把握できます。

routerctl apply --config /usr/local/etc/routerd/router.yaml --dry-run

適用する

routerctl apply は、一度きりのホスト操作です。意図を検証し、必要に応じてホストの現在状態を観測し、生成した成果物を書き出し、状態を記録して終了します。長時間動くデーモンのライフサイクルは管理しません。管理対象デーモンの起動・有効化・再起動・再読み込みは routerd serve が担当します。

sudo routerctl apply --config /usr/local/etc/routerd/router.yaml
sudo routerd serve --config /usr/local/etc/routerd/router.yaml

生成する

ドキュメント内の「生成」は、routerd が dnsmasq 設定、nftables 設定、systemd ユニット、NixOS 設定などのホスト向けファイルを組み立てることを指します。 生成しただけでホストが変わるとは限りません。 実際に反映するかどうかは、適用処理と予行実行の指定で決まります。

現在の routerd では、dnsmasq は DNS 応答を担当しません。 dnsmasq 向けには、DHCPv4、DHCPv6、中継、RA の設定だけを生成します。 DNS の待ち受け、ローカルゾーン、条件付き転送、暗号化 DNS は DNSResolver が扱います。 DNSResolverrouterd-dns-resolver の実行設定です。

調整する

常駐モードでは、routerd はイベントを受け取り、必要なリソースを再評価します。 この「意図と現在状態の差を縮める処理」を、このドキュメントでは調整(リコンサイル)と呼びます。 たとえば DHCPv6-PD の Renew 後にプレフィックスが変わると、LAN アドレス、RA、DNS 応答、DS-Lite 経路の順に調整が伝わります。