🍣
FRRouting を cloud-init で構成する
Azure Route Server (ARS) との peer まで
自動化できてしまったのでこちらの方がいいかもしれない。
FRRouting を cloud-init で構成する
FRRouting の install を cloud-init でできるだけ省力化しようということです。
Bicep ファイルとしては、NVA にするため NIC の設定として enableIPForwarding を true にします。
cloud-init では以下の作業が行われます。
-
write_filesmodule で、投入する予定の config を一度/tmp/frr.confに書き出しておきます -
run_cmdmodule で、OS のnet.ipv4.ip_forwardを有効化します -
run_cmdmodule で FRRouting を install した後、/etc/frr/daemonsを書換え、cp /tmp/frr.conf /etc/frr/frr.confによって投入する予定の config を正しい位置に配置し、systemctl restart frrして変更を反映させます
#cloud-config
packages_update: true
packages_upgrade: true
write_files:
- path: /tmp/frr.conf
content: |
frr version 8.3.1
frr defaults traditional
hostname vm-hub00
log syslog informational
no ipv6 forwarding
service integrated-vtysh-config
!
ip route 10.0.210.0/24 10.0.0.1
!
runcmd:
- sed -i.org 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/' /etc/sysctl.conf
- sysctl -p
- curl -s https://deb.frrouting.org/frr/keys.asc | apt-key add -
- FRRVER="frr-stable"
- echo deb https://deb.frrouting.org/frr $(lsb_release -s -c) $FRRVER | tee -a /etc/apt/sources.list.d/frr.list
- apt update && apt -y install frr frr-pythontools
- sed -i.org 's/bgpd=no/bgpd=yes/' /etc/frr/daemons
- cp /tmp/frr.conf /etc/frr/frr.conf
- systemctl restart frr
参考実装はこちらです。
Discussion