VyOS で経路制御を確認するときは、到達性を作る static route と、経路を選別する prefix-list を分けて考えます。static route は RIB へ経路を追加する設定ですが、prefix-list は route-map やルーティングプロトコルから参照される一致条件であり、それ自体は経路を作りません。
この記事では VyOS 1.5 を前提に、IPv4 / IPv6 static route、next-hop の到達性、distance による浮動経路、blackhole / reject、RIB / FIB、prefix-list の役割を確認します。アドレスは公開用の例です。
書籍
経路選択、再配送、ルーティングプロトコル、ネットワーク設計の基礎を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
この記事の結論
- static route は宛先プレフィックスと next-hop または出口を定義する
- next-hop へ到達できなければ、設定があっても経路が FIB へ入らないことがある
- distance が小さい経路が優先され、高い distance はバックアップ経路に使える
- blackhole は黙って破棄し、reject は到達不能を返す
- prefix-list は経路を作らず、route-map などが参照する選別条件を作る
- 設定、RIB、FIB、実際の転送結果を分けて確認する
static route と prefix-list の責務
名前が似ていても、static route と prefix-list は別の層を扱います。
| 設定 | 役割 | 単独で起きること |
|---|---|---|
| static route | 宛先への経路を作る | 条件を満たせば RIB / FIB へ入る |
| prefix-list | プレフィックスを permit / deny する | 参照されるまで転送や広報は変わらない |
| route-map | 一致条件と属性変更を組み合わせる | 適用先から参照されるまで動作しない |
| policy route / PBR | パケットごとに経路表を選ぶ | 通常の経路情報とは別の転送判断を行う |
IPv4 static route を設定する
次の例では、10.10.0.0/24 宛ての通信を next-hop 192.0.2.1 へ送ります。next-hop へ到達するための connected route または別の有効な経路が必要です。
configure
set protocols static route 10.10.0.0/24 next-hop '192.0.2.1'
commit
save設定が存在しても、next-hop が解決できなければ選択経路や FIB へ入らないことがあります。設定行、RIB、next-hop への到達性を分けて確認します。
distance でバックアップ経路を作る
同じ宛先に複数の next-hop を設定し、distance で優先順位を付けられます。値が小さい経路が優先され、primary が利用できなくなったときに高い distance の経路が候補になります。
configure
set protocols static route 10.20.0.0/24 next-hop '192.0.2.1' distance '10'
set protocols static route 10.20.0.0/24 next-hop '198.51.100.1' distance '200'
commit
savenext-hop が IP として応答しないだけでは経路が自動的に消えない構成もあります。障害検知まで必要な場合は、インターフェイス状態、BFD、上位の failover 設計を合わせて検討します。
IPv6 static route を設定する
IPv6 は route6 配下へ設定します。IPv4 と IPv6 の経路は別々に存在するため、デュアルスタックでは片方だけ設定して終わらせません。
configure
set protocols static route6 2001:db8:20::/64 next-hop '2001:db8:1::1'
commit
saveblackhole と reject を使い分ける
blackhole は一致したパケットを黙って破棄します。reject は送信元へ到達不能を返します。集約経路の漏出防止や、より具体的な経路が消えたときのフォールバックとして使えます。
configure
set protocols static route 10.30.0.0/16 blackhole distance '254'
set protocols static route 10.40.0.0/16 reject distance '254'
commit
saveblackhole や reject も static route です。OSPF や BGP へ static route を再配送する場合、意図せず広報対象へ入らないよう、route-map と prefix-list で選別します。
prefix-list で完全一致を定義する
次は、再配送を許可する IPv4 と IPv6 のプレフィックスを定義する例です。prefix-list を作成しても RIB や FIB へ経路は追加されません。
configure
set policy prefix-list PUBLISH-STATIC-V4 rule 10 action 'permit'
set policy prefix-list PUBLISH-STATIC-V4 rule 10 prefix '10.10.0.0/24'
set policy prefix-list6 PUBLISH-STATIC-V6 rule 10 action 'permit'
set policy prefix-list6 PUBLISH-STATIC-V6 rule 10 prefix '2001:db8:20::/64'
commit
saveprefix-list が定義され、どの rule にも一致しない場合は deny として扱われます。配下のより具体的な経路まで含める場合は、ge と le でプレフィックス長の範囲を明示します。
RIB と FIB を確認する
RIB は設定や動的ルーティングから学習した経路候補を保持し、選択された経路が転送に使われます。経路表示の > は選択経路、* は FIB へ入った経路を示します。
show ip route static
show ip route 10.10.0.0/24
show ipv6 route static
show ipv6 route 2001:db8:20::/64
show configuration commands | match 'protocols static'
show configuration commands | match 'prefix-list'経路が使われない場合の切り分け
| 症状 | 確認する場所 | 判断 |
|---|---|---|
| 設定はあるが RIB にない | next-hop 到達性、interface 状態 | next-hop を解決できるか確認する |
| RIB に複数経路がある | distance と選択記号 | 最小 distance が選ばれているか確認する |
| RIB にあるが転送されない | FIB 記号、Firewall、neighbor | 経路選択後の転送要素を確認する |
| バックアップへ切り替わらない | primary route の生存判定 | リンク状態や BFD の条件を確認する |
| blackhole へ吸い込まれる | より具体的な経路 | longest prefix match と経路消失を確認する |
| prefix-list が効かない | route-map などの適用先 | prefix-list が参照されているか確認する |
まとめ
VyOS の static route は到達性を作り、prefix-list は経路を選ぶ条件を作ります。next-hop、distance、blackhole / reject、IPv4 / IPv6 を目的に応じて設定し、RIB と FIB で実際に選ばれた経路を確認します。
prefix-list は単独では転送を変えません。OSPF 再配送や BGP 制御へ使う場合は、route-map と適用先まで含めて確認します。

