Thanks for the question. Let me explain the actual use case in a bit more detail.
I have two VRFs:
-
RED - a customer VRF.
-
BLUE - an upstream VRF.
The BLUE VRF contains multiple VLAN interfaces (for example bond0.100, bond0.101, etc.), each connected to a different upstream provider. Several Full View BGP sessions are established in this VRF, so BLUE contains the complete Internet routing table.
My goal is simply to make the customer VRF (RED) use BLUE as its default gateway.
Initially, I considered using L2VPN route leaking between the VRFs. However, since BLUE contains around one million routes, importing even a single route from BLUE into RED takes approximately three minutes during every commit. That makes this approach impractical.
The next logical solution was to install a static default route from RED into BLUE. Native FRRouting already provides exactly this functionality:
vrf RED
ip route 0.0.0.0/0 BLUE nexthop-vrf BLUE
This works perfectly because the route points to the VRF itself, not to any particular interface inside that VRF.
The suggestion to use something like:
set vrf name RED protocols static route 0.0.0.0/0 interface bond0.100 vrf BLUE
would technically work, but it introduces an unnecessary dependency on a specific VLAN interface.
Today the default route might use bond0.100, but tomorrow that VLAN may be removed, replaced, or migrated to another uplink. In that case, the static route would also need to be modified, causing unnecessary configuration changes and potentially interrupting connectivity.
From my perspective, the default route should depend only on the existence of the BLUE VRF, not on which interfaces currently belong to it. The interfaces inside BLUE are implementation details and may change over time, while the VRF itself remains the routing domain that should be used.
This is exactly how FRRouting already behaves. I verified it by configuring the route directly in vtysh on VyOS:
vrf RED
ip route 0.0.0.0/0 BLUE nexthop-vrf BLUE
The route is installed correctly and works exactly as expected, without any veth interfaces or interconnecting IP addresses.
Because of that, it appears that the limitation is not in FRRouting itself, but in the current VyOS CLI, which does not expose the existing nexthop-vrf functionality.
For this reason, I think it would be valuable if the VyOS CLI could support configuring a static route directly toward a VRF interface, matching FRRouting’s native capabilities.