🍣

FRRouting を cloud-init で構成する

2022/10/24に公開

Azure Route Server (ARS) との peer まで

自動化できてしまったのでこちらの方がいいかもしれない。

https://zenn.dev/skmkzyk/articles/azure-route-server-frrouting

FRRouting を cloud-init で構成する

FRRouting の install を cloud-init でできるだけ省力化しようということです。

Bicep ファイルとしては、NVA にするため NIC の設定として enableIPForwardingtrue にします。

cloud-init では以下の作業が行われます。

  • write_files module で、投入する予定の config を一度 /tmp/frr.conf に書き出しておきます
  • run_cmd module で、OS の net.ipv4.ip_forward を有効化します
  • run_cmd module で 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

参考実装はこちらです。

https://github.com/skmkzyk/bicep-templates/tree/main/20221024_frrouting-cloud-init

Microsoft (有志)

Discussion