#!/usr/bin/env python3 # For FRR to work in VyOS as expected we need a few fixups # # 1. Enable daemons we use in /etc/frr/daemons # 2. Set the VRF backend of Zebra to netns (-n option) in /etc/frr/daemons.conf # Otherwise multiple routing tables for PBR won't work # 3. Create empty configs for daemons with use # That is to make them possible to start on boot before config is loaded # import os daemons = """ zebra=yes bgpd=yes ospfd=yes ospf6d=yes ripd=yes ripngd=yes isisd=yes pimd=no ldpd=yes nhrpd=no eigrpd=yes babeld=no sharpd=no pbrd=no bfdd=yes staticd=yes vtysh_enable=yes zebra_options="-s 90000000 --daemon -A 127.0.0.1 -M snmp" bgpd_options="--daemon -A 127.0.0.1 -M snmp -M rpki -M bmp" ospfd_options="--daemon -A 127.0.0.1 -M snmp" ospf6d_options="--daemon -A ::1 -M snmp" ripd_options="--daemon -A 127.0.0.1 -M snmp" ripngd_options="--daemon -A ::1" isisd_options="--daemon -A 127.0.0.1 -M snmp" pimd_options="--daemon -A 127.0.0.1" ldpd_options="--daemon -A 127.0.0.1" nhrpd_options="--daemon -A 127.0.0.1" eigrpd_options="--daemon -A 127.0.0.1" babeld_options="--daemon -A 127.0.0.1" sharpd_options="--daemon -A 127.0.0.1" pbrd_options="--daemon -A 127.0.0.1" staticd_options="--daemon -A 127.0.0.1" bfdd_options="--daemon -A 127.0.0.1" watchfrr_enable=no valgrind_enable=no """ frr_conf = """ log syslog log facility local7 """ frr_log = '' with open("/etc/frr/daemons", "w") as f: f.write(daemons) with open("/etc/frr/frr.conf", "w") as f: f.write(frr_conf) # Prevent writing logs to /var/log/frr/frr.log. T2061 with open("/etc/rsyslog.d/45-frr.conf", "w") as f: f.write(frr_log)