[Xorp-hackers] Adding static routes with unresolved next-hop router
Atanu Ghosh
atanu@ICSI.Berkeley.EDU
Thu, 12 Aug 2004 16:58:22 -0700
It is the job of the routing protocols to install or remove routes. All
routing protocols are responsible for monitoring the status of the the
next hops. If a next hop transitions between resolvable states the
routing protocol should take the appropriate action (add/delete).
I would say that option d) is the most consistent behaviour. If you
really believe that a common mis-configuration is going to be assigning
an invalid next-hop then b) works too.
Atanu.
>>>>> "Pavlin" == Pavlin Radoslavov <pavlin@icir.org> writes:
Pavlin> I have a question about the desired behavior of adding static routes
Pavlin> to StaticRoute.
Pavlin> Currently, if a static route is added to StaticRoutes, and if the
Pavlin> next-hop router toward the destination is unresolvable (e.g., the
Pavlin> network interface toward the destination is DOWN, or simply there is
Pavlin> no network interface that connects us to that router), then the
Pavlin> routing entry is saved internally (inside StaticRoutes), and the
Pavlin> "add" operation returns OK. However, StaticRoutes does NOT send that
Pavlin> route to the RIB. If the network interface toward that next-hop
Pavlin> router comes up, then StaticRoutes will send that route to RIB.
Pavlin> The reasoning behind the above behavior is that StaticRoutes can be
Pavlin> configured on startup (or on the fly) with a number of routes, even
Pavlin> though some of them may not be used because some of the network
Pavlin> interfaces are intentionally down. Once a network interface becomes
Pavlin> UP, then the corresponding static routes that use that interface are
Pavlin> automatically installed.
Pavlin> In addition, if we look into StaticRoutes as a simple routing
Pavlin> protocol, then it should be taking into account the network
Pavlin> interface status and should install routes into RIB only if those
Pavlin> routes are valid.
Pavlin> However, if there is an error in the configuration such as a typo in
Pavlin> the IP address of a next-hop router, then such route will be
Pavlin> installed in StaticRoutes (only), and no error will be returned to
Pavlin> the user. Such behavior may be a source of a confusion, hence I'd
Pavlin> like to ask for opinions what the right solution should be.
Pavlin> Below are some suggestions:
Pavlin> a) If the next-hop router toward the destination is not resolvable,
Pavlin> then always return an error. Note that may not be a practical
Pavlin> solution, because on startup we may have to wait until StaticRoutes
Pavlin> receive all network interface information from the FEA before we
Pavlin> can add any static routes to it.
Pavlin> b) If the next-hop router toward the destination is not resolvable,
Pavlin> then StaticRoutes should print a warning, but it should still
Pavlin> return OK (if we don't return OK, then the rtrmgr will fail to
Pavlin> start StaticRoutes).
Pavlin> c) If the next-hop router toward the destination is not resolvable,
Pavlin> then the StaticRoutes should still add the route to the RIB, and
Pavlin> then let the RIB deal with resolving the next-hop router
Pavlin> whenever the status of the related network interface changes.
Pavlin> Doing something like this may require changes to the RIB.
Pavlin> d) Don't change the current behavior, but document it.
Pavlin> Comments?
Pavlin> Pavlin
Pavlin> _______________________________________________
Pavlin> Xorp-hackers mailing list
Pavlin> Xorp-hackers@icir.org
Pavlin> http://mailman.ICSI.Berkeley.EDU/mailman/listinfo/xorp-hackers