[Nml-wg] About modelisation of the network description
Aaron Brown
aaron at internet2.edu
Wed Mar 5 20:32:17 CST 2008
As I was writing the replay to Freek's question and getting my ideas
clearly stated I diverged a bit from explicitly answering questions
asked, so this is more of my general view of "how things should look" :-)
So, if a network is a subclass of node (thing with interfaces) and a
network can also contain arbitrary network elements. How does one view a
network as a node?
A network in its most reasonable XML description looks like this:
<network name="internet2">
<node name="host1">
<port name="eth0" />
</node>
<node name="host2">
<port name="eth0" />
</node>
<node name="host3">
<port name="eth0" />
</node>
</network>
A node in its most reasonable XML description looks like:
<node name="router1">
<port name="eth0" />
<port name="eth1" />
<port name="eth2" />
</node>
How would a network be described as both a node and a group so that it
can be used in either context?
<network name="internet2">
<port name="host1_eth0" />
<port name="host2_eth0" />
<port name="host3_eth2" />
<comprised-of>
<node name="host1>
<port name="eth0" />
</node>
<node name="host2>
<port name="eth0" />
</node>
<node name="host3>
<port name="eth0" />
</node>
</comprised-of>
</network>
Now, let's say host 1, 2 and 3 were really providing the same logical
service (say, host1 routes web service requests back to actual services
on hosts 2 and 3). I want a logical view of this because i don't care
how the web service is implemented. So, do I describe it as a network? a
device? I'd say it's a logical node in our context.
<node name="logicalWebService">
<port name="host1_eth0" />
<service type="http" name="moodle" />
<comprised-of>
<node name="host1>
<port name="eth0" />
</node>
<node name="host2>
<port name="eth0" />
</node>
<node name="host3>
<port name="eth0" />
</node>
</comprised-of>
</node>
If one really wanted a more abstract view of the logical web service,
you'd simply get rid of the comprised-of element:
<node name="logicalWebService">
<port name="host1_eth0" />
<service type="http" name="moodle" />
</node>
In the end, the full logical node definition looks (for all intents and
purposes) identical to the network definition. Thus, I think the node
concept lends itself nicely to a more general form of abstraction. To
that end, is network really a special case? A network can be viewed as
the abstract node by ignoring (or not including) the comprised-of
portion. However, you can include those elements in it if so desired.
Thus, whenever you're looking at a node-like element, there's a standard
way of asking "what makes up this logical entity(domain, network, web
service, whatever)?".
Going further, if you define a group like so:
<group name="something">
<comprised-of>
... network elements ...
</comprised-of>
</group>
Node looks to be a more specific version of group since it's a group of
network elements (maybe none if you're at the atomic level of
abstraction for a given topology element) that contains a set of
external interfaces for that group of nodes.
As to the specific view/network model:
I think a view seems to be just be a restated group element. For
example, let's say my topology includes the entire topology for 8
domains. Why can't I create a view that comprises elements in all 8
domains? (If, for example, I were creating a view that included all the
PingER nodes that exist around the world).
Network seems to be 'domain inside of domain'. If I can subdivide my
domain into 4 large networks, why can't i subdivide my networks into
smaller networks? Relatedly, why can't a node exist in two networks at
once? Example: layer4 overlay network or a VPN.
Other things to think about:
There are points between the domain is entirely opaque and the domain is
entirely open:
All external nodes might be included in the description and might be
connected via abstract links describing the logical connections between
those points (I can get you bandwidth X across the domain if you exit
via interface A and bandwidth Y if you exit via interface B). Does the
"network as node" model work well for that case? In this case, you'd
probably want to a network consisting of a set of abstract nodes
connected via abstract links, but that shouldn't be too difficult to
describe in this model.
I figure I'll stop typing now since I've already taken up far too much
of your time ;)
Cheers,
Aaron
More information about the nml-wg
mailing list