DOCKER: FRR BGP (4)
Cisco機 (C841M)へのBGP設定を行い、Raspberry PI4 (FRR)とのBGP接続を行う。Raspberry PI4はOracle CloudとBGPで接続済みなので、C841MにOracle Cloudで作ったDockerのセグメントがAdvertiseされるようになる。
前回までのFRRとは異なりCiscoなのでIOSへの設定になるが設定はほとんど同じになる。まずはprefix-listとroute-mapで再配布の設定を作る。
! Cisco Config (ip prefix-list, route-map)
!
ip prefix-list BGP-RED-CON-LIST seq 5 deny 192.168.19.0/24 le 32
ip prefix-list BGP-RED-CON-LIST seq 10 deny 192.168.0.0/20 le 32
ip prefix-list BGP-RED-CON-LIST seq 100 permit 192.168.16.0/20 le 32
!
ip prefix-list BGP-RED-STATIC-LIST seq 5 deny 192.168.19.0/24 le 32
ip prefix-list BGP-RED-STATIC-LIST seq 10 deny 192.168.0.0/20 le 32
ip prefix-list BGP-RED-STATIC-LIST seq 100 permit 192.168.16.0/20 le 32
!
!
route-map BGP-RED-STATIC permit 10
match ip address prefix-list BGP-RED-STATIC-LIST
!
route-map BGP-RED-CON permit 10
match ip address prefix-list BGP-RED-CON-LIST
!
内部だけで使いたいセグメントや多くのネットワーク機器で初期設定になっているセグメント(192.168.0.0/24や192.168.1.0/24)を含むセグメントは再配布しないように念のためdenyを設定しておく。
BGPの設定はFRRとは少しだけ異なる。update sourceはI/Fを選択可能だが、edge部分のルーターなので省略している。(raspberry piの際はセカンダリIPを使ってBGPのneighbor設定をしたかったので設定が必須だった)
! Cisco Config (BGP)
!
router bgp 4220010002
bgp log-neighbor-changes
timers bgp 10 30
redistribute connected route-map BGP-RED-CON
redistribute static route-map BGP-RED-STATIC
neighbor 192.168.16.3 remote-as 4220010001
無事に設定が完了すれば show ip bgp summaryでneighbor状態が確認できる。
C841M#show ip bgp sum
Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
192.168.16.3 4 4220010001 6694 7294 112 0 0 4d14h 11
show ip route や show ip bgp (show ip bgp topology *)でOracle Cloudのセグメント 172.22.100.0/24を受け取れているかを確認する。
C841M#show ip route bgp
172.18.0.0/24 is subnetted, 2 subnets
B 172.18.3.0 [20/0] via 192.168.16.3, 00:16:37
B 172.18.20.0 [20/0] via 192.168.16.3, 00:16:37
172.22.0.0/24 is subnetted, 2 subnets
B 172.22.100.0 [20/0] via 192.168.16.3, 00:23:21
172.27.0.0/24 is subnetted, 3 subnets
B 172.27.1.0 [20/0] via 192.168.16.3, 3d22h
B 172.27.5.0 [20/0] via 192.168.16.3, 22:36:42
B 172.27.7.0 [20/0] via 192.168.16.3, 3d23h
B 192.168.32.0/24 [20/0] via 192.168.16.3, 3d23h
B 192.168.36.0/24 [20/0] via 192.168.16.3, 3d23h
B 192.168.37.0/24 [20/0] via 192.168.16.3, 3d23h
B 192.168.40.0/24 [20/0] via 192.168.16.3, 3d23h
ルーティングテーブルにはBGPで受け取った172.22.100.0が採用されていることが確認できる。show ip bgp topologyの抜粋は次。
#show ip bgp
Network Next Hop Metric LocPrf Weight Path
*> 172.22.100.0/24 192.168.16.3 0 4220010001 4210030001 65535 65535 ?
*> 172.27.5.0/24 192.168.16.3 0 0 4220010001 ?
172.22.100.0/24は Oracle CloudでIncompleteとして生成されておりOUT時に65535のASを2回足されている。経路としてはOracle Cloudに設定したAS 421003001、Raspberry PIに設定したAS 4220010001を通って配布されてきたことが確認できる。
現状ではOSFP@OpenVPNとBGP@WireGuardの2通りでルーティング設定を行っているが、eBGPが優先されており、WireGuardを通る経路が使われるネットワークにすることができた。
BGPの設定はWAN区間(WireGuard区間)にBFD (bidirectional forwarding detection)を設定して完了とする。