[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

How do we let multiple sites/namespaces hooked on the same chaosnet KNOW about each other???

    Date: Tue, 28 Nov 89 17:51:11 CST
    From: "BUCKMAN%ALAN.LAAC-AI.Dialnet.Symbolics.COM"%ALAN.kahuna.DECNET.LOCKHEED.COM@Warbucks.AI.SRI.COM

    Received: from NILS.LAAC-AI.Dialnet.Symbolics.COM by ALAN.LAAC-AI.Dialnet.Symbolics.COM via CHAOS with CHAOS-MAIL id 8164; Tue 28-Nov-89 15:48:49 PST
    Date: Tue, 28 Nov 89 15:48 PST
    From: Eric Buckman <BUCKMAN@ALAN.LAAC-AI.Dialnet.Symbolics.COM>
    Subject: How do we let multiple sites/namespaces hooked on the same chaosnet KNOW about each other???
    To: slug@ALAN.LAAC-AI.Dialnet.Symbolics.COM
    Message-ID: <19891128234828.1.BUCKMAN@NILS.LAAC-AI.Dialnet.Symbolics.COM>

    I just got a call back from Steve Saeedi (Symbolics Software Phone Support), and
    these are the instructions he gave me for letting two Namespaces and sites Know
    about each other.  (Of course I couldn't find any real documenatation on the

Check in the 7.2 release notes in the section about the "Sync-Link Gateway".
There is a discussion of how to connect multiple namespaces together.  Yes,
that is not the first place you would look for a discussion on the topic but
it was the only place available at the time.  You will have to ignore some
parts in the doc about getting everything set right on the gateways, etc. but
the main information is there.  It should be in a more accessible form in 8.0.

    These are the step by step instructions he gave me for hooking up two sperate

    1)  Make sure both sites namespace object:   Network Chaos   have Type  CHAOS.

    2) At each site edit the Namespace object so that Primary-name-server is the
    server at that site, and Secondary-name-server is the server of the other site.

    3)  On the Namespace server at each site, run the function:

	    (neti:find-site  :other-site-name)  and that will let that world KNOW
    about the other site, then do an Incremental-world-save.

Um, I think there is some confusion here since step #2 cannot be done without
doing step #3 since the two sites should know nothing of the other site's
namespace servers.  Further, the networks in the two sites will not be be
considered the same and the Generic Network System will not know how to
connect to hosts that have addresses on a network that is not in their
namespace.  The procedure should be:

1) Make sure the chaos networks in both namespaces have a GLOBAL NETWORK NAME
attribute that is the same.

2) Do (neti:find-site :other-site-name) on both primary servers and save an
incremental world.

3) Change the search rules for both namespaces to include the other namespace.

4) Either do step 2 in the initial instructions or change the host objects for
both primary servers to add "Default Secondary Name Server: Yes".

I will check with Steve to make sure that the instructions he has are correct,
he might have been looking at some older instructions.

    These instructions sound kind of funky to me,  I am quite supprised that you
    need to run some undocumented function "neti:find-site"  and then do the
    incremental save.  I would have thought that by just updating the namespaces
    at each site in the appropriate way, the problem would be solved.  Also, the
    filling in of the secondary-name-server seems to be innapropriate because my
    understanding of that functionality is that if one namespace server at a site
    goes down, then the secondary server at that site is used for namespace info.

First, the need to use an undocumented function is mostly historical.  Linking
sites has been a bit of a black art for reasons that I will go into in a bit.
The process became much easier in 7.2 with the introduction of the
global-network-name attribute for networks.  We didn't update the interface to
connecting sites at the time.  In 8.0 there is a function that is specifically
for hooking up namespaces in this manner.  

The reason that you have to save worlds in order for all of this to work stems
from the namespace system needing to completely resolve every object that it
comes across.  Since primary servers store all of the namespace information in
files on only one host for a given namespace, the information would have to be
duplicated completely in the files for a namespace server to resolve all of
the objects at boot time.  [I don't know if that made much sense but consider
Namespace A needing to know about Namespace B.  The server for A would have to
have all of the objects in Namespace B in its local files or in its world to
know anything about namespace B.  There is no way in the current namespace
system to have the server for A store "just enough" information in its files
about Namespace B to boot.  So, the information must be stored in the worlds.]

Storing information about other namespaces in the world means that you need to
either repeat the find-site process every time you do a :Set Site of a
distribution world on one of the namespace servers or move site-configured
worlds from user machines to the namespace servers.

Before global-network-names existed, the only way for hosts with addresses on
a network in one namespace to connect to hosts on a network of the same type
in a different namespace was to forcibly merge the network objects from both
namespaces so they would be EQ and the Generic Network System could assume
logical connectivity.  The merging process was very messy and error-prone and
made the whole process very difficult, hence the reason to use undocumented
functions etc.  Since 7.2, the GNS has assumed logical connectivity when the
networks are either EQ or have the same global-network-name.  [Note:  if you
have non-chaos networks that you want to connect to between multiple
namespaces, you will need a small patch that should be available from

I hope this answers your questions without confusing you even more.  I would
be happy to answer further questions about this area if necessary.