STATIC is a daemon that handles the installation and deletion of static routes.
Default configuration file for staticd is
staticd.conf. The typical
staticd.conf is /etc/frr/staticd.conf.
If the user is using integrated config, then
staticd.conf need not be
present and the
frr.conf is read instead.
If the user has not fully upgraded to using the staticd.conf and still has
a non-integrated config with zebra.conf holding the static routes, staticd
will read in the
zebrad.conf as a backup.
STATIC supports all the common FRR daemon start options which are documented elsewhere.
Static Route Commands¶
Static routing is a very fundamental feature of routing technology. It defines a static prefix and gateway, with several possible forms.
- ip route NETWORK GATEWAY [DISTANCE] [table TABLENO] [nexthop-vrf VRFNAME] [vrf VRFNAME]¶
- ip route NETWORK IFNAME [DISTANCE] [table TABLENO] [nexthop-vrf VRFNAME] [vrf VRFNAME]¶
- ip route NETWORK GATEWAY IFNAME [DISTANCE] [onlink] [table TABLENO] [nexthop-vrf VRFNAME] [vrf VRFNAME]¶
- ip route NETWORK (Null0|blackhole|reject) [DISTANCE] [table TABLENO] [nexthop-vrf VRFNAME] [vrf VRFNAME]¶
- ipv6 route NETWORK [from SRCPREFIX] GATEWAY [DISTANCE] [table TABLENO] [nexthop-vrf VRFNAME] [vrf VRFNAME]¶
- ipv6 route NETWORK [from SRCPREFIX] IFNAME [DISTANCE] [table TABLENO] [nexthop-vrf VRFNAME] [vrf VRFNAME]¶
- ipv6 route NETWORK [from SRCPREFIX] GATEWAY IFNAME [DISTANCE] [onlink] [table TABLENO] [nexthop-vrf VRFNAME] [vrf VRFNAME]¶
- ipv6 route NETWORK [from SRCPREFIX] (Null0|blackhole|reject) [DISTANCE] [table TABLENO] [nexthop-vrf VRFNAME] [vrf VRFNAME]¶
NETWORK is destination prefix with a valid v4 or v6 network based upon initial form of the command.
GATEWAY is the IP address to use as next-hop for the prefix. Currently, it must match the v4 or v6 route type specified at the start of the command.
IFNAME is the name of the interface to use as next-hop. If only IFNAME is specified (without GATEWAY), a connected route will be created.
When both IFNAME and GATEWAY are specified together, it binds the route to the specified interface. In this case, it is also possible to specify
onlinkto force the kernel to consider the next-hop as “on link” on the given interface.
Alternatively, the gateway can be specified as
blackholeto create a blackhole route that drops all traffic. It can also be specified as
rejectto create an unreachable route that rejects traffic with ICMP “Destination Unreachable” messages.
TABLENO is an optional parameter for namespaces that allows you to create the route in a specified table associated with the vrf namespace.
tablewill be rejected if you are not using namespace based vrfs.
vrfVRFNAME allows you to create the route in a specified vrf.
nexthop-vrfVRFNAME allows you to create a leaked route with a nexthop in the specified VRFNAME.
nexthop-vrfcannot be currently used with namespace based vrfs.
The IPv6 variant allows the installation of a static source-specific route with the SRCPREFIX sub command. These routes are currently supported on Linux operating systems only, and perform AND matching on packet’s destination and source addresses in the kernel’s forwarding path. Note that destination longest-prefix match is “more important” than source LPM, e.g.
2001:db8:1::/64 from 2001:db8::/48will win over
2001:db8::/48 from 2001:db8:1::/64if both match.
Multiple nexthop static route¶
To create multiple nexthops to the same NETWORK, just reenter the same network statement with different nexthop information.
ip route 10.0.0.1/32 10.0.0.2 ip route 10.0.0.1/32 10.0.0.3 ip route 10.0.0.1/32 eth0
If there is no route to 10.0.0.2 and 10.0.0.3, and interface eth0 is reachable, then the last route is installed into the kernel.
If zebra has been compiled with multipath support, and both 10.0.0.2 and 10.0.0.3 are reachable, zebra will install a multipath route via both nexthops, if the platform supports this.
router> show ip route S> 10.0.0.1/32 [1/0] via 10.0.0.2 inactive via 10.0.0.3 inactive * is directly connected, eth0
ip route 10.0.0.0/8 10.0.0.2 ip route 10.0.0.0/8 10.0.0.3 ip route 10.0.0.0/8 null0 255
This will install a multihop route via the specified next-hops if they are reachable, as well as a high-distance blackhole route, which can be useful to prevent traffic destined for a prefix to match less-specific routes (e.g. default) should the specified gateways not be reachable. E.g.:
router> show ip route 10.0.0.0/8 Routing entry for 10.0.0.0/8 Known via "static", distance 1, metric 0 10.0.0.2 inactive 10.0.0.3 inactive Routing entry for 10.0.0.0/8 Known via "static", distance 255, metric 0 directly connected, Null0
Also, if the user wants to configure a static route for a specific VRF, then
a specific VRF configuration mode is available. After entering into that mode
vrf VRF the user can enter the same route command as before,
but this time, the route command will apply to the VRF.
# case with VRF configure vrf r1-cust1 ip route 10.0.0.0/24 10.0.0.2 exit-vrf
SR-TE Route Commands¶
It is possible to specify a route using a SR-TE policy configured in Zebra.
e.g. to use the SR-TE policy with endpoint 18.104.22.168 and color 123 to reach the network 22.214.171.124/24:
ip route 126.96.36.199/24 188.8.131.52 color 123