Skip to content

Node Types

Overview

Different node types can be used within CORE, each with their own tradeoffs and functionality.

CORE Nodes

CORE nodes are the standard node type typically used in CORE. They are backed by Linux network namespaces. They use very little system resources in order to emulate a network. They do however share the hosts file system as they do not get their own. CORE nodes will have a directory uniquely created for them as a place to keep their files and mounted directories (/tmp/pycore.<session id>/<node name.conf), which will usually be wiped and removed upon shutdown.

Docker Nodes

Docker nodes provide a convenience for running nodes using predefind images and filesystems that CORE nodes do not provide. Details for using Docker nodes can be found here.

LXC Nodes

LXC nodes provide a convenience for running nodes using predefind images and filesystems that CORE nodes do not provide. Details for using LXC nodes can be found here.

Physical Nodes

The physical machine type is used for nodes that represent a real Linux-based machine that will participate in the emulated network scenario. This is typically used, for example, to incorporate racks of server machines from an emulation testbed. A physical node is one that is running the CORE daemon (core-daemon), but will not be further partitioned into containers. Services that are run on the physical node do not run in an isolated environment, but directly on the operating system.

Physical nodes must be assigned to servers, the same way nodes are assigned to emulation servers with Distributed Emulation. The list of available physical nodes currently shares the same dialog box and list as the emulation servers, accessed using the Emulation Servers... entry from the Session menu.

Support for physical nodes is under development and may be improved in future releases. Currently, when any node is linked to a physical node, a dashed line is drawn to indicate network tunneling. A GRE tunneling interface will be created on the physical node and used to tunnel traffic to and from the emulated world.

Double-clicking on a physical node during runtime opens a terminal with an SSH shell to that node. Users should configure public-key SSH login as done with emulation servers.