コンテンツにスキップ

自宅ネットワークBGP化メモ

ここのバックエンドはGitなので設定ファイルのバージョン管理を兼ねている。

いずれはメッシュ化したる!!!!イエア!!!!

誰かの役に立つかもしてないからPublicなここにべちょっと貼り付ける!

ほぼ全部シスコ風コンフィグなのでメモっておかないと取り違えてしまいそうだ。

これが現状のコアスイッチ。

k8sのCiliumとBGPを張ったりしている。

カンで書いてるので自分でも内容をあんまり把握してねえ

  • show ip bgp neighbors 192.168.100.1 routes
  • show ip bgp summary
  • show ip route bgp

いくらなんでも長すぎるのでBGP部分だけ抜粋

  • redistribute connectedで直結しているルートを公表する。
  • redistribute staticでスタティックルートを公表する。
  • neighbor k8scluster01 default-originate k8sに対してicxがデフォルトルートであると伝える
router bgp
local-as 65500
neighbor k8scluster01 peer-group
neighbor k8scluster01 remote-as 65501
neighbor 192.168.100.1 remote-as 65502
neighbor 192.168.100.51 peer-group k8scluster01
neighbor 192.168.100.52 peer-group k8scluster01
neighbor 192.168.100.53 peer-group k8scluster01
neighbor 192.168.100.54 peer-group k8scluster01
address-family ipv4 unicast
redistribute connected
redistribute static
neighbor k8scluster01 default-originate
address-family ipv6 unicast
!

Ingress冗長化目当てで昔組んでそれっきりなのでなるべく触らない。

とりあえずコアスイッチからデフォルトルートもらってくる感じ?知らんけど

サンプルコピペなので内容は把握してない!動いているからヨシ!😸

apiVersion: cilium.io/v2alpha1
kind: CiliumBGPClusterConfig
metadata:
name: cilium-bgp
spec:
nodeSelector:
matchLabels:
rack: rack0
bgpInstances:
- name: "65501"
localASN: 65501
peers:
- name: "peer-65500"
peerASN: 65500
peerAddress: 192.168.100.254
peerConfigRef:
name: "cilium-peer"
---
apiVersion: cilium.io/v2alpha1
kind: CiliumBGPPeerConfig
metadata:
name: cilium-peer
spec:
gracefulRestart:
enabled: true
restartTimeSeconds: 15
families:
- afi: ipv4
safi: unicast
advertisements:
matchLabels:
advertise: "bgp"
---
apiVersion: cilium.io/v2alpha1
kind: CiliumBGPAdvertisement
metadata:
name: bgp-advertisements
labels:
advertise: bgp
spec:
advertisements:
- advertisementType: "PodCIDR"
attributes:
communities:
standard: ["65000:99"]
- advertisementType: "Service"
service:
addresses:
- LoadBalancerIP
selector:
matchExpressions:
- { key: dummy, operator: NotIn, values: ["never-used-value"] }
attributes:
communities:
standard: ["65000:100"]
---
apiVersion: "cilium.io/v2alpha1"
kind: CiliumLoadBalancerIPPool
metadata:
name: "ip-pool"
spec:
blocks:
- cidr: 192.168.190.0/24

ここが対外接続用(デフォルトルート)

従来はコアスイッチ行きのスタティックルートが大量に書き連ねられていたのでこれをBGP化し管理コスト軽減を図る。

OpenWrtのコンソールから撃つ用

  • vtysh -c “show running-config”
  • vtysh -c “show bgp summary”
  • ip route show proto bgp

route-map とかあるので全部掲載

どうせローカルのvtyshからしか触れないし

  • default-originate でコアスイッチに対して自身がデフォルトルートであると公表する。
  • コアスイッチ逝きだけ許可する設定を念のため仕込んでおけとAIが言うので仕込んでる(route-map MAP-TO-CORE out)
  • 書かないとshow bgp summaryに(Policy)と出てきて何も機能しないのでコアスイッチからの経路は全部信じて受け取る設定を追加している(route-map PERMIT-ALL in)
frr version 10.4.1
frr defaults traditional
hostname OpenWrt
log syslog
!
ip prefix-list ALLOW-TO-CORE seq 5 permit 192.168.0.0/16 ge 24 le 32
!
route-map MAP-TO-CORE permit 10
match ip address prefix-list ALLOW-TO-CORE
exit
!
route-map MAP-TO-CORE deny 20
exit
!
route-map PERMIT-ALL permit 10
exit
!
password zebra
!
router bgp 65502
bgp router-id 192.168.100.1
neighbor 192.168.100.254 remote-as 65500
!
address-family ipv4 unicast
neighbor 192.168.100.254 default-originate
neighbor 192.168.100.254 route-map PERMIT-ALL in
neighbor 192.168.100.254 route-map MAP-TO-CORE out
exit-address-family
exit
!
access-list vty seq 5 permit 127.0.0.0/8
access-list vty seq 10 deny any
!
line vty
access-class vty
exit
!
end

まだ設定未投入

Oracle Cloudと宅内を拠点間VPNでIPSec直結してルートを交換する。

まだ買ってない