On 2016-01-15 15:16, Robert Armstrong wrote:
you (I think) and Peter have been believing that
you have a problem that
can be solved by playing with costs in a way that will not solve the
problem.
I can't speak for Peter, but all I want from the circuit costs is two
things -
* The routing should be symmetrical; that is, if you ask node A for
the
path to node B, the result should be the same as if you ask B for the
path
to A. This isn't an absolute DECnet requirement, but it makes network
problems so much easier to figure out when data is taking the same
path in
both directions. Besides, in HECnet I can't really think of a good
reason
to prefer an asymmetrical route, so when you find one it almost always
means
something is configured wrong somewhere.
Pretty much impossible, as DECnet cannot do that in general. The problem
is that nodes have different amount of knowledge, based on their roles,
and the topology in general.
And this is the problem. You are trying to do something that DECnet in
general *cannot* do. Which leads to all this frustration.
* If two nodes, A and B, have a direct point
to point link
(probably via
Multinet, but maybe something else) then that should be the preferred
route
between those two nodes. Other nodes besides A and B are another matter,
but two nodes that are directly linked should use that link. This seems
obvious on the surface - if the owners of A and B didn't want that
result,
why set up the direct link in the first place? Besides, any esoteric
network principles aside, common sense says that a direct path between
two
nodes is faster and more reliable than a link that goes thru a third
party,
e.g. psilo.
Agreed. Most of the time direct links should be preferred. And I would
in almost all cases expect that to already be the case, unless people,
for some odd reason, put a very high cost on those direct links.
However, DECnet will also not do this at times. Also something that you
cannot change.
Let me give you the same example I just gave Peter in a private mail.
Let's say that you have a node X. X has address 2.1. It is an area
router, and it has two point-to-point links. Link (a) leads to 1.1, has
a cost of 1, and 1.1 is an area router.
Link (b) leads to 1.2, which also have a cost of 1, and 1.2 is also an
area router.
The way that DECnet works is that *all* your traffic will be sent to
1.2, when 2.1 sends packets to area 1. Even if 2.1 wants to talk to 1.1,
it will send the packets to 1.2. Even though 2.1 do have a direct link
to 1.1.
Why is this? Simple. When 2.1 wants to talk to anything in area 1, it
does not try to inspect this any further. It just sees that this is
outside of its own area, and thus it falls down to area routing. And 2.1
then just needs to figure out, how to send this packet to area 1. And
the arbitration rules states that when you have multiple paths with
equal cost, it will pick the highest numbered node as the target. So,
from 2.1, all packets going to area 1 will be sent to 1.2, no matter
what the actual destination inside area 1 is. And it leaves the routing
of the packets inside area 1 to the area 1 routers.
Meanwhile, both 1.1 and 1.2 will both be using their direct links to
area 2. Why is this then? Also simple. Both 1.1 and 1.2 are area
routers. So, for 1.1, the closest area router is itself. So any packets
going outside of area 1, will be dealt by the area routing layer in 1.1.
And the same is true for 1.2. 1.2 is an area router, and the closest
one. So all packets going outside area 1 will be dealt with by the area
routing layer in 1.2.
And just to point out something that I just implicitly assumed everyone
knew.
There *has* to be a link between 1.1 and 1.2, which only use level 1
routing, otherwise this would be an illegal configuration.
And the cost of that link is something that 2.1 do not know, and never
will, and which never enters into any calculations done at 2.1. That
cost is in fact not exposed to anything outside of area 1.
Johnny
--
Johnny Billquist || "I'm on a bus
|| on a psychedelic trip
email: bqt at softjar.se || Reading murder books
pdp is alive! || tryin' to stay hip" - B. Idol