SDE Network: settings reference

By Paul Flanders · · Intermediate

This article serves as a comprehensive reference for engineers managing the SDE Network, detailing settings across unit environments, admin pages, and firewall rules. It includes instructions for configuring network settings, custom rules, and admin page tabs.

Every setting for SDE Network: the sde-network unit's environment, related settings in other units, the bootstrap script, the admin page's dialogs and the firewall rules that are always on.

Applies to: the sde-network unit and its admin page at /sde-network/ · Audience: engineers deploying and running SDE · Time: reference

1. Unit environment

File: /var/glitch-units/sde-network/glitch/config/enviroment. sde-install core writes it. After a change, recreate the unit: gl -d sde-network && gl -s sde-network. A value of __SET_ON_HOST__ counts as not set. The admin page's Settings tab shows the values in use.

Admin page

SettingWhat it doesDefaultNotes
SDE_NETWORK_GUAC_URLGuacamole, for admin sign-in. Only Guacamole administrators may sign in.Not set: sign-in is offsde-install sets http://guacamole:8080
SDE_NETWORK_SHARED_SECRETSecret for scripts and the gateway calling the admin API (header X-SDE-Network-Secret).None: the unit won't start without it16 characters or more. openssl rand -hex 32. The gateway's SDE_NETWORK_SECRET has the same value.
SDE_NETWORK_ADMIN_NETWORKSAddresses the admin page may be used from.Private ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, fc00::/7)Comma-separated. Addresses in SDE_GUEST_NETWORKS are always refused.
SDE_NETWORK_LISTENAddress and port the unit listens on.:8099nginx reaches it as sde-network:8099 on the sde docker network.
SDE_NETWORK_DATAData folder inside the container: state, revisions, change log, SSH key, backups./opt/sde-network/dataMapped to data/state on the host, owned by uid 1001, mode 700.
SDE_NETWORK_RECONCILEHow often the unit checks the zone, VNets and edge, and puts back what drifted.60sLess than 15s is treated as 60s.

Address block and zone

SettingWhat it doesDefaultNotes
SDE_NETWORK_BLOCKThe address block every network's subnet comes from. NAT applies to traffic from it.10.250.0.0/16IPv4, /23 or larger. Must not overlap the LAN or anything your firewall routes. GLServer needs a route to it via the edge.
SDE_GUEST_NETWORKSAddresses that are never "internal" to any SDE admin page or API.Not set (a warning in the log)Same value as the block, in every SDE unit. sde-install sets it.
SDE_NETWORK_ZONEThe Proxmox SDN zone's ID.sdeUp to 8 lower-case letters and digits. Rarely changed.
SDE_NETWORK_MTUMTU offered in the Set up dialog, sent to guests by DHCP and set on the edge's network cards.14501450 suits a 1500-byte underlay (VXLAN adds 50 bytes). The zone uses the dialog's value, so keep the two the same.
SDE_NETWORK_VNIVXLAN IDs given to networks.25000-25999A range low-high, 1–16777215.
SDE_NETWORK_ZONE_USERSProxmox users SDE Network allows to use its zone (SDN.Use), so they can put guests on networks.sde-vdi@pve,sde-vapps@pveComma-separated Proxmox users.

Edge router

SettingWhat it doesDefaultNotes
SDE_NETWORK_EDGE_IPThe edge's LAN address, with prefix.Not set: SDE Network stays idleFor example 10.20.0.19/24. Free, outside the LAN's DHCP range, outside the block.
SDE_NETWORK_EDGE_GATEWAYThe LAN's gateway: the edge's default route.Not setsde-install offers GLServer's default gateway.
SDE_NETWORK_GLSERVER_IPGLServer's LAN address: SDE's way in to guests and theirs to SDE.Not setsde-install sets it to the host it runs on.
SDE_NETWORK_EDGE_TEMPLATEVM ID of the router template.6899Built by pve-bootstrap-sde-network.sh --edge-template.
SDE_NETWORK_EDGE_VMIDVM ID for the edge router.6900
SDE_NETWORK_EDGE_NODENode the edge runs on.The template's node
SDE_NETWORK_EDGE_STORAGEStorage for the edge's disk.The template's storageThe token needs rights on it (bootstrap --storage).

Active Directory and DNS

SettingWhat it doesDefaultNotes
SDE_NETWORK_AD_DOMAINAD DNS domain. The edge forwards it to the DCs and gives it to guests as their DNS suffix.Not set: no ADFor example lab.local. sde-install copies the gateway's SDE_LDAP_UPN_SUFFIX.
SDE_NETWORK_DCSDomain controllers guests may reach on the AD ports.Not set: no AD rulesComma-separated IPv4 addresses. sde-install doesn't set it.
SDE_NETWORK_DNSUpstream DNS for all other names.The DCsComma-separated IPv4 addresses. Set it on a site without AD.

Proxmox

