docs: update node types to include lxc/docker type documentation, instead of being hidden within examples
This commit is contained in:
parent
1ce6e51318
commit
b78c07bd24
5 changed files with 58 additions and 46 deletions
70
docs/docker.md
Normal file
70
docs/docker.md
Normal file
|
@ -0,0 +1,70 @@
|
|||
# Docker Node Support
|
||||
|
||||
## Overview
|
||||
|
||||
Provided below is some information for helping setup and use Docker
|
||||
nodes within a CORE scenario.
|
||||
|
||||
## Installation
|
||||
|
||||
### Debian Systems
|
||||
|
||||
```shell
|
||||
sudo apt install docker.io
|
||||
```
|
||||
|
||||
### RHEL Systems
|
||||
|
||||
|
||||
## Configuration
|
||||
|
||||
Custom configuration required to avoid iptable rules being added and removing
|
||||
the need for the default docker network, since core will be orchestrating
|
||||
connections between nodes.
|
||||
|
||||
Place the file below in **/etc/docker/docker.json**
|
||||
|
||||
```json
|
||||
{
|
||||
"bridge": "none",
|
||||
"iptables": false
|
||||
}
|
||||
```
|
||||
|
||||
## Group Setup
|
||||
|
||||
To use Docker nodes within the python GUI, you will need to make sure the
|
||||
user running the GUI is a member of the docker group.
|
||||
|
||||
```shell
|
||||
# add group if does not exist
|
||||
sudo groupadd docker
|
||||
|
||||
# add user to group
|
||||
sudo usermod -aG docker $USER
|
||||
|
||||
# to get this change to take effect, log out and back in or run the following
|
||||
newgrp docker
|
||||
```
|
||||
|
||||
## Image Requirements
|
||||
|
||||
Images used by Docker nodes in CORE need to have networking tools installed for
|
||||
CORE to automate setup and configuration of the network within the container.
|
||||
|
||||
Example Dockerfile:
|
||||
```
|
||||
FROM ubuntu:latest
|
||||
RUN apt-get update
|
||||
RUN apt-get install -y iproute2 ethtool
|
||||
```
|
||||
|
||||
Build image:
|
||||
```shell
|
||||
sudo docker build -t <name> .
|
||||
```
|
||||
|
||||
## Tools and Versions Tested With
|
||||
|
||||
* Docker version 18.09.5, build e8ff056
|
||||
* nsenter from util-linux 2.31.1
|
|
@ -20,15 +20,15 @@ networking scenarios, security studies, and increasing the size of physical test
|
|||
|
||||
| Topic | Description|
|
||||
|-------|------------|
|
||||
|[Architecture](architecture.md)|Overview of the architecture|
|
||||
|[Installation](install.md)|How to install CORE and its requirements|
|
||||
|[Architecture](architecture.md)|Overview of the architecture|
|
||||
|[Node Types](nodetypes.md)|Overview of node types supported within CORE|
|
||||
|[GUI](gui.md)|How to use the GUI|
|
||||
|[(BETA) Python GUI](pygui.md)|How to use the BETA python based GUI|
|
||||
|[Python API](python.md)|Covers how to control core directly using python|
|
||||
|[gRPC API](grpc.md)|Covers how control core using gRPC|
|
||||
|[Distributed](distributed.md)|Details for running CORE across multiple servers|
|
||||
|[Node Types](nodetypes.md)|Overview of node types supported within CORE|
|
||||
|[CTRLNET](ctrlnet.md)|How to use control networks to communicate with nodes from host|
|
||||
|[Control Network](ctrlnet.md)|How to use control networks to communicate with nodes from host|
|
||||
|[Services](services.md)|Overview of provided services and creating custom ones|
|
||||
|[EMANE](emane.md)|Overview of EMANE integration and integrating custom EMANE models|
|
||||
|[Performance](performance.md)|Notes on performance when using CORE|
|
||||
|
|
41
docs/lxc.md
Normal file
41
docs/lxc.md
Normal file
|
@ -0,0 +1,41 @@
|
|||
# LXC Support
|
||||
|
||||
LXC nodes are provided by way of LXD to create nodes using predefined
|
||||
images and provide file system separation.
|
||||
|
||||
## Installation
|
||||
|
||||
### Debian Systems
|
||||
|
||||
```shell
|
||||
sudo snap install lxd
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
Initialize LXD and say no to adding a default bridge.
|
||||
|
||||
```shell
|
||||
sudo lxd init
|
||||
```
|
||||
|
||||
## Group Setup
|
||||
|
||||
To use LXC nodes within the python GUI, you will need to make sure the user running the GUI is a member of the
|
||||
lxd group.
|
||||
|
||||
```shell
|
||||
# add group if does not exist
|
||||
sudo groupadd lxd
|
||||
|
||||
# add user to group
|
||||
sudo usermod -aG lxd $USER
|
||||
|
||||
# to get this change to take effect, log out and back in or run the following
|
||||
newgrp lxd
|
||||
```
|
||||
|
||||
## Tools and Versions Tested With
|
||||
|
||||
* LXD 3.14
|
||||
* nsenter from util-linux 2.31.1
|
|
@ -5,18 +5,30 @@
|
|||
|
||||
## Overview
|
||||
|
||||
Different node types can be configured in CORE, and each node type has a
|
||||
*machine type* that indicates how the node will be represented at run time.
|
||||
Different machine types allow for different options.
|
||||
Different node types can be used within CORE, each with their own
|
||||
tradeoffs and functionality.
|
||||
|
||||
## Netns Nodes
|
||||
## CORE Nodes
|
||||
|
||||
The *netns* machine type is the default. This is for nodes that will be
|
||||
backed by Linux network namespaces. This machine type uses very little
|
||||
system resources in order to emulate a network. Another reason this is
|
||||
designated as the default machine type is because this technology typically
|
||||
requires no changes to the kernel; it is available out-of-the-box from the
|
||||
latest mainstream Linux distributions.
|
||||
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](docker.md).
|
||||
|
||||
## 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](lxc.md).
|
||||
|
||||
## Physical Nodes
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue