On Jan 14, 2016, at 4:40 PM, hvlems at zonnet.nl
wrote:
...
Can the bridge program detect whether there are
area routers for the dame area at both ends and favor the local one, possibly block
advertising of the remote area router?
I tried blocking traffic from a node in one area from getting to another
area, with the exception of packets from area routers.
Unfortunately, it does not work. DECnet can be clever about local
ethernet connectivity. If you are on the same ethernet segment, nodes
can communicate directly with other nodes on the same ethernet segment,
even if they are endnodes, and this exen extends to nodes on different
areas. So such filtering in the bridge cause communication to fail for
endnodes on the ethernet segment, when the destination is on the same
ethernet, even if in a different area.
DECnet expects a "transitive Ethernet" -- if A can talk to B and B can talk to
C, A must be able to talk to C. That's actually a common assumption, other network
protocols do the same. DECnet is a bit unusual in that it explicitly verifies this
property, at least for routers -- that's why router hellos have the router list in
them. We put that in because we had run into some defective Ethernets that were
non-transitive, causing very strange misbehavior until this protocol mechanism was added.
End nodes have an on-Ethernet cache: if X talks to Y and both are on the same Ethernet,
they will do it directly. From the first packet if there are no routers; after the
initial round-trip if there are. If you create a non-transitive Ethernet -- which is what
filtering does -- this will fail. There is no workaround. If you don't want all the
nodes on an Ethernet to have direct communication, the only solution is to split it into
two separate Ethernets, interconnected by a router (not a bridge).
paul