SettingWhat it doesDefaultNotes
SDE_NETWORK_PVE_URLProxmox API addresses.Not set: the unit is idleComma-separated, one per node, for example https://10.20.0.12:8006,https://10.20.0.13:8006. The bootstrap script prints it.
SDE_NETWORK_PVE_TOKEN_IDAPI token ID.Not setsde-network@pve!network
SDE_NETWORK_PVE_TOKEN_SECRETAPI token secret.Not setShown once by the bootstrap script.
SDE_NETWORK_PVE_POOLProxmox resource pool for the edge and its template.sde-network
SDE_NETWORK_PVE_CA_FILEProxmox's CA certificate, to trust the API's certificate.Not setFor example /opt/sde-network/data/pve-root-ca.pem (copy of a node's /etc/pve/pve-root-ca.pem).
SDE_NETWORK_PVE_INSECUREAccept any certificate from Proxmox.falseTest sites only.

2. Settings in other units

SettingWhat it doesDefaultNotes
SDE_GUEST_NETWORKS (every SDE unit)Guests at these addresses are never trusted as "internal" by sde-gateway, sde-vdi, sde-vapps, sde-redirector or sde-network.Not setThe address block. sde-install sets it in each unit; sde-install check checks it.
SDE_NETWORK_URL (sde-gateway)Where the usage report reads the network map.Not set: no Network map tabhttp://sde-network:8099
SDE_NETWORK_SECRET (sde-gateway)Secret for that call.Not setSame as SDE_NETWORK_SHARED_SECRET.
SDE_VDI_NETLOGON_KERBEROS (sde-vdi)true keeps Windows' Kerberos-based Netlogon secure channel when joining desktops.false: the classic channel (UseKerberosForSecureChannels=0)Leave it off for desktops on SDE Networks.
sde-network-route service (GLServer)GLServer's route to the block via the edge (ip route replace).Written by sde-install/etc/systemd/system/sde-network-route.service. netplan is left alone.

3. Bootstrap script options

scripts/network/pve-bootstrap-sde-network.sh, run as root on a Proxmox node.

SettingWhat it doesDefaultNotes
(no option)Creates the pool sde-network, the roles SDENETWORK and SDENETWORKACL, the user sde-network@pve, its token (privilege separation off) and the permissions; prints the unit's lines.Safe to run again.
--storage SStorage for the edge's disk. Repeat for several.Every storage that holds disk imagesWith --edge-template: the template's disk storage (default: the first that holds disk images).
--rotate-tokenDeletes and recreates the token, and prints the new secret.Not with --check.
--edge-templateBuilds the router template on this node.VM 6899 sde-edge-tpl-d12Downloads the Debian 12 genericcloud image (checksum checked).
--node NNode for the template.This nodeMust be this node.
--bridge BLAN bridge for the template's first card.vmbr0
--vmid IDTemplate's VM ID.6899Set SDE_NETWORK_EDGE_TEMPLATE to match.
--checkReports OK or FIX for each item, the nodes' addresses and the firewall state. Changes nothing.Exit code 1 when something needs fixing.

Permissions it grants to sde-network@pve:

PathRole
/PVEAuditor (read nodes, VMs, cards and SDN)
/sdnPVESDNAdmin and PVESDNUser
/sdn/zones/sdeSDENETWORKACL: Permissions.Modify, SDN.Allocate, SDN.Audit, SDN.Use
/pool/sde-networkSDENETWORK: VM.Allocate, VM.Clone, VM.Audit, VM.PowerMgmt, VM.Migrate, VM.Config.Options, Network, Memory, CPU, Disk, Cloudinit, HWType; Datastore.AllocateSpace, Datastore.Audit
/storage/<S>SDENETWORK
No ACL on /vmsA permission on a more specific path replaces what the user inherits there. Don't add one for sde-network@pve on /vms: it would replace PVEAuditor and hide VMs from the map.

4. Set up dialog

Overview → Set up…

SettingWhat it doesDefaultNotes
One field per nodeThat node's VXLAN address (the zone's peers).The node's cluster addressThe network that carries UDP 4789 between nodes, usually the cluster network.
MTU inside the networksThe zone's MTU.1450 (or an existing zone's)1280–8950. Keep it the same as SDE_NETWORK_MTU.

5. Network settings

Networks → New network, or the pencil icon on a card.

SettingWhat it doesDefaultNotes
NameThe network's name, also the VNet's alias in Proxmox.Required1–48 letters, digits, spaces and . , _ ( ) & ' -, starting with a letter or digit. Unique.
DescriptionShown on the card.EmptyUp to 200 characters.
SubnetThe network's addresses. The edge is .1.The next free /24 in the block/16 to /28, inside the block, not overlapping another network. Fixed once created.
DHCP rangeAddresses DHCP gives out..100–.250 on a /24; on other sizes, from a quarter of the way in to the second-last addressInside the subnet, start first, not including .1, the network or the broadcast address.
AccessIsolated, Internet or Custom.IsolatedSee the table below.
Keep guests apartMachines on this network can't reach each other, only the edge and beyond.OffProxmox VE 8.3+, datacenter firewall on, nftables on every node.
Reserved addressesFixed DHCP addresses by MAC.NoneSee section 7.
Access modeAdds to the built-in rules
IsolatedNothing.
InternetGuests to any address that isn't private (10.0.0.0/8, 100.64.0.0/10, 169.254.0.0/16, 172.16.0.0/12, 192.168.0.0/16), NATed to the edge's address.
CustomYour rules, in order. With no rules it's the same as Isolated. Rules are kept only in Custom mode.

