DOCKER: FRR BGP (5)
前回まででOracle Cloud, Raspberry PI 4, Cisco C841Mを用いたBGP接続を完了した。接続は4byte ASを用いてすべてeBGPで接続している。WAN区間はWireGuradによる暗号化を行っているがRaspberry PIの性能的には問題なさそうである。
WAN区間は次のように冗長的に拠点間を接続した構成としている。実際にはOpenVPNによる拠点間接続も行っているがここでは割愛。
BGPの設定で最適な経路が選ばれるようになっているが、切断検知は10秒3回となっており、最大40秒と少し長めである。BFD(bidirectional forwarding detection)を導入し、WAN区間でより素早く切断検知が出来るようにする。
FRRとCiscoとではBFDの設定が少し異なる。WAN区間にはCisco機を使っていないので今回はFRRの設定だけを記載する。例としてOracle Cloudの設定は次のようになる。
! Oracle Cloud FRR CONFIG (BFD)
!
bfd
profile wireguard
detect-multiplier 5
transmit-interval 200
receive-interval 200
!
peer 172.27.5.1
profile wireguard
no shutdown
!
peer 172.27.5.7
profile wireguard
no shutdown
!
peer 172.27.5.9
profile wireguard
no shutdown
!
!
対向も同様に設定し、BFDが動いていることを確認する。
# show bfd peers brief
Session count: 3
SessionId LocalAddress PeerAddress Status
========= ============ =========== ======
42792983 172.27.5.5 172.27.5.1 up
1752522372 172.27.5.5 172.27.5.9 up
1835029649 172.27.5.5 172.27.5.7 up
BFDがupしていることを確認し、BGPにBFDを参照するように設定を行う。
! Oracle Cloud FRR CONFIG (BGP BFD)
!
router bgp 4210030001
no bgp ebgp-requires-policy
timers bgp 10 30
neighbor 172.27.5.1 remote-as 4210010001
neighbor 172.27.5.1 bfd
neighbor 172.27.5.1 update-source 172.27.5.5
neighbor 172.27.5.7 remote-as 4220010001
neighbor 172.27.5.7 bfd
neighbor 172.27.5.7 update-source 172.27.5.5
neighbor 172.27.5.9 remote-as 4220020001
neighbor 172.27.5.9 bfd
neighbor 172.27.5.9 update-source 172.27.5.5
!
今回構成ではRaspberry piの冗長化などを行っていないのであまり効果がないが、GW機器の冗長化やバックアップでのモバイル経路などをBGPで動的に切り替えることが安価に構築出来る時代になった。Oracle Cloudでは無料で2インスタンスを作ることが出来るのでこちらを冗長的に使うのも面白い。ただし、OUTBOUNDの通信は一定の範囲内で無料なので高トラフィックが流れないように注意して利用する必要がある。この辺りは他の外資系クラウドとも同じなので使い方によっては通信の従量課金を採用していない基盤を選択したほうが良い。