Expand description
802.1Q trunks: a machine on several VLANs of one LAN gets one tagged link instead of one interface per VLAN, as a router-on-a-stick or a server on a trunk port has.
Containers. Each VLAN stays a Docker network of its own (machines on one VLAN, the router,
the checks and the internet work as for any network). The LAN gets a switch container on each
of its VLAN networks (at the controller address, unused on Docker) and on one internal link
per trunk machine; inside, a bridge per VLAN joins the VLAN network and the trunks’ .<id>
subinterfaces, so frames cross the trunk tagged. The trunk machine’s network sidecar names
its end after the LAN and puts its addresses on <lan>.<id>. A LAN with a switch of its
own (a switch appliance) gets no switch container: the appliance takes its place on the same
networks, and the trunk machines’ end is the same.
VMs. The hypervisor carries each VLAN on its own network, one NIC each, as for any
network; inside, a veth pair stands for the trunk: its end named after the LAN holds the
addresses on <lan>.<id>, the other end’s .<id> joins a bridge with the VLAN’s NIC. Tagged
frames cross the veth (a capture on <lan> shows them). Each <lan>.<id> takes its NIC’s MAC
address and the NIC, now only a bridge port, a local one, so the hypervisor still sees only
the MAC it gave the VM (no promiscuous mode, on every provider).
Structs§
Enums§
- End
- One end of a trunk’s link.
Functions§
- carried
- Whether a machine reaches a VLAN network through a trunk rather than an interface of its own.
- containers
- The trunks of the machines run as containers: each on two or more VLANs of one LAN.
- interface
- The interface name on the machine’s end: the LAN’s (
office, thenoffice.10), within Linux’s 15 characters with room for.<id>. - link_
network - The Compose network of a trunk: an internal link between the machine and the LAN’s switch.
- mac
- A locally administered MAC address for one end of a trunk, so each end finds its interface
whatever Docker names it: FNV-1a of
<lan>/<machine>, the last bit telling the ends apart. - machine_
commands - The machine’s end, first thing its network sidecar does: the link named after the LAN, and
its addresses on
<lan>.<id>. With no other way out, the default route goes through a VLAN with internet (Docker’s gateway on it, reached through the switch). - machine_
ready - What the machine’s sidecar healthcheck waits for: its addresses on the trunk.
- of
- The trunks of one machine.
- switch_
address - The switch’s address on a VLAN network: the controller’s, which Docker leaves free.
- switch_
name - The LAN’s switch service.
- switch_
ready - What the switch’s healthcheck waits for: every bridge up.
- switch_
script - The switch’s start: a bridge per VLAN joining the VLAN network and every trunk’s
.<id>. - vm_
commands - Commands that build a VM’s trunk (once per boot: they do nothing when it’s there).
- vms
- The trunks of the machines run as Linux VMs: each on two or more VLANs of one LAN.