5. Multiple Nodes

SPP provides multi-node support for configuring network across several nodes from SPP CLI. You can configure each of nodes step by step.

In Fig. 5.1, there are four nodes on which SPP and service VMs are running. Host1 behaves as a patch panel for connecting between other nodes. A request is sent from a VM on host2 to a VM on host3 or host4. Host4 is a backup server for host3 and replaced with host3 by changing network configuration. Blue lines are paths for host3 and red lines are for host4, and changed alternatively.

../_images/spp_multi_nodes_vhost.svg

Fig. 5.1 Multiple nodes example

5.1. Launch SPP on Multiple Nodes

Before SPP CLI, launch spp-ctl on each of nodes. You should give IP address with -b option to be accessed from outside of the node. This is an example for launching spp-ctl on host1.

# Launch on host1
$ python3 src/spp-ctl/spp-ctl -b 192.168.11.101

You also need to launch it on host2, host3 and host4 in each of terminals.

After all of spp-ctls are lauched, launch SPP CLI with four -b options for each of hosts. SPP CLI is able to be launched on any of nodes.

# Launch SPP CLI
$ python3 src/spp.py -b 192.168.11.101 \
    -b 192.168.11.102 \
    -b 192.168.11.103 \
    -b 192.168.11.104 \

Or you can add nodes after launching SPP CLI. Here is an example of launching it with first node, and adding the rest of nodes after.

# Launch SPP CLI
$ python3 src/spp.py -b 192.168.11.101
Welcome to the spp.  Type help or ? to list commands.

spp > server add 192.168.11.102
Registered spp-ctl "192.168.11.102:7777".
spp > server add 192.168.11.103
Registered spp-ctl "192.168.11.103:7777".
spp > server add 192.168.11.104
Registered spp-ctl "192.168.11.104:7777".

If you have succeeded to launch all of spp-ctl processes before, you can find them by running sever list command.

# Launch SPP CLI
spp > server list
  1: 192.168.1.101:7777 *
  2: 192.168.1.102:7777
  3: 192.168.1.103:7777
  4: 192.168.1.104:7777

You might notice that first entry is marked with *. It means that the current node under the management is the first node.

5.2. Switch Nodes

SPP CLI manages a node marked with *. If you configure other nodes, change the managed node with server command. Here is an example to switch to third node.

# Launch SPP CLI
spp > server 3
Switch spp-ctl to "3: 192.168.1.103:7777".

And the result after changed to host3.

spp > server list
  1: 192.168.1.101:7777
  2: 192.168.1.102:7777
  3: 192.168.1.103:7777 *
  4: 192.168.1.104:7777

You can also confirm this change by checking IP address of spp-ctl from status command.

spp > status
- spp-ctl:
  - address: 192.168.1.103:7777
- primary:
  - status: not running
...

5.3. Configure Patch Panel Node

First of all of the network configuration, setup blue lines on host1 described in Fig. 5.1. You should confirm the managed server is host1.

spp > server list
  1: 192.168.1.101:7777 *
  2: 192.168.1.102:7777
  ...

Patch two sets of physical ports and start forwarding.

spp > nfv 1; patch phy:1 phy:2
Patch ports (phy:1 -> phy:2).
spp > nfv 1; patch phy:3 phy:0
Patch ports (phy:3 -> phy:0).
spp > nfv 1; forward
Start forwarding.

5.4. Configure Service VM Nodes

It is almost similar as Setup Network Configuration in spp_nfv to setup for host2, host3, and host4.

For host2, swith server to host2 and run nfv commands.

# switch to server 2
spp > server 2
Switch spp-ctl to "2: 192.168.1.102:7777".

# configure
spp > nfv 1; add vhost:0
Add vhost:0.
spp > nfv 1; patch phy:0 vhost:0
Patch ports (phy:0 -> vhost:0).
spp > nfv 1; patch vhost:0 phy:1
Patch ports (vhost:0 -> phy:1).
spp > nfv 1; forward
Start forwarding.

Then, swith to host3 and host4 for doing the same configuration.

5.5. Change Path to Backup Node

Finally, change path from blue lines to red lines.

# switch to server 1
spp > server 1
Switch spp-ctl to "1: 192.168.1.101:7777".

# remove blue path
spp > nfv 1; stop
Stop forwarding.
spp > nfv 1; patch reset

# configure red path
spp > nfv 2; patch phy:1 phy:4
Patch ports (phy:1 -> phy:4).
spp > nfv 2; patch phy:5 phy:0
Patch ports (phy:5 -> phy:0).
spp > nfv 2; forward
Start forwarding.