Skip to content

Standard Switches

A Standard Switch is a FreeBSD bridge that Sylve creates and manages. Use one when you want Sylve; not rc.conf or another configuration system; to own the bridge, its selected physical ports, host addresses, VLAN handling, and lifecycle.

If an upstream router or gateway is connected through a physical NIC on the node, add that NIC to the switch as a Port. Put the node’s address configuration on the Standard Switch itself: either select or type static addresses and gateways, or enable DHCP and let the bridge obtain IPv4 configuration from the upstream network. The physical port remains unaddressed as a bridge member.

Sylve does not rewrite rc.conf. Keep the selected physical port’s rc configuration at layer 2 only, for example ifconfig_igb0="up", or omit it. Remove DHCP, static addresses, aliases, and accept_rtadv from that port. Otherwise FreeBSD can start a second DHCP or SLAAC client on the bridge member after a link event, competing with the bridge for addresses and default routes. Before create or update, Sylve reports detected effective rc.conf conflicts and requires explicit confirmation. Confirmation does not modify the external configuration.

The same confirmation reports when a selected port is configured with addm on another cloned bridge or is currently attached to another bridge. These checks apply only while managing Standard Switches. Register an externally managed rc.conf bridge as a Manual Switch instead; Sylve does not rewrite or reconcile Manual Switch configuration.

Do not configure the Sylve-generated bridge in rc.conf either.

For a dual-stack LAN with a portless bridge, create these one-entry objects before opening the switch modal:

Object Type Example value Used for
LAN Network Network 192.168.67.1/24 The IPv4 address and prefix assigned to the bridge.
LAN Gateway Host 192.168.67.1 The IPv4 next-hop gateway.
LAN IPv6 Network Network fd12:6767::1/64 The IPv6 address and prefix assigned to the bridge.
LAN IPv6 Gateway Host fd12:6767::1 The IPv6 next-hop gateway.
LAN Switch MAC MAC 02:00:00:00:67:01 The stable link-layer identity of a portless bridge.
Network Objects table containing LAN IPv4 and IPv6 network and gateway objects plus a single-entry LAN Switch MAC object

Use a Network object for the address on the bridge, expressed in CIDR notation; not the bare subnet base such as 10.20.30.0/24. Use a Host object for each gateway. The switch form also accepts a typed CIDR for Network and a typed IP address for Gateway, but objects are preferred: they provide one reusable, inspectable source of truth for addresses used elsewhere in Sylve.

A Standard Switch also requires an explicit bridge MAC source. A bridge with physical ports can inherit the MAC of one selected port. A portless bridge must use a single-entry MAC object. The address must be a valid non-zero unicast MAC. A locally administered address whose first octet is 02, such as the example above, is appropriate when it is unique on your network.

Open Network → Switches → Standard and select New. The modal creates the bridge and applies its configuration. This example creates an isolated LAN bridge with object-backed IPv4 and IPv6 addressing and no physical ports.

Create Standard Switch dialog for a portless LAN bridge using IPv4 and IPv6 objects, an explicit MAC object, and disabled bridge offloads
Field Meaning
Name A unique Sylve switch name. Sylve derives a bridge name from it; do not rely on that generated bridge name as a user-facing identifier.
MTU The bridge MTU. Leave the default unless every link in the path is configured for a different value.
VLAN Optional VLAN tag applied when Sylve creates member interfaces for the selected ports.
IPv4 / IPv6 Network The bridge’s address in CIDR notation, selected from a one-entry Network object or typed directly.
IPv4 / IPv6 Gateway The next-hop router, selected from a Host object or typed directly. A gateway requires the corresponding network/address.
Ports Interfaces that Sylve will attach to the bridge. Sylve clears all IPv4 and IPv6 addresses from each selected port before attachment. Configure the address on the bridge instead.
Bridge MAC source Select Use port MAC and one of the switch ports, or select Use MAC object and a single-entry MAC object. The form displays the effective MAC before saving.

The bridge MAC is persistent configuration, not a cosmetic label. Keeping it stable avoids the bridge changing identity when ports are reordered, link state changes, or a portless switch is recreated. If you use Use port MAC, the source must remain one of the switch’s selected ports. Use a MAC object when the identity must remain independent of physical hardware.

Checkbox Effect
Private Prevents traffic between guests attached to the same switch while retaining communication with physical interfaces attached to it.
DHCP Makes the bridge a DHCP client for IPv4. Sylve requests an IPv4 address from an external DHCP server and clears static IPv4 network/gateway selections. It does not start a DHCP server. Whether DHCP may supply the node’s default route is controlled separately.
SLAAC Makes the bridge an IPv6 SLAAC client. Sylve solicits and accepts router advertisements for address configuration and clears static IPv6 selections. It does not provide router advertisements or act as a DHCPv6 server. Whether the router enters FreeBSD’s Default Router List is controlled separately.
Disable IPv6 Disables IPv6 on the bridge and turns off SLAAC. Use only when IPv6 truly must not be present.
Disable Bridge Offloads Disables bridge-sensitive TOE, TX checksum, TSO, LRO, and MEXTPG capabilities on selected ports before bridge attachment. This is enabled by default and recommended: it avoids link flaps while VM tap and jail epair ports come and go. Turning it off stops enforcement; it does not re-enable capabilities already disabled.
IPv4 Default Route Makes this switch the node’s IPv4 default-route owner. With static addressing, Sylve installs the configured IPv4 gateway. With DHCP, the label becomes Use DHCP Default Route and Sylve accepts DHCP router information; non-owner DHCP switches still obtain addresses but suppress the DHCP router and classless-route options.
IPv6 Default Route Makes this switch the node’s IPv6 default-route owner. With static addressing, Sylve installs the configured IPv6 gateway. With SLAAC, the label becomes Use RA Default Route and Sylve permits advertised routers to enter FreeBSD’s Default Router List; non-owners still configure SLAAC addresses.

IPv4 and IPv6 ownership are independent: one Standard Switch may own both families, or different switches may own one family each. Sylve permits at most one configured owner per family for newly created or edited switches.

For a non-owner DHCP switch, Sylve starts that bridge’s client with a generated per-interface configuration that ignores only routers and classless-routes. The rest of /etc/dhclient.conf is included, so settings such as DNS, hostname, and requested lease options keep their administrator-defined behavior. On the next switch reconciliation, changes to /etc/dhclient.conf cause the managed client to restart with the updated effective configuration. FreeBSD presents DHCP option 121 as one classless-routes value, so non-owner mode suppresses all routes from that option, not just a default route it may contain; configure any required routes separately in Sylve.

When a SLAAC switch owns the IPv6 default route, Sylve enables FreeBSD’s RFC 6204 W-3 behavior immediately before applying that managed owner and soliciting a router advertisement. Sylve does not enable it unconditionally during startup when there is no managed SLAAC route owner.

After creation the switch appears in the table with its ports, MTU, VLAN, and assigned IPv4/IPv6 configuration. It can then be selected for jail and VM network interfaces; Sylve attaches each workload’s virtual port to the managed bridge.

Standard Switches table showing the LAN switch