I spoke w/ Daniel on the FRR Slack. The issue stemmed from the fact that BGP does not allow route installation from a nexthop that resolves through a default kernel route. Several solutions came to mind: 1) Add a static /32 route that covers the neighbor's ip address 2) Add a route-map that changes the nexthop that resolves through the connected route for the interface that the default route goes out. donald On Sun, Dec 8, 2019 at 12:47 AM Daniel Corbe <daniel@corbe.net> wrote:
I apologize for asking a question which in all probability has a really obvious answer.
I have a freshly installed FRR 7.2 from sources on Alpine Linux. The 'zebra' process is running as id=frr and I have a working BGP session. The issue is, it's not installing routes into the kernel routing table.
Being that zebra and bgpd are running as the 'frr' user, I made sure zebra had cap_net_admin:
# getcap zebra zebra = cap_net_admin+p
My Running config:
# show run Building configuration...
Current configuration: ! frr version 7.2 frr defaults datacenter hostname aagico-alpine-mia no ipv6 forwarding ! router bgp 64225 neighbor vultr peer-group neighbor vultr remote-as 64515 neighbor vultr password xxx neighbor vultr ebgp-multihop 2 neighbor 169.254.169.254 peer-group vultr neighbor 2001:19f0:ffff::1 peer-group vultr ! line vty ! end
/etc/frr/daemons:
# cat /etc/frr/daemons zebra=yes bgpd=yes ospfd=no ospf6d=no ripd=no ripngd=no isisd=no pimd=no ldpd=no nhrpd=no eigrpd=no babeld=no sharpd=no staticd=yes pbrd=no bfdd=yes fabricd=no
# # If this option is set the /etc/init.d/frr script automatically loads # the config via "vtysh -b" when the servers are started. # Check /etc/pam.d/frr if you intend to use "vtysh"! # vtysh_enable=yes zebra_options=" -s 90000000 --daemon -A 127.0.0.1" bgpd_options=" --daemon -A 127.0.0.1" ospfd_options=" --daemon -A 127.0.0.1" ospf6d_options=" --daemon -A ::1" ripd_options=" --daemon -A 127.0.0.1" ripngd_options=" --daemon -A ::1" isisd_options=" --daemon -A 127.0.0.1" 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" staticd_options=" --daemon -A 127.0.0.1" pbrd_options=" --daemon -A 127.0.0.1" bfdd_options=" --daemon -A 127.0.0.1" fabricd_options=" --daemon -A 127.0.0.1"
#MAX_FDS=1024 # The list of daemons to watch is automatically generated by the init script. #watchfrr_options=""
# for debugging purposes, you can specify a "wrap" command to start instead # of starting the daemon directly, e.g. to use valgrind on ospfd: # ospfd_wrap="/usr/bin/valgrind" # or you can use "all_wrap" for all daemons, e.g. to use perf record: # all_wrap="/usr/bin/perf record --call-graph -" # the normal daemon command is added to this at the end.
_______________________________________________ frog mailing list frog@lists.frrouting.org https://lists.frrouting.org/listinfo/frog