-
Notifications
You must be signed in to change notification settings - Fork 2
glossary
Pre-Alpha. This page describes behavior that may change.
Terms and acronyms that appear throughout the Ze documentation. Split into BGP terms, Ze-specific terms, and terms inherited from ExaBGP.
ADD-PATH. RFC 7911. Extension that lets a peer advertise multiple paths for the same prefix, instead of only the best one. Matters for route servers and for multi-path BGP.
Adj-RIB-In. The routes received from one peer, before policy and best-path. Ze exposes the raw bytes through the bgp-adj-rib-in plugin for forensic replay.
Adj-RIB-Out. The routes sent to one peer, after policy and best-path. Implementation-specific how it is stored.
AS path. The sequence of autonomous systems a route has traversed. AS_SEQUENCE (strictly ordered) and AS_SET (unordered, from aggregation) are both valid. Ze stores the parsed form under bgp-rib, but the wire layer never decodes it unless something actually asks.
Best path. The one route the router selects from the set of available paths to a prefix. Ze's best-path runs in the bgp-rib plugin when acting as a route server. In ExaBGP-style operation, there is no best-path selection: plugins decide what to forward.
BGP-LS. BGP Link State. RFC 7752. Carries IGP topology over BGP.
BFD. Bidirectional Forwarding Detection. RFC 5880/5881/5882/5883. Sub-second liveness detection. Ze implements BFD as a plugin with authentication, echo mode, and BGP peer opt-in. See BFD.
BMP. BGP Monitoring Protocol. RFC 7854. Ze implements BMP as both a receiver and sender, with Adj-RIB-Out support (RFC 8671). See BMP.
Capability. A feature advertised during OPEN that both peers must support for it to be used. ADD-PATH, 4-byte ASN, Graceful Restart, Route Refresh, and BGP Role are the common ones.
CLUSTER_LIST. RFC 4456 attribute used for route reflector loop detection. Ze's loop filter checks it on iBGP sessions.
Community. An opaque tag attached to a route. Standard communities are 32 bits, large communities (RFC 8092) are 96, extended communities are 64. Ze handles all three.
EVPN. Ethernet VPN. RFC 7432. L2VPN with a BGP control plane. Ze ships bgp-nlri-evpn for it.
DPD. Dead Peer Detection. IKEv2 mechanism (RFC 7296 Section 2.4) for detecting unresponsive peers via INFORMATIONAL exchange.
Flowspec. RFC 8955. BGP for distributing traffic filtering rules. Ze ships bgp-nlri-flowspec. Used for DDoS mitigation. The flowspec-firewall plugin converts FlowSpec rules into nftables entries.
FSM. Finite State Machine. The BGP FSM has six states: Idle, Connect, Active, OpenSent, OpenConfirm, Established.
Graceful Restart. RFC 4724. Lets a peer restart its BGP process without dropping forwarding state. Ze ships bgp-gr, which pairs with bgp-rib and (optionally) bgp-persist for the disk side.
Hold timer. The interval after which a session is torn down if no message has been received. Default 90 seconds, minimum 3.
IRR. Internet Routing Registry. Distributed databases (RIPE, RADB, etc.) containing routing policy objects. Ze ships bgp-filter-irr to filter prefixes against IRR data. See bgp-filter-irr.
iBGP. Internal BGP. Peers in the same AS. Ze uses the same peer configuration as eBGP, with matching local { as } and remote { as }.
LOCAL_PREF. Local preference. The first tie-breaker in best-path selection, for iBGP peers.
MED. Multi-Exit Discriminator. RFC 4271. Hints to a peer which path to prefer when multiple exits exist. Ze passes it through and uses it in the RIB plugin's best-path selection.
MRT. Multi-Threaded Routing Toolkit format. RFC 6396. Binary format for BGP route collection. Ze both records MRT from live BGP sessions (daemon mrt component with three streams: updates, all, periodic RIB) and reads MRT for analysis via ze-analyze.
NLRI. Network Layer Reachability Information. The prefix or identifier being advertised. Each address family has its own NLRI encoding.
NOTIFICATION. RFC 4271 section 4.5. The BGP message that ends a session. Ze logs every notification sent and received through the operational report bus.
Origin AS. The last ASN in an AS_PATH. The AS that introduced the prefix into BGP.
OTC. Only To Customer. RFC 9234 attribute. Stamped by the Role plugin on eligible egress updates to prevent leaks from provider to non-customer peers.
PATHS-LIMIT. draft-abraitis-idr-addpath-paths-limit. Capability that lets an ADD-PATH receiver advertise the maximum number of paths it wants per prefix per family, preventing uncontrolled path proliferation.
Peer. In Ze, a named configuration entry representing a BGP session. The name is an operator label, not the peer's IP.
Prefix limit. RFC 4486. Per-family maximum number of prefixes accepted from a peer. Mandatory in Ze: the daemon refuses to start without a prefix { maximum } for every configured family.
RIB. Routing Information Base. The in-memory table of routes. Ze's bgp-rib plugin is the main RIB implementation.
Route Refresh. RFC 2918. Capability that lets a peer request the other side to re-send its full table for a family. Ze ships bgp-route-refresh for both standard and Enhanced Route Refresh (RFC 7313).
Route server. A daemon that reflects routes between IXP members without modifying the next hop. Ze's bgp-rs plugin implements RFC 7947 route server behaviour.
AIGP. Accumulated IGP Metric. RFC 7311. Path attribute carrying the IGP cost from origin. Ze encodes, decodes, and exposes the metric but does not use it in best-path selection.
ASPA. Autonomous System Provider Authorization. Verifies AS_PATH hop authorization against provider-customer records distributed via RTR v2 (RFC 9582). Ze implements ASPA with configurable policy enforcement (reject/log-only/accept).
MOBIKE. IKEv2 Mobility and Multihoming Protocol. RFC 4555. Allows address updates for mobile/multihomed IPsec endpoints.
PXE. Preboot Execution Environment. Network booting standard. Ze's ze install remote uses PXE with DHCP options 43/60/66/67/93 (BIOS/UEFI bootfile selection) for zero-touch provisioning.
LDP. Label Distribution Protocol. RFC 5036. Distributes MPLS labels via UDP multicast discovery and TCP sessions. Ze ships an ldp component that emits forwarding entries on the mpls-fib bus. See MPLS / LDP / RSVP-TE.
RSVP-TE. Resource Reservation Protocol with Traffic Engineering extensions. RFC 3209 (over RFC 2205). Signals explicit MPLS label-switched paths with bandwidth admission control. Ze ships an rsvp-te plugin. See RSVP-TE.
MPLS. Multiprotocol Label Switching. Ze programs the Linux kernel MPLS FIB for BGP labeled-unicast routes (label push via netlink lwtunnel); fib-kernel owns the kernel FIB and consumes push/swap/pop entries from the mpls-fib bus.
SRv6. Segment Routing over IPv6. Ze implements the SRv6 Prefix-SID attribute (RFC 9252, RFC 8669) for VPN and EVPN families, programming Linux SEG6 and VPP SR steering. See SRv6.
gNMI. gRPC Network Management Interface. Industry-standard config/telemetry protocol. Ze ships a gnmi component with Capabilities, Get, Set, and Subscribe (ONCE and STREAM) over the YANG config tree. See gNMI.
Flow export. Exporting interface counters and per-flow records to collectors over sFlow v5, NetFlow v9 (RFC 3954), and IPFIX (RFC 7011). Ze ships a flow-export plugin. See Flow Export.
RPKI. Resource Public Key Infrastructure. RFC 6480. Cryptographic validation of route origins. Ze ships bgp-rpki for the RTR client.
RTR. RPKI to Router protocol. RFC 6810 and RFC 8210. The protocol between a router and an RPKI cache.
SR-Policy. Segment Routing Policy. SAFI 73. Carries SR policy state over BGP for traffic-engineering headend programming. Ze ships bgp-nlri-srpolicy for it.
UPDATE. The BGP message carrying route announcements and withdrawals. Ze parses UPDATE lazily into a WireUpdate.
ABR. Area Border Router. An OSPF router active in the backbone (0.0.0.0) and at least one other area; originates Type 3 and Type 4 summary LSAs. See OSPF.
ASBR. AS Boundary Router. An OSPF router that originates external LSAs, by redistributing another protocol or via default-information originate.
CSNP / PSNP. Complete / Partial Sequence Number PDU. IS-IS PDUs carrying LSP-entry digests for link-state database synchronisation.
DIS. Designated IS. The IS-IS router elected per level on a broadcast LAN; originates the pseudo-node LSP. See IS-IS.
Fast Reroute (FRR). RFC 4090. Local repair at a point of local repair (PLR): a pre-signaled bypass LSP carries protected traffic within tens of milliseconds of a link or node failure while the head-end re-optimizes (make-before-break). Ze implements facility backup, where one bypass protects many LSPs. See RSVP-TE.
gokrazy. The minimal appliance operating system Ze builds on: read-only SquashFS root, an ext4 /perm partition, A/B updates, and no shell or PATH (internal plugins only). See Appliance.
IGP. Interior Gateway Protocol. Routes within one autonomous system. Ze ships native OSPF and IS-IS.
IIH. IS-IS Hello PDU. Discovers neighbours and maintains adjacencies (LAN IIH on broadcast links, point-to-point IIH on serial or p2p links).
IS-IS. Intermediate System to Intermediate System. ISO/IEC 10589, RFC 1195. Native link-state IGP running directly over Layer 2. See IS-IS.
Label. A 20-bit MPLS shim-header value. Routers push, swap, and pop labels to forward a packet along a label-switched path. See MPLS / LDP / RSVP-TE.
LSA. Link State Advertisement. The unit of OSPF topology information (Router, Network, Summary, AS-External, NSSA, Link).
LSDB. Link State Database. The synchronised store of LSAs (OSPF) or LSPs (IS-IS) that feeds the SPF computation.
LSP. Overloaded acronym: in MPLS/RSVP-TE context, a Label-Switched Path (the path a labeled packet follows); in IS-IS context, a Link State PDU (the advertisement a router floods).
NET. Network Entity Title. The IS-IS router address: area address, 6-octet System ID, and NSEL. Source of the System ID.
NSSA. Not-So-Stubby Area. RFC 3101. A stub-like OSPF area that permits local external redistribution via Type 7 LSAs, with election-based Type 7 to Type 5 translation. See OSPF.
OSPF. Open Shortest Path First. Link-state IGP. Ze runs OSPFv2 (RFC 2328, IPv4) and OSPFv3 (RFC 5340, IPv6) on one engine. See OSPF.
Pseudo-node. A virtual IS-IS node representing a broadcast LAN, collapsing the full adjacency mesh into a star centred on the DIS.
SPF. Shortest Path First (Dijkstra). The algorithm that builds the OSPF or IS-IS route table from the link-state database.
TUI launcher. The interactive hierarchical command menu shown when ze runs in a terminal with no arguments. See CLI.
ZTP. Zero-Touch Provisioning. Bare-metal install with no per-device manual setup, driven by ze install remote over DHCP, TFTP, and HTTP. See Zero-Touch Provisioning.
AS112. Anycast DNS sink for misdirected reverse-DNS queries (RFC 7534 / 7535). Ze runs an AS112 node and originates the covering prefixes into BGP under a watchdog.
CoPP (Control-Plane Policing). Rate-limiting of traffic destined to the control plane, for example TCP/179, to keep the daemon responsive under load.
DoH (DNS-over-HTTPS). RFC 8484. DNS queries carried over HTTPS. Ze offers DoH listeners for AS112 and GeoDNS.
DoT (DNS-over-TLS). RFC 7858. DNS queries carried over TLS. Ze offers DoT listeners for AS112 and GeoDNS.
DNSSEC. DNS Security Extensions. Ze's stub resolver can validate upstream answers in permissive or strict mode (ze resolve dns --dnssec).
GeoDNS. An authoritative DNS server that answers based on the querying source IP.
GTSM (Generalized TTL Security Mechanism). RFC 5082. Rejects BGP packets whose TTL is below a threshold, enforced on the socket via IP_MINTTL. Also called TTL security.
LAC (L2TP Access Concentrator). The initiator side of an L2TP tunnel: it dials the tunnel and places calls. Ze can act as both LAC and LNS.
LNS (L2TP Network Server). The answering side of an L2TP tunnel that terminates PPP sessions.
LDP-IGP sync. Holds an IGP link's metric high until LDP label bindings are ready, avoiding traffic black holes during convergence.
TI-LFA (Topology-Independent Loop-Free Alternate). A fast-reroute technique that computes a guaranteed loop-free backup path using segment routing. Ze's OSPF supports both LFA and TI-LFA.
Virtual link (OSPF). A logical link across a transit area that connects an area to a discontiguous backbone.
bgp-*. Plugin name prefix for BGP plugins. bgp-rib, bgp-gr, bgp-rpki, bgp-nlri-evpn, and so on.
Bus. The content-agnostic pub/sub backbone (internal/component/bus/). Topics are hierarchical, subscriptions match on prefixes, payloads are opaque. Not the hot path for BGP data: that goes through direct calls.
CoS. Class of Service. Ze's cos plugin provides 802.1p VLAN QoS maps with named profiles and dynamic per-subscriber CoS via RADIUS. See Class of Service.
Commit confirmed. Commit with an auto-rollback timer. If you do not commit confirm before the timer expires, Ze reverts the change. Use it for remote changes that might lock you out.
Config archive. Every committed config is kept. rollback N jumps back N commits. show archive lists what is available.
ContextID. An identifier for a peer's negotiated encoding context: ASN4, ADD-PATH, Extended Message, Extended Next Hop, iBGP vs eBGP, ASN values. Two peers with the same ContextID can receive the same cached wire bytes unchanged.
DirectBridge. The in-process plugin transport. Internal plugins bypass the IPC layer entirely and call through a direct bridge.
Enricher. A plugin-contributed data source for show commands. Plugins register enrichers via show.MustRegister() to add supplemental data to output. External plugins use a callback protocol with a 2-second timeout.
EventDispatcher. The plugin-facing bridge. Delivers events to subscribed plugins, routes commands back.
fib-kernel. The plugin that programs the Linux FIB through netlink.
Hub. The TLS transport for plugin communication and fleet management. Named server blocks declare listeners; client blocks declare outbound connections.
In-process vs external plugin. In-process plugins are Go code compiled into the binary. External plugins are separate processes started by Ze. Same APIs; different transport.
ModAccumulator. The lazy data structure an egress filter writes into when it needs to modify an outgoing UPDATE. If nothing writes to it, no copy happens.
nop. A keyword in Ze's set config format that replaces the previous set + inactive: combination. nop system ntp marks the ntp container inactive in a single line.
Peer-up barrier. A plugin declaration (PeerUpBarrier) saying the plugin does work on the peer-up event that a peer's initial-sync End-of-RIB must not overtake, such as registering the peer as a forward target. The engine holds the End-of-RIB until every barrier plugin has taken delivery of the event, so "End-of-RIB sent" means "every barrier plugin has registered this peer". Bounded; a plugin that never acknowledges only delays the marker to the timeout. See Go plugins.
Peer-up cut. The reactor MessageID captured when a peer becomes a live forward target, used to partition the route server's peer-up replay from its live forwarding. At or below the cut belongs to the replay, above it to the live rail. Carried as presence plus value, because zero is an ordinary cut value rather than a sentinel. See bgp-rs.
PluginManager. Owns plugin lifecycle: spawning, handshake, event dispatch, command routing.
Process. In Ze config, a process block under a peer binds a plugin to receive events from that peer.
Role claim. A Claims entry in a plugin's static registration naming an exclusive runtime role it takes over from another plugin's default behaviour (for example bgp-peer-up-replay). The engine unions the claims of the startup set and delivers them on the Stage-2 configure callback, so the standing-down plugin knows before any peer starts. Unclaimed reads false, which is the fail-closed direction. See Go plugins.
Reactor. The BGP event loop and message cache. Holds the per-peer FSMs and the cached WireUpdates.
Register. Every plugin calls registry.Register() in its init(). This is how the plugin, its families, its commands, and its schema become visible to the rest of the binary.
Report bus. The cross-subsystem operator-visible issue bus. Producers push warnings and errors, ze show warnings and ze show errors read, the CLI login banner reads the BGP subset.
Subsystem. A logical grouping of code. BGP is a subsystem. Interface management is a subsystem. Subsystems plug into the supervisor, the bus, the config provider, and the plugin manager.
Supervisor. The engine. Wires the bus, the config provider, and the plugin manager together and starts subsystems in order.
Watchdog group. A named group that controls deferred route announcement. Healthcheck probes drive watchdog groups to announce or withdraw routes.
WireUpdate. A lazily-parsed BGP UPDATE. Holds a byte slice into the TCP read buffer plus a ContextID. Never decoded into intermediate structs on the receive path.
Verb-first grammar. Ze's CLI command grammar where the verb comes before the noun: show peer list, request peer teardown, clear dns cache. All commands follow this pattern.
ze format. Offline pipe formatting tool. Applies the same pipe operators (json, table, match, count, resolve, origin, first, last) to any command's stdout without a running daemon.
Ze. The project. Pronounced like the letter Z in French. Thomas is French.
XFRM. Linux kernel's IPsec transformation framework. Ze uses XFRM interfaces for route-based IPsec: traffic routed through an XFRM interface is encrypted, traffic arriving on it is decrypted.
AttrPool. Per-attribute deduplication pool with per-pool shard counts and per-shard compaction. Reduces memory consumption by sharing identical path attributes across routes.
textbuf. Buffer-based string building library (internal/core/textbuf/) used on hot paths to avoid fmt.Sprintf allocations. Supports ANSI color with buffer-level toggle, Repeat, PadRight, and io.Writer interfaces.
ze-analyze. The standalone MRT analysis tool (also ze-analyse).
ze-chaos. The chaos testing orchestrator.
Audit trail. The structured local audit log. Records config commit/discard, daemon reload, and failed authentication across every operator surface. Disk-backed JSON-lines when Ze starts from a config file, memory-only for stdin configs. Read with show audit. See Audit.
ze doctor. System readiness checker. Runs offline pre-start checks (runtime platform detection plus config, TLS, interfaces, ports, disk space, DNS, clock, NTP, machine-id) with stable diagnostic codes. See Health Checks.
ze support. Tech-support bundle generator. Collects 20 pure-Go diagnostic modules into a single archive, gokrazy-safe with no shell-outs.
ze-perf. The BGP propagation latency benchmark tool.
ze-test. The functional test driver.
ZeFS. Ze File System. The blob storage format used for credentials, config, and certificates. Supports per-record CRC32c integrity checks and in-place writes.
Anomaly detection. Ze's behavioral security domain, separate from volumetric DDoS: a per-source pattern-of-life detector plus a shadow-first firewall responder. Surfaced via show anomaly detect and show anomaly shape.
Direction-aware mitigation. DDoS mitigation that classifies a victim as box-local (dropped at INPUT) or transit (dropped at FORWARD, or blackholed upstream via FlowSpec).
Feature gate. A ze_<feature> build tag that compiles a subsystem out of the binary. Thirty-six exist, including the BGP engine (ze_bgp), the BNG (ze_l2tp), IPsec (ze_ike), and every management surface. Smaller images, less attack surface; a config selecting a compiled-out subsystem is rejected as unknown. Declared once in feature-gates.txt. See Building.
Flowtriq. A DDoS incident reporter integration that exports characterized incidents to a Flowtriq collector.
Freeze-learn. An anomaly-detector guard that stops a sustained attack from training the baseline to accept it.
Linux Control Plane (LCP) pair. A VPP feature that shadows a VPP interface into a Linux TAP so kernel networking, such as the BGP listener, can bind to a VPP-owned NIC. Distinct from PPP's Link Control Protocol.
Traffic-feature. A neutral facts layer computed from traffic that both the DDoS and anomaly subsystems consume. Surfaced via show traffic-feature.
Bridge plugin. ze exabgp plugin. Runs an existing ExaBGP process script with Ze as the BGP engine, translating between ExaBGP JSON and Ze JSON.
ze config migrate. Converts an ExaBGP configuration file to the current Ze syntax.
ExaBGP. The Python predecessor of Ze. github.com/Exa-Networks/exabgp. Same programmable BGP model, single-threaded, more mature, still in production everywhere.
- Comparison for the per-feature matrix against other BGP daemons.
- Feature inventory for the list of what Ze can do today.
- Architecture for the mental model behind the Ze-specific terms.
Unreviewed draft. This wiki was authored in bulk and has not been reviewed. File corrections on the issue tracker.
- Overview
- YANG Model
- Editor Workflow
- Archive and Rollback
- System
- Interfaces
- VRRP
- BFD
- FIB
- OSPF
- IS-IS
- MPLS / LDP / RSVP-TE
- RSVP-TE
- SRv6
- Static Routes
- Policy Routing
- Firewall
- Traffic Control
- Class of Service
- L2TP/PPP
- PPPoE
- VPP Data Plane
- RPKI
- IPsec VPN
- TACACS+ AAA
- RADIUS AAA
- AS112 DNS
- Authorization
- Fleet
- BGP
- Starting and Stopping
- Show Commands
- Monitoring
- Flow Export
- DDoS Mitigation
- Anomaly Detection
- Health Checks
- Audit Trail
- Production Diagnostics
- Logging
- Operational Reports
- Healthcheck
- Self-Update
- Zero-Touch Provisioning
- MRT Analysis
- Upgrade and Restart
- Storage
- Policy
- Core
- Resilience
- Validation
- Capabilities
- Address Families
- Protocol
- Subsystems
- Infrastructure
- Route Server at an IXP
- Transit Edge with RPKI
- Public Looking Glass
- ExaBGP Migration Walkthrough
- FlowSpec Injection
- Chaos-Tested Peering
- AS Path Topology