要求は一行の変更として届く——あるアドレスをブラックホール化する。テナントコンテキスト内で Null0 へのホストルートを追加すると、プレフィックスは期待どおりローカルテーブルから消え、そこから質問が始まる。ルートは箱から出たのか。遠端の VTEP は破棄したのか、それとも単に到達性を失ったのか。別のテナントが影響を受けていないか。

正しいローカルのスタティックルートが答えるのは、そのうち最初の問いだけである。だからブラックホール化は、実際には一つのコマンドではなく、確認すべき三つの結果なのだ。

その変更が実際に生み出すべきもの

まず三つの結果を書き出す。対象テナントは宛先をローカルで破棄しなければならない。エクスポートできるのは許可されたルートだけで、ほかのものは一緒に運ばれてはならない。受信側の各 VTEP は、別の経路ではなく意図した破棄動作を選ばなければならない。

各結果にはそれぞれの証拠があり、どれも他の結果を含意しない。ローカルの Null0 ルートはローカル破棄を生み、再配布がなければ何もエクスポートしない。合意した community のない再配布ルートは通常のプレフィックスとして届き、転送される。受信ポリシーのない community は完全に無視されうる。

結果を先に書くことは、よくある失敗からも守ってくれる。宛先が無関係な理由ですでに到達不能だったために、成功したように見える変更である。両者をどう見分けるかを説明できないなら、受け入れテストはまだ設計されていない。

ローカルの一文が担うのは前半だけ

10.4(x) 系列の NX-OS では、null ルートは VRF 名を指定する単一のコマンドではなく、テナントの VRF コンテキストの内側に置かれる。断片は短く、決して完全な EVPN 設定ではない。

vrf context TENANT_A
  ip route 192.0.2.10/32 Null0

このアドレスはドキュメント用プレフィックスであり、対象ではない。VRF 名がルートコマンド自体の内側に現れる IOS との構文の違いに注意し、何かを貼り付ける前に、実際に運用しているリリースでサポートされる形式を確認すること。

この行は単独では、TENANT_A 内のそのホスト宛てのトラフィックを破棄するだけで、ほかのことは何もしない。ルートにタグを付けず、BGP 用に選択せず、community も設定しない。それらは別個の設定判断であり、それぞれが、変更が動かないほど狭すぎるか、安全でないほど広すぎるかになりうる箇所である。

ローカル破棄は同じ宛先への正当なトラフィックにも影響する。実ユーザーがまだそのアドレスを必要としているのに、悪用する送信元を一つ止めたいという意図なら、null ルートは誤った道具であり、最初のサポート連絡でそれが分かる。

エクスポートとインポートは別々の合意である

範囲が決まるのは再配布の段階である。対象となるプレフィックスを承認済みの緩和策に限定し、テナント内に留め、起源となるピアを設計上のものに限る。タグ付きのホストルートを一つ運ぶためだけにすべてのスタティックルートを再配布することが、保守作業をルーティング障害に変える道である。

BLACKHOLE community は既知の値についての合意であり、どの隣接機器にも任意のアドレスを破棄させる許可ではない。RFC 7999 はその言葉でこれを記述しており、誰が広告できるかという信頼の境界は実装の詳細ではなく設計の一部である。

受信側には独自の設定が必要である。NX-OS では、タイプ 5 の null ルートは VTEP での route-map 処理を必要とし、それによって破棄動作が選ばれる。これはエクスポート手順とともに文書化されている。正しくタグを付ける送信側とタグを無視する受信側では、適用済みに見えてトラフィックをそのまま転送する変更になってしまう。

そこにいるついでに、route-map の副作用も確認する。新たに制限的なポリシーは無関係なプレフィックスの正当な到達性を抑圧しうるし、その損害はブラックホールより遅れて現れ、原因として結び付けにくい。

挿入の前に撤回を書く

何かを設定する前に、宛先の所有者、理由、承認者、有効期限を記録する。期限のない破棄は、起源を誰も覚えていない恒久的なエントリになり、次にそのアドレスを調べる人はそれをネットワークの通常の一部とみなす。

変更するルートに依存しない独立した管理経路を確保する。緩和策が、装置に到達するために使うアドレスを覆うなら、手間が増えただけの締め出しを作ったことになる。

緩和策を外す正確な操作を名指しし、その解除をラボか、許容できる時間枠で試す。誰も練習していない撤回は手順ではなく計画である。

コマンドの出力ではなく、証拠で受け入れる

意図した VTEP で、選択されたルーティング状態と転送状態を確認する。あわせて、影響を受けないはずの隣接宛先も確認する。他のテナントがプレフィックスをインポートしていないことを確かめる。テナント間の漏れは、保守作業を障害に変える失敗形態だからである。

そのうえで撤回し、通常のルートとサービスが戻ることを検証する。NX-OS EVPN の null ルートガイド(10.4(x) リリース向け)には、ここで説明したタグ付け、再配布、受信ポリシーが記載されており、自分のリリースと突き合わせる基準になる。

関連記事