WalT server-side network configuration

Overview

These instructions assume you are familiar with WALT network structure (cf. networks walt-net, walt-out, and optionally walt-adm, see walt help show networking) and with Debian operating systems.

In order to adapt to various network environments, the network configuration of WalT has to be edited. It is most easily modified by running walt-server-setup --edit-conf. However, expert users can still edit the file /etc/walt/server.conf manually and then restart the server machine.

Content of file /etc/walt/server.conf should be YAML-compliant or, for backward compatibility, JSON-compliant. Note: even in the case of JSON, our parser accepts single line comments started by char #.

The following examples will clarify how this file should be configured. It is advised to read these examples in the order they are presented below. At the end, you should be able to combine them to match your own network setup.

Scenario 0: virtual-only platform

In this scenario we have:

  • Your usual LAN network (with DHCP service and internet connectivity) connected on eth0

  • A secondary interface eth1 currently disconnected.

The plan is to later connect WALT equipment (network switches and nodes) to eth1, but due to supply chain issues, they were not received yet. In the meantime, we will configure a virtual-only platform, in order to start experimenting with WALT and its virtual nodes.

First, we keep the default OS-configured connectivity about the eth0 interface:

$ cat /etc/network/interfaces
auto eth0
iface eth0 inet dhcp
$

And we configure walt network using:

$ cat /etc/walt/server.conf
network:
    # platform network
    walt-net:
        raw-device: null
        ip: 192.168.183.1/24
$

This means that:

  • our WALT network is virtual: it is not connected to a physical interface (raw-device is null).

  • the DHCP service of our WALT server will deliver IP addresses in the range 192.168.183.1/24 (to virtual nodes).

  • the WALT server will use IP address 192.168.183.1 in this virtual network.

Notes:

  • It is mandatory to declare walt-net in /etc/walt/server.conf as we did, because this configuration file is read by several walt software services, and they will need to find the configuration of this network.

  • Once the WALT equipment is received and connected, the platform can obviously be reconfigured to communicate with it (see next scenario).

Scenario 1: very simple setup

In this scenario we have:

  • Your usual LAN network (with DHCP service and internet connectivity) connected on eth0

  • A dedicated WALT network (with dedicated network switches) connected on eth1

This can be configured as follows. We let Debian manage our eth0 interface the usual way again:

$ cat /etc/network/interfaces
auto eth0
iface eth0 inet dhcp
$

And we configure walt network using:

$ cat /etc/walt/server.conf
network:
    # platform network
    walt-net:
        raw-device: eth1
        ip: 192.168.183.1/24
$

This time, our WALT network is connected to physical interface eth1. Compared to the previous scenario, the DHCP service of our WALT server will now deliver IP addresses not only to virtual nodes but also to physical devices (nodes and switches).

Note: since this plaform network is dedicated to WALT, the range of private IP addresses you select is not really important. Just set it large enough to support platform growth. Each device connected to this network will get a permanent IP address lease, thus a “/24” network is perfectly fine for a reduced setup (for instance a demo), not for a platform in a large building.

Scenario 2: reusing a building network

In this scenario we have:

  • A WalT server in the datacenter with 3 or more wired network interfaces

  • The usual LAN network for servers (with DHCP service and internet connectivity) connected on eth0

  • A dedicated WALT VLAN (configured in the building network equipments) connected on eth1 (this is walt-net)

  • The VLAN allowing remote management of building network equipments connected on eth2 (this one should be called walt-adm)

Notes:

  • This is a classical setup for a WALT platform with a large number of nodes. It is obviously interesting to reuse the existing wired network of the building, especially if network equipments provide optional WalT-related features (remote management through SNMP, LLDP neighbor discovery, and PoE). In this case, connecting a new walt node just requires to assign WALT VLAN to the target wall plug and connect the node to it.

  • For more information about the remote switch administration features WALT can use, see walt help show networking.

  • Of course, if you are not in charge of the building network, you will have to ask relevant people if they allow this configuration, and get relevant configuration parameters from them.

This scenario can be configured as follows. Again, we rely on the default Debian setup to manage interface eth0 (cf. scenario 1). And we configure walt networks using the following file:

