anjuna-nitro-netd-parent

Configure and start a network bridge between the AWS EC2 host and the enclave.

SYNOPSIS

anjuna-nitro-netd-parent [OPTION...]

DESCRIPTION

anjuna-nitro-netd-parent is the agent that enables Nitro enclaves to send and receive network traffic:

  • outbound connections initiated from within the enclave,

  • and inbound connections to the enclave.

This agent includes two parts, one running on the parent instance (anjuna-nitro-netd-parent), and the other inside the enclave (which is started automatically by the Anjuna Nitro Runtime when the Nitro Enclave starts).

The two agents communicate over the Nitro vsock interface, which is the only channel of communication that an enclave can use to interact with external services.

This agent MUST be running before the Nitro enclave starts to enable networking capabilities in the Nitro enclaves.

DEPENDENCIES

Before starting the anjuna-nitro-netd-parent agent, you MUST have executed the routing-setup.sh script at least once.

PERMISSIONS

This agent requires the CAP_NET_ADMIN capability.

Running on parent VM

When running the Anjuna Nitro Runtime tools directly on an EC2 instance, you can grant the anjuna-nitro-netd-parent application the CAP_NET_ADMIN capability by using the following command:

$ sudo setcap cap_net_admin=eip /opt/anjuna/nitro/bin/anjuna-nitro-netd-parent

If this command succeeds, you can just run the anjuna-nitro-netd-parent agent by using the following command:

$ anjuna-nitro-netd-parent --daemonize

If you do not grant the CAP_NET_ADMIN capability to anjuna-nitro-netd-parent, you need to run it as root:

$ sudo anjuna-nitro-netd-parent --daemonize

Running in Docker

When running the Anjuna Nitro Runtime tools in a Docker container (for example as a pod in a Kubernetes cluster), the container must be granted the CAP_NET_ADMIN capability by starting the container with the --cap-add NET_ADMIN command line parameter (see https://docs.docker.com/engine/reference/run/#runtime-privilege-and-linux-capabilities for more information).

The Anjuna Nitro Kubernetes tools automatically create pods that have this capability to allow the Nitro enclave to communicate with the outside world by using the network interface assigned to this pod.

OPTIONS

Usage: anjuna-nitro-netd-parent [OPTION...]
Bidirectional enclave <--> host network bridge

 Daemon options:
  -d, --daemonize            Detach from terminal on startup [off]
      --log=SINK             Log to: stdout, stderr, syslog [stderr]
      --silent               Suppress all output
  -v, --verbose              Log debug-level events

  -?, --help                 Give this help list
      --usage                Give a short usage message
  -V, --version              Print program version

EXIT STATUS

  • 0 on success

  • > 0 on error

EXAMPLE

$ anjuna-nitro-netd-parent --daemonize