[HECnet] Attaching to hecnet

Kari Uusim ki uusimaki at exdecfinland.org
Wed Jun 30 18:38:54 PDT 2010


On 30.6.2010 19:41, Johnny Billquist wrote:
Hi, Paul. I see that I'll have to be way more careful with how I choose
my words around you... :-)

Paul Koning wrote:
...
The 2.0.0 (phase IV) routing spec talks about the "on Ethernet"
cache
instead, and describes it in a way that makes it help only for
directly
attached nodes. The "previous hop" flavor was a generalization in,
I
think, 2.1.0 (Phase IV+).
Hmm, yuck. Now I'll have to try to remember some details, as well as
extrapolating some stuff.

No, as far as I can remember, the end-nodes will only remember (or
know)
of one level 1 router. It will pick the one with the highest priority
in
case there are more than one on the local segment. That will become
the
designated router, and will be used for all traffic I believe.

The way this works is that there are two multicast addresses used on
Ethernet segments. (Well, three later on, a separate one for all L2
routers.) One is "all routers", one is "all endnodes". Routers listen
to the first, endnodes to the second. Hellos are sent to "all routers"
so ONLY routers hear hellos. Both endnodes and routers send hellos
(different types). So routers build a list of all the nodes on each
interface. The routers on an Ethernet pick one to be the designated
router, and only that router sends a hello to "all endnodes". That's
how endnodes know the DR.

Not really.
end-nodes send endnode-hello messages to ab:00:00:03:00:00
l1 routers send router-hello messages to ab:00:00:03:00:00
l2 routers send router-hello messages to ab:00:00:03:00:00,
ab:00:00:04:00:00 and 09:00:2b:02:00:00 (exactly which of these last two
addresses are sent to seems to differ from node to node, and I haven't
figured out exactly how yet).

The multicast address AB   00   00   03   00   00 is to all Phase IV routers (=endnode hello)
The multicast address AB   00   00   04   00   00 is to all Phase IV endnodes
(=router hello)
All Level 1 and Level 2 routers should send router hellos to endnodes and endnodes should send endnode hellos so that routers know of all endnodes.
IIRC the 09-00-2B-02-00-00 multicasts are from DECdns.


(looking at live traffic right now)

I can give you a longer snapshot of live traffic if you want to see more
details...

So, obviously, routers and endnodes both send, and listen to the same
messages. If we ignore the weird other addresses of L2 routers, they in
fact all send messages on the same channel.

So, they all also pick up all the same information.

But, in addition to the hello messages, which all pick up and process,
and which are rather short messages sent fairly often, routers also send
level 1 and level 2 routing information messages. These are all just
thrown away by end-nodes. And level 1 routers more or less just throw
away level 2 routing messages as well.

End-nodes will, however, just snoop hello-messages, and know about
other
nodes that are on the same ethernet segment (I'm not sure if this
generalizes to other mediums than ethernet, I think the manuals only
talked about ethernet). So, you can actually have an ethernet segment
with only end-nodes, and communication will actually work anyway. Even
though if you look at adjacent nodes with NCP, you'll not see any.
That's the ethernet cache unless I read things wrong here, btw.

No, endnodes don't do any snooping (nor do routers). DECnet
intentionally was designed to rely on advertisements (hello messages)
and those were done in a way that limits overhead. So end nodes hear
only hellos from a single system (the designated router).

Sorry. Very sloppy wording on my part.
By "snooping" just meant that they receive the hello multicast messages,
and figure it out from there.
In essence, I meant snooping, since the messages aren't sent explicitly
to them, but they do not go into promiscous mode and look at all traffic
that pass over the ethernet.

But no, end-nodes will actually hear hello messages from everybody on
the same ethernet segment. From that, they remember all the nodes that
they can hear in their cache, and also remembers which is the routing
node with highest priority (priority of the router is carried in the
hello message).

If an end node is asked to talk to some address, it consults the cache.
If it's in the cache, the data there is used. If not, the message goes
to the designated router if one is known. Finally, if there is no DR
(single endnode-only LAN) then it sends directly to the destination
using the calculated MAC address.

Yes, it starts by consulting the cache, and if the destination is in
there, it is used.
If not, it is sent to the designated router.
I think that if no designated router exist, and it's not in the cache,
any traffic will just result in an error return right away.

Incoming traffic fills in the previous-hop cache, so once you get past
the first message, end node traffic goes via the optimal path.

No. The hello messages fills the cache. That's how it can work even if
there is no router.

What I find "horrible" about this is that end-nodes will (atleast in
VMS) will actually happily even talk with machines in another area, if
they happen to be sitting on the same ethernet segment (this has
bitten
me with my bridge and HECnet).

Yes, that was considered a feature. It's a side effect of the way the
previous hop cache works, and when we realized this we decided it was a
good thing so that's how it ended up.

Well... I don't know if I'd call it good. But that's probably because it
spoiled a feature I had wanted to do in my bridge... :-)

Anyway, the comment is that the path might not be optimal. End nodes
pick the level 1 router with the highest priority. If you have two
level
1 routers, the one you didn't communicate with might have been more
optimal, but you'll never know. And the same is true for area routers.

For out of area traffic you're definitely right, the first leg is to the
best L2 router for the destination area, which may not be the best way
to get to the final destination. (In a sensibly layed-out hierarchical
network, the difference should not be large.) But end nodes do
communicate just as efficiently as routers, thanks to the previous hop
cache. And in fact, for the multi area Ethernet case, they do better
than routers because routers will not talk directly to an out of area
node, even if it's on the same Ethernet.

Hmm... I don't think so. The first leg to another area from an end-node
will be to the designated level 1 router. From there it will travel to
the designated level 2 router, only then will it go by the most
efficient path to the right area (which might not in fact be the best
for the actual end destination), and only once inside that area will it
go by the most efficient path to the destination.

It all breaks down if you have several L1 or L2 routes on an area. (And
by break down I mean it can go suboptimal ways, it will still definitely
work just fine.)

Johnny

.



More information about the Hecnet-list mailing list