Rocky Linux 9におけるFRRouting 9.xを用いたOSPFv3とBGPデュアルスタック構築――ECMP負荷分散の実務設計
1. FRRouting 9.xのアーキテクチャ刷新とLinuxカーネル連携
FRR(FRRouting)は、Quaggaからフォークした極めてアクティブなルーティングデーモン群であり、最新の9.x系ではマルチスレッド化が進展し、100万経路を超えるフルルートBGPテーブルの収容時でもBGPテーブル計算の遅延が劇的に短縮されている。また、LinuxカーネルのNetlinkインターフェース(FPM: Forwarding Plane Manager)との連携が強化され、ハードウェアオフロード(SwitchDev)やeBPF/XDPとの親和性が格段に向上している。
Rocky Linux 9(RHEL 9クローン)では、デフォルトでsystemdおよびNetworkManagerと統合されており、ルーティングプロトコルデーモン(zebra、bgpd、ospf6dなど)を安全かつ堅牢に分離実行することが可能である。
2. インストールとデーモン有効化手順
Rocky Linux 9公式リポジトリまたはFRR公式RPMリポジトリから最新の安定板パッケージを導入する。インストール後、/etc/frr/daemons を編集し、必要なデーモンを有効化する。
# FRRのインストール dnf install -y frr frr-pythontools # /etc/frr/daemons の編集 zebra=yes bgpd=yes ospfd=no ospf6d=yes bfdd=yes
設定保存後、systemctl enable --now frr を実行してサービスを起動する。管理CLIツールである vtysh を通じて、シスコライクな単一シェルから全ルーティングデーモンを一元制御できる。
3. OSPFv3による内部IGP基盤とIPv4/IPv6デュアルスタック
データセンター内のFabricネットワークにおいて、Leaf-Spine間のLoopback到達性を担保するためにOSPFv3を採用する。OSPFv3(RFC 5838)は単一のプロトコルインスタンス上でIPv4およびIPv6アドレスファミリを同時に広告可能であり、設定の重複とプロトコルオーバーヘッドを最小限に抑制できる。
router ospf6 router-id 10.254.0.11 address-family ipv6 unicast redistribute connected exit-address-family address-family ipv4 unicast redistribute connected exit-address-family interface vlan100 ipv6 ospf6 network point-to-point ipv6 ospf6 instance-id 0
4. BGPマルチホーム接続とECMP(等コストマルチパス)の実務調律
対外トランジット回線およびIX接続において、2系統以上の上流回線へトラフィックを均等に分散するために、BGPマルチパス(ECMP)を設定する。FRRでは maximum-paths 4 を指定することで、同一ASパス長・同一MEDの経路に対して等コストマルチパスルーティングを適用できる。
router bgp 65001 bgp router-id 10.254.0.11 no bgp default ipv4-unicast neighbor 192.0.2.1 remote-as 64512 neighbor 192.0.2.1 description UPSTREAM_CARRIER_A neighbor 198.51.100.1 remote-as 64513 neighbor 198.51.100.1 description UPSTREAM_CARRIER_B ! address-family ipv4 unicast neighbor 192.0.2.1 activate neighbor 198.51.100.1 activate maximum-paths 4 exit-address-family
同時に、Linuxカーネル側のsysctlパラメータにおいて net.ipv4.fib_multipath_hash_policy=1(L4ポート番号を含むハッシュ計算)を設定し、フロー単位での均等なパケット分散を実現することが必須となる。