$ cat /etc/walt/server.conf
network:
    # platform network
    walt-net:
        raw-device: eth1
        ip: 192.168.180.1/22
    # building network admin
    walt-adm:
        raw-device: eth2
        ip: 10.10.52.23/27
$

Comparing to previous scenario, we just added the configuration for network walt-adm (and selected a larger IP address range for walt-net). The IP address and range of network walt-adm should be given by buiding network admins. This kind of administration LAN usually uses a static IP configuration. If this is not the case, and DHCP is available instead, you can also write ip: dhcp in walt-adm section.

Scenario 3: server with single wired LAN interface

Let’s consider the case where the machine you want to setup as a WALT server has only one wired interface (eth0).

3a: Using a wireless interface

If this machine has a wireless interface too (wlan0) you can obviously configure walt-net on eth0 and use wlan0 for internet connectivity. However, keep in mind that this internet connectivity will be used to upload or download walt images, usually several hundreds of megabytes each. Thus, your wireless connection may not be the best option for this kind of usage. If you think it will be good enough, configuration setup should be pretty straightforward as long as you have read scenario 1:

$ cat /etc/network/interfaces
auto wlan0
iface wlan0 inet dhcp
    wpa-ssid "<your-ssid>"
    wpa-psk  "<psk-key>"    # tip: $ wpa_passphrase <your-ssid> <your-password>
$
$ cat /etc/walt/server.conf
network:
    # platform network
    walt-net:
        raw-device: eth0
        ip: 192.168.183.1/24
$

We just let Debian configure our wlan0 interface, and let WalT manage eth0 for its own usage.

3b: Using VLANs (IT expert)

For better performance, there is another alternative: use VLANs to manage both internet connectivity and WALT platform LAN on the same physical interface. An example of such a setup would be the following:

 ----------------------------------------
| switch
 -----1---------2---------3---------4----
      |         |
      |         |              ---------
      |          -------------|WALT node|
      |                        ---------
     ----
 ---|eth0|-------------------------------
|    ----                    WALT server
|     |---------
|     |         |
|  -------   -------
| |eth0.33| |eth0.34|
|  -------   -------
|     |         |
|     |          ------ walt-out
|      ---------------- walt-net

As usual the VLAN dedicated to WALT platform (with VLAN ID 33 in this example) is called walt-net. Let us call walt-out the VLAN allowing internet connectivity (with VLAN ID 34 in this example).

This setup allows:

  • The OS to get internet connectivity on virtual interface eth0.34

  • WALT to communicate on its dedicated VLAN by using virtual interface eth0.33. For instance WALT will be able to reach the node connected on port 2 of the switch (if the switch is configured appropriately).

We describe below the appropriate configuration to set up those virtual interfaces, on WALT server side:

$ cat /etc/network/interfaces
# This file is empty this time!
$
$ cat /etc/walt/server.conf
network:
    # platform network
    walt-net:
        raw-device: eth0
        vlan: 33
        ip: 192.168.180.1/22
    # internet connectivity
    walt-out:
        raw-device: eth0
        vlan: 34
        ip: dhcp
$

In this configuration, we can notice usage of the vlan configuration entry. The rest of the configuration should be obvious given previous scenarios.

Of course, this setup also requires appropriate VLAN configuration on the switch side, but this is outside the scope of this documentation.

Concluding remarks

You will probably have to adapt these scenarios to your own case, but this should be pretty obvious. For instance, you may install WALT in a building with a server equipped with only 2 wired interfaces. In this case you could connect walt-net and walt-adm on a single physical interface (using VLANs) and walt-out on the other. This should be easily done by combining scenario 2 and 3b.

Only walt-net and walt-adm have a special meaning for walt software. Thus, naming the interface walt-out of scenario 3b differently in file /etc/walt/server.conf is not a problem. This section of file /etc/walt/server.conf could even be removed and replaced by an equivalent configuration in /etc/network/interfaces.

One can also use other OS network management systems (such as systemd-networkd), instead of using /etc/network/interfaces as we propose here.