手当たり次第に書くんだ

飽きっぽいのは本能

VyOS OSPF / OSPFv3 設定 – IPv4 / IPv6 の動的ルーティングを設計する

VyOS で複数ネットワーク、拠点間接続、トンネル、VRF を扱う場合、static route だけでは経路管理が重くなる場面があります。その場合、OSPF / OSPFv3 を使うことで、IPv4 と IPv6 の経路を動的に広報できます。

ただし、VyOS では IPv4 の OSPF と IPv6 の OSPFv3 は別の設定として扱います。デュアルスタック環境では、OSPF と OSPFv3 を同じ設計思想で分けて書き、area、router-id、interface、再配送、確認コマンドを別々に見る必要があります。

この記事では、VyOS 1.5 系で読むことを前提に、OSPF / OSPFv3 の基本設定、area 設計、再配送、route-map、neighbor と経路確認の手順をまとめます。アドレスは公開用の例です。

この記事の結論

  • IPv4 の OSPF と IPv6 の OSPFv3 は別設定として扱う
  • router-id は安定した識別子として明示する
  • area は番号ではなくトポロジの意味で決める
  • 再配送は route-map と prefix-list で対象を絞る
  • 設定後は neighbor、route、database を分けて確認する

OSPF と OSPFv3 の違い

IPv4 の OSPF は network 指定で area に参加させる構成が中心です。一方、OSPFv3 は IPv6 の経路をインターフェイス単位で扱います。IPv4 の area 設定を入れても、IPv6 の経路は広報されません。

項目OSPFOSPFv3
対象IPv4 経路IPv6 経路
参加方法area networkinterface area
確認show ip ospfshow ipv6 ospfv3
経路show ip route ospfshow ipv6 route ospfv3
再配送IPv4 prefix を扱うIPv6 prefix を扱う

router-id を決める

router-id は OSPF 内でルーターを識別する値です。実際にその IPv4 アドレスへ到達できる必要はありませんが、ルーターごとに一意で、変わりにくい値にします。

configure
set protocols ospf parameters router-id '192.0.2.1'
set protocols ospfv3 parameters router-id '192.0.2.1'
set protocols ospf log-adjacency-changes detail
set protocols ospfv3 log-adjacency-changes detail
commit
save

OSPF の基本設定

IPv4 の OSPF では、広報したい IPv4 ネットワークを area に参加させます。バックボーンや拠点間リンク、拠点内ネットワークをどの area に入れるかを先に決めます。

configure
set protocols ospf area 0 network '192.0.2.0/30'
set protocols ospf area 1 network '10.10.0.0/24'
set protocols ospf area 1 network '10.10.10.0/24'
commit
save

OSPFv3 の基本設定

OSPFv3 では、IPv6 の経路を扱うインターフェイスを area に参加させます。トンネル、loopback、拠点内インターフェイスなど、どのインターフェイスで隣接を張るのかを明示します。

configure
set protocols ospfv3 interface tun1000 area '0'
set protocols ospfv3 interface eth1 area '1'
set protocols ospfv3 interface lo area '1'
commit
save

area はトポロジの意味で分ける

OSPF の area は、単に番号を付けるためのものではありません。バックボーン、拠点、トンネル、管理ネットワークなど、ネットワークの構造をどう分けるかを表します。

area用途例考え方
area 0バックボーン、拠点間接続拠点間の中核として扱う
area 1拠点内 LAN拠点や役割単位で分ける
area 10管理ネットワーク管理系経路を分けたい時に使う
トンネルarea 0 または拠点 area経路設計上の位置づけで決める

再配送は絞る

static route や connected route を OSPF に再配送する場合は、route-map で対象を絞る方が安全です。意図しない経路を広報すると、障害時に戻すのが難しくなります。

configure
set policy prefix-list ospf-static-v4 rule 10 action 'permit'
set policy prefix-list ospf-static-v4 rule 10 prefix '10.20.0.0/16'
set policy route-map ospf-from-static rule 10 action 'permit'
set policy route-map ospf-from-static rule 10 match ip address prefix-list 'ospf-static-v4'
set protocols ospf redistribute static route-map 'ospf-from-static'
commit
save
configure
set policy prefix-list6 ospfv3-static-v6 rule 10 action 'permit'
set policy prefix-list6 ospfv3-static-v6 rule 10 prefix '2001:db8:20::/48'
set policy route-map ospfv3-from-static rule 10 action 'permit'
set policy route-map ospfv3-from-static rule 10 match ipv6 address prefix-list 'ospfv3-static-v6'
set protocols ospfv3 redistribute static route-map 'ospfv3-from-static'
commit
save

再配送は便利ですが、経路を増幅する操作でもあります。どの経路を、どのプロトコルへ、どの条件で流すのかを prefix-list と route-map で説明できる状態にします。

確認する

OSPF / OSPFv3 は、設定を入れただけでは完了しません。neighbor が張れているか、経路が入っているか、database に期待した情報があるかを分けて確認します。

show ip ospf neighbor
show ipv6 ospfv3 neighbor
show ip route ospf
show ipv6 route ospfv3
show ip ospf database
show ipv6 ospfv3 database
show configuration commands | match 'protocols ospf'

よくあるつまずき

症状見る場所考え方
IPv4 は流れるが IPv6 が流れないOSPFv3 interfaceOSPF と OSPFv3 は別設定として見る
neighbor が張れないarea、MTU、Firewall隣接条件と通信許可を確認する
経路が増えすぎるredistribute / route-map再配送対象を prefix-list で絞る
トンネル経由だけ不安定tunnel MTU / MSSOSPF だけでなく下位経路を見る
経路の戻りが意図と違うroute table / cost入る経路と戻る経路を両方見る

まとめ

VyOS の OSPF / OSPFv3 は、IPv4 と IPv6 の動的ルーティングを別々に扱いながら、同じ設計思想でそろえることが重要です。area、router-id、interface、再配送、確認コマンドを分けて見ると、どこで経路が生まれ、どこへ広報されるのかを追いやすくなります。

特に拠点間トンネルや複数セグメントを扱う場合、OSPF は便利ですが、雑に再配送すると経路設計が見えなくなります。route-map と prefix-list を組み合わせ、広報する経路を明示するのが基本です。

関連する記事
VyOS OSPF / OSPFv3 設定 – IPv4 / IPv6 の動的ルーティングを設計する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る