6. Custom rules

In the network editor with Access set to Custom. First match wins; anything no rule allows is dropped. Rules apply to traffic leaving this network.

SettingWhat it doesDefaultNotes
ActionAllow or drop matching traffic.allowallow or deny
ProtocolWhich traffic matches.tcpany, tcp, udp, icmp
DestinationWhere the traffic goes.RequiredIPv4 addresses or networks, comma-separated; internet (any non-private address); or another network's ID such as sden0002 (not this network).
PortsDestination ports.Empty: all ports443, 80,443, 8000-8100; 1–65535; tcp or udp only.
DescriptionShown in the edge's rules.EmptyUp to 60 characters: letters, digits, spaces and . , _ : / ( ) & + -

7. Reserved addresses

SettingWhat it doesDefaultNotes
MAC addressThe guest's card.RequiredLike bc:24:11:aa:bb:cc. Each MAC once per network.
AddressThe address it always gets.RequiredInside the subnet; not .1, the network or the broadcast address. Each address once.
Host nameName the edge's DNS gives the address.EmptyLower-case letters, digits and hyphens, up to 63 characters.

8. Built-in firewall rules

Always on, on every network, whatever the access mode. They can't be edited. Overview → Rules on the edge shows them as running, with counters. "Guests" means any SDE network; "GLServer" is SDE_NETWORK_GLSERVER_IP; "DCs" is SDE_NETWORK_DCS.

Through the edge

FromToProtocol and portsActionNotes
AnyAnyReplies to allowed connectionsAllowInvalid packets are dropped.
GLServerGuestsTCP 22, 3389; ICMP echo (ping)AllowRemote desktop (Guacamole, RD Gateway) and SSH (SDE vApps). Routed: guests see GLServer's address.
GuestsGLServerTCP 443; ICMP echoAllowThe portal, SDE Devices agents. Routed: SDE sees the guest's address.
GuestsDCsTCP 53, 88, 135, 389, 445, 464, 636, 3268–3269, 49152–65535AllowOnly when SDE_NETWORK_DCS is set. NATed to the edge's address.
GuestsDCsUDP 53, 88, 123, 389, 464AllowAs above. Ping to the DCs isn't allowed.
GuestsInternetAnyAllowInternet mode only (or a Custom rule).
GuestsProxmox nodes, the LAN, other SDE networks, anything elseAnyDropUnless a Custom rule allows it. Counted as "dropped forward".

To the edge itself

FromToProtocol and portsActionNotes
GuestsEdge (.1)UDP 53, 67; TCP 53AllowDHCP and DNS.
GLServerEdge (LAN address)TCP 22Allowsde-network's management SSH. The key may only run the edge's apply command.
AnyEdgeICMP echoAllow
AnyEdgeAnything elseDropCounted as "dropped input".

Address translation

TrafficSource address seen
Guests to GLServerThe guest's own address (routed)
Guests to anything else on or beyond the LAN (DCs, internet, allowed servers)The edge's LAN address (NAT)

Traffic between guests on the same network doesn't pass the edge, so these rules don't apply to it. Use Keep guests apart to stop it.

9. Keep guests apart rules

Written on the VNet's Proxmox firewall (forward direction, every node) when Keep guests apart is ticked. Each has a comment starting sde-network:. The VNet's policy stays ACCEPT and other rules on the VNet are left alone.

RuleAction
From or to the edge (.1)Accept
Subnet to subnetDrop
IPv6 link-localDrop

10. Limits and fixed values

ItemValue
Networks per edge31
Custom rules per network100
DHCP lease time12 hours
DHCP options sentRouter and DNS = .1, domain and search domain (with AD), MTU
VNet IDssden0001, sden0002…
Edge router VMDebian 12, 1 core, 512 MB, 4 GB disk, named sde-edge, in pool sde-network
Revisions kept50, in the unit and on the edge
Daily backups kept14
Activity shownThe most recent 500 changes
Admin sign-in lasts8 hours

11. Admin page tabs

TabWhat's there
OverviewNetworks, zone, edge router and rules revision; each node's zone status; Set up…, Repair, Rules on the edge, Remove SDE Network…. Warns about VNets in the zone that SDE Network doesn't manage.
MapThe network map.
NetworksA card per network: edit, delete, Guests and leases.
ChangesRevisions: View, Roll back.
ActivityChange log.
ReadinessLive checks: Proxmox token and privileges, same versions on every node, router template and address, zone on every node, SDE VDI and SDE vApps rights, edge running and up to date, GLServer's route, guest isolation, room for more networks. Changes nothing.
SettingsBackup (download, restore) and the values from the unit's environment (read-only).

person people found this useful.