Joakim Tjernlund wrote:

On Tue, 2009-01-06 at 16:34 -0700, Dave Katz wrote:

On Jan 6, 2009, at 2:19 PM, Joakim Tjernlund wrote:


The footnote is sort of bogus on three counts. First of all, a router
*must* have an address somewhere, or it has nothing to put in the IP
source address field, can't be managed, and is an incredibly expensive
door stop.  So that bit is redundant.

Obviously an IP address is needed, the key part is that the IP address
should be announced as an host route in the router LSA.


Secondly, there is no explicit
mechanism in the spec for advertising that host route, unless this
sentence is intended to be normative (in which case the "will" should
be a "SHALL".)

What mechanism do you need? It is an impl. detail how you specify
that IP address, if you need one. Will vs. shall is perhaps an error, I can't say, but I don't think the language in Option 1 or Option 2 is any stronger.


Thirdly, if implementations were to actually follow
the other section you mention and do option 1, advertising that host
route is unnecessary because all of the OSPF neighbors will know the
address and advertise it themselves (roundabout, as mentioned earlier,
but it works.)  And that footnote is much narrower than the case we
are talking about, which is that of *any* unnumbered interface,
regardless of whether there are other numbered interfaces or not.

You only have do this iff you just have unnumbered interfaces, no need
to add an extra host route if you already announce one.

I think we've gone in circles here.

If I understood your original posting, you were asking about the meaning/value of the options listed as part of 12.4.1.1. The reason that they are there is to ensure reachability to the remote router itself, if it implements exactly what the spec says to do. If the local router doesn't do Option 1, and the remote router only does exactly what the spec says to do, you will not be able to route to the remote router because nobody will announce reachability to its address.

One can look at the spec and say, "of course I should announce host routes for addresses I think the world might be interested in", and it will work, but the spec never actually says to do that, *except* in the case of a router with no numbered interfaces at all (and burying it in a footnote at the very end of the spec is not a terribly good thing even in that case.)

So a naïve implementor will still have a functional, reachable, manageable network if he implements Option 1 and doesn't advertise any host routes otherwise. This is why Option 1 exists, and why it is normative. If my box is neighbor to the the naïve implementor's box, and I don't do Option 1, and he doesn't have his loopback address or some other address outside of OSPF in a host route (perfectly in- spec), his box is going to be unreachable for management purposes.


I would not say that it is "perfectly in spec" as the spec actually
mentions this case explicitly in that footnote. I guess that the spec
assumes that it is very uncommon to just have unnumbered links is the
domain and that is perhaps why it is in a footnote.

Also I can can't find a reference in the spec that states that
the purpose of Option 1 is reachability, in [15] one can read: [15]This is the way RFC 1583 specified point-to-point
   representation.  It has three advantages: a) it does not require
   allocating a subnet to the point-to-point link, b) it tends to bias
   the routing so that packets destined for the point-to-point
   interface will actually be received over the interface (which is
   useful for diagnostic purposes) and c) it allows network
   bootstrapping of a neighbor, without requiring that the bootstrap
   program contain an OSPF implementation.

Further, looking into RFC 1583 one can see that Option 1 isn't used for
unnumbered links.

Also, there would be no need for footnote [2] if Option 1 is required
so why have in the first place?

Actully, the only thing that might suggest that Option 1 should be
used in 2328 is the text i Option 1 and that text is a bit "fuzzy".
Everything else suggests that Option 1 should not be used(in my reading)


I have found this discussion interesting and educational.
The above argument is very convincing, which I guess is why nobody
is arguing against it.  Based on the discussion, I think RFC 2328 should
be clarified as follows to allow some flexibility while ensuring
interoperability between different implementations (including most
existing implementations).

- Footnote [2] MUST be implemented, i.e., if all of the router's interfaces
 are point-to-point links, then the router's IP address MUST be advertised
 in the router-LSA as a host route.

- For unnumbered point-to-point links, a Type 3 link (stub network)
 MAY be added to the router-LSA (Option 1), but is not required.  Although
 adding such links may seem redundant, it has the benefit of ensuring that
 routes calculated to each router are *shortest* paths.  Without adding the
 stub links, the calculated routing table will provide the shortest path to
 each network and host, but that need not result in the shortest path to a
 router that is not advertising its own IP address as a host route.
 For example, the last hop of the shortest path might be via an unnumbered
 point-to-point link, but the last hop of the calculated path might be
 via a numbered point-to-point link (which includes a stub link to the
 destination router).  Let me know if I am mistaken.

Richard


Maybe I'm missing something here?




An related question: what to do with an interface that is UP but not
RUNNING?

Given that these terms are not well-defined, it's not possible to
answer in a normative way.  Even in a non-normative, casual way, it's
not clear to me what the actual difference is.  If the link does not
pass packets, for whatever reason, OSPF will not come up, and traffic
will not be passed to the nonfunctional link.  Whether that interface
address is advertised by the offending router is an implementation
decision, as it has no functional use other than as a management
address.  For that matter, it is then immaterial as to whether the
interface is "up" in any way or not, since there's no traffic going to
that interface anyhow.  One could choose to advertise *all* interface
addresses as host routes whether the interface is up or not, in case
anybody is sending packets to those addresses from afar.  But this is
usually done with loopback addresses, which become the "router
address" for management purposes and are independent of any physical
hardware.

The IP address on that link is still reachable through other interfaces. If you have a connection to the router using its IP address, you can still use it even if the interface isn't RUNNING(i.e someone pulled the cable for that interface). So instead of removing the whole interface and its subnet from the OSPF domain, one should change the router LSA to announce a host route with that interface's IP address.

I guess I still don't understand the distinction between UP and RUNNING, but that's OK.


Sorry, I should have explained this better. I refering to the
status of the interface as returned by ifconfig:
# > ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:06:9C:00:20:02 inet addr:10.0.1.1 Bcast:10.0.255.255 Mask:255.255.0.0
         UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

If I disconnect the ethernet cable, the RUNNING status goes away since
the interface cannot pass traffic on the ethernet, but the interface is
still UP.

What does Juniper do in this case for an interface that is part
of a OSPF area? I really like to find out how other routers handle
this case.

The point is (and I think we're in violent agreement) that if you want a router address to be reachable, it either has to be announced as a host route or as part of a subnet route. If the interface isn't passing traffic, announcing a subnet route would be an exceedingly poor idea, so the host route is the way to go. The spec is properly (IMHO) silent on when to send host routes in this case, as it is purely an implementation decision and is not subject to standardization.


I think this is implicit in the spec. One can ask OSPF to announce
some subnets and all matching interfaces are then announced, if you pull
the cable, the IP address still matches and is reachable so it
should still be announced as a host route.
Jocke
_______________________________________________
OSPF mailing list
OSPF@ietf.org
https://www.ietf.org/mailman/listinfo/ospf


_______________________________________________
OSPF mailing list
OSPF@ietf.org
https://www.ietf.org/mailman/listinfo/ospf

Reply via email to