Network vendor standards — the lock-in is in the operating model, not the CLI
Criteria verified as of August 2026. Re-verify on the web before committing to anything (§8).
1. Scope and triggers
Applies when the decision depends on who makes the box: which network operating system each
platform runs and what that implies; the vendor's configuration model (transactional versus
immediate) and what safe operation it allows; licensing and what stops working when it
expires; the firmware lifecycle and the EoS/EoL milestones; consuming PSIRT advisories as a
process, not as occasional reading; support, TAC and RMA contracts and what they really cover;
vendor risk (acquisitions, regulatory restrictions, product-line discontinuation); and the
criteria for standardising on one vendor versus multivendor, with the real cost of each option.
Triggers: IOS-XE, NX-OS, IOS-XR, Junos, Junos Evolved, EOS, RouterOS, VRP,
SR Linux, SR OS, FortiOS, PAN-OS; event manager applet, commit confirmed,
commit check, rollback, apply-groups, config session, show license all,
license smart url, SLAC, CSSM, CSLU, Catalyst Center, CloudVision/CVaaS, Winbox, ZTP;
"EoS", "LDoS", "PSIRT", "TAC", "RMA", "licence renewal", "vendor change".
Not applicable: the catalogue already splits this up: networking-standards is the trunk
(addressing, VLAN, MTU, OOB plane, choice of edge platform) and already delegates the
depth; routing-switching-standards decides what the campus and edge configuration must say
(STP, MLAG, VRRP, BGP policy, RPKI, CoPP, AAA — here only what that translates into on each
OS); datacenter-fabric-standards decides the fabric (Clos, VXLAN/EVPN);
network-automation-standards decides how a change is generated, tested and applied (Ansible,
NAPALM, NETCONF/YANG, gNMI, containerlab, drift detection — here only what each vendor exposes
and with what fidelity); firewall-policy-standards (filtering policy as an artifact, including
FortiOS/PAN-OS as a firewall); wireless-standards (WLAN and controllers);
load-balancing-standards, vpn-standards, dns-standards, network-troubleshooting-standards
(reactive method). Outward: vulnerability-management-standards (triage and patching SLA;
here only the subscription and consumption of the PSIRT feed), wan-legacy-standards (MPLS,
SD-WAN and legacy circuits), telco-5g-standards (carrier equipment),
high-speed-interconnect-standards (InfiniBand/RoCE), edge-computing-standards,
finops-standards (multi-year cost model),
opensource-licensing-standards (free software licences — network licensing is
contractual, not OSS), grc-compliance-standards (vendor due diligence as a control),
offensive-security-standards (this skill is defensive).
2. Default decisions
Verify the latest version, the EoS/EoL status and the exact name of each product on the web before
pinning it in a real project (§8). Commercial names change without the product changing:
Cisco renamed DNA Center to Catalyst Center and Viptela SD-WAN to Catalyst SD-WAN in 2023;
the old documentation still uses the old names.
| Decision |
Default |
Justifiable alternative |
| Primary selection criterion |
Operating model (transactionality, API, telemetry, lifecycle) |
Purchase price, only if the 5-year TCO backs it |
| No. of vendors in the core |
One, unless explicitly justified |
Two, if vendor risk demands it (§7) |
| No. of vendors per domain (campus / DC / WAN) |
One per domain, with a clear boundary at the interconnect |
Multivendor within a domain: almost never worth it |
| Change interface |
NETCONF/YANG or gNMI if the vendor supports it well |
Structured CLI (` |
| Rollback window |
Confirmed commit with a timer whenever the OS offers it |
Out of band + scheduled reload if it does not |
| Firmware cadence |
The vendor's extended-support/long-lived release, not the latest |
A new release only if it fixes an exploited CVE or a contracted feature |
| PSIRT subscription |
Mandatory for every vendor in production, with a named owner |
— |
What each operating system is (and where it lives)
- Cisco IOS / IOS-XE — the campus and branch lineage. IOS-XE is classic IOS repackaged on top of
a Linux kernel with plane separation: it supports
guestshell, application containers, YANG and
telemetry. Catalyst 9000, ISR/ASR 1000 and Catalyst 8000 run IOS-XE.
- Cisco NX-OS — the data centre line (Nexus). Modular model with restartable processes,
feature <x> to enable functions, and VDC/VRF. It shares no commands with IOS-XE beyond
appearance; assuming it does is the classic mistake.
- Cisco IOS-XR — the service provider and core line (ASR 9000, NCS). It is the only one of the
three with a genuinely transactional configuration model:
commit, commit confirmed, show configuration commit changes, rollback configuration. If the team comes from IOS-XE, the mental
model changes completely.
- Junos OS / Junos Evolved — a single OS across the whole range, with the best configuration
model in the industry (see below). Evolved is the rewrite on native Linux; the CLI looks similar
but feature parity is not total: verify per platform.
- Arista EOS — a single binary for the whole range, on standard Linux, with SysDB as the
in-memory state database and publish/subscribe between agents. The practical consequence: an
agent that dies restarts and re-reads its state from SysDB without taking down the rest of the
system. CVP / CVaaS aggregates the SysDB of the whole network (NetDB/NetDL).
- MikroTik RouterOS 7 — Linux with a proprietary layer on top. Unbeatable cost per feature;
operating model and security posture far below the rest (§5).
- Huawei VRP — proprietary OS, functionally competent and cheap. The problem is not technical:
it is regulatory and about continuity (§5).
- Nokia SR Linux / SR OS, FortiOS, PAN-OS — SR Linux stands out for its open model
(first-class gNMI/YANG). FortiOS and PAN-OS act as routers in branches; here only that,
their filtering policy belongs to
firewall-policy-standards.
3. Structure and conventions
The configuration model is what decides operability
Junos's candidate config + confirmed commit is the best idea the networking industry has
produced, and the reason is concrete: it decouples writing from applying, and applying from confirming.
- You edit a candidate configuration that does not affect the device. Syntax and semantic errors
are caught before touching anything (
commit check).
show | compare gives the exact diff of what is going to change. There is no need to guess
the resulting state.
commit confirmed applies and arms a timer; if it is not confirmed with a second commit, the
device rolls back on its own. The default is 10 minutes, configurable from 1 to 65,535
(Juniper, Commit the Configuration, CLI User Guide). This eliminates the entire class of
"I locked myself out" incidents.
- Numbered rollback:
rollback 0..49 recovers complete previous configurations, and
rollback rescue one marked as good. It is not an external backup: it lives on the device.
- Apply Groups (
groups + apply-groups, with apply-path to derive lists from another part
of the config) apply common configuration by inheritance. They reduce repetition, but they
obscure the effective configuration: always review with show configuration | display inheritance.
Translation to the others:
| Capability |
Junos |
IOS-XR |
EOS |
NX-OS / IOS-XE |
RouterOS |
| Candidate config |
Yes, native |
Yes, native |
configure session |
Partial (config replace, configure exclusive) |
No |
| Diff before applying |
show | compare |
show configuration |
show session-config diffs |
show archive config differences |
No |
| Confirmed commit |
Yes (10 min default) |
Yes |
commit timer in session |
configure replace + reload in as a substitute |
No |
| Numbered rollback |
0–49 + rescue |
Yes |
Session snapshots |
archive with files |
Manual backups |
Criteria: on a device without confirmed commit, every risky remote change carries a reload in <n> armed before touching anything, cancelled once verified. It is not optional.
On-box automation: useful, and a maintenance trap
- Cisco EEM (
event manager applet, with event syslog, event timer, event none, and
cli, syslog, mail actions) allows reacting to events on the device itself. It is
legitimate for immediate containment (shutting down a flapping port) and for bounded
self-healing.
- ❌ FORBIDDEN to use EEM (or equivalent on-box scripts: Junos
op/event-options, EOS
extensions, RouterOS scheduler) as a substitute for external automation. An applet on 300
devices is logic with no version control, no tests and no inventory. Every on-box script has an
owner, is generated from the template and is audited as configuration.
What can really be automated, by vendor
The real axis is not "does it have NETCONF?" but does the YANG model cover what I need to
configure, and can operational state be read without parsing text?
- Model coverage: OpenConfig is the promise; the reality is that almost everything interesting
ends up in the vendor's native models. Verify case by case which subtree is supported.
- Operational state: gNMI
Subscribe (streaming telemetry) replaces SNMP; check which paths
the device emits and at what cadence. Without this there is no decent network observability.
commit fidelity: NETCONF with confirmed-commit (RFC 6241) is only worth it if the device
really implements it; many advertise NETCONF and underneath do CLI.
- ❌ FORBIDDEN to base an automation plan on CLI screen scraping as the target strategy.
It is acceptable as a bridge for legacy equipment, with a written life expectancy and exit date;
never as a design.
4. Quality and verification
- Before buying: demand from the vendor, in writing, (a) the YANG/gNMI support matrix for the
exact platform, (b) the EoS/LDoS date of the model, (c) the commitment to the lifetime of the
firmware branch, and (d) the RMA SLA in the real geography of the installation. Without all
four there is no decision, there is a bet.
- Acid test before standardising: reproduce the most dangerous change that will be made in
production (edge policy change, firmware upgrade with a reboot) in a virtual lab from the vendor
itself, measuring the real rollback time. If the vendor does not offer a usable virtual image,
that is already a data point for the decision.
- Configuration validation:
commit check (Junos), configure session + show session-config diffs (EOS); an nft equivalent does not exist here — the gate belongs to the vendor. Independent
verification (Batfish, pyATS/Genie) and pipeline tests belong to network-automation.
- Firmware inventory as queryable data: model, version, EoS date and date of the last applied
PSIRT advisory, in the source of truth. An estate without this inventory cannot respond to a
critical advisory within the deadline
vulnerability-management-standards requires.
5. Security and vendor risk
PSIRT as a process, not as news
- Subscribe to the official channels of all vendors in production and route them to a queue
with an owner: Cisco Security Advisories (openVuln API), Juniper JSA, Arista Security
Advisories, Fortinet PSIRT, Palo Alto Security Advisories, MikroTik
mikrotik.com/supportsec.
- The trigger for action is not publication: it is triage (is the platform affected? is the
vulnerable feature enabled? is it exposed?). The SLA and prioritisation (CVSS + EPSS + KEV)
belong to
vulnerability-management-standards; the commitment here is that the advisory
arrives and has an owner.
- ❌ FORBIDDEN to operate a network device whose firmware branch no longer receives security
fixes and that is exposed to an untrusted network. If it cannot be updated, it is isolated.
MikroTik: the best price on the market and the worst exposure
RouterOS offers high-end features at low-end prices, and that makes it the most widely deployed
device by people with no network operation behind them. The result is measurable:
- CISA has issued ICS advisories about RouterOS and Cloud Hosted Router in 2026 — among others
ICSA-26-211-01 (CVE-2026-14227, insufficient session expiration in the API, with extraction of
the WireGuard private key from a low-privilege session) and ICSA-26-209-05
(CVE-2026-16347, absence of brute-force protection in API authentication).
Verify the patch status on the web (§8): when this data was collected no patch was on record.
The API listens on TCP 8728/8729.
- The historical pattern is constant and is not about CVEs: management interface exposed to the Internet.
The botnet campaigns against MikroTik (Mēris and successors) have reused devices compromised
years earlier, where updating was not enough because the credentials were already stolen and
the attacker's scripts and rules remained on the device.
- Operational criteria: if MikroTik is used, (a) management only over OOB or VPN, never exposed;
(b) Winbox/API/SSH/WWW restricted by
address-list; (c) after any suspicion of
compromise, clean reinstall and credential rotation, not an update; (d) explicit review
of /system scheduler, /system script, users and unrecognised NAT/firewall rules.
- ❌ FORBIDDEN to deploy MikroTik at a critical edge without an assigned operational owner. The
purchase saving is eaten by the first incident.
Huawei: the risk is not technical
- The EU had had the 5G Toolbox since 2020 as a non-binding recommendation, applied
unevenly: fewer than half of the 27 Member States had used legal powers to
impose restrictions. The cybersecurity package presented by the Commission on 20 January
2026 proposes turning those measures into mandatory ones, with a phased removal of equipment
from high-risk vendors and an extension of scope beyond 5G (fibre included).
It is a legislative proposal, not applicable law yet: the adoption and
transposition deadlines are the data point to verify (§8), and they vary by country.
- Criteria: for infrastructure with a 7–10 year service life, the question is not whether Huawei
works (it does), but whether the regulatory framework of the country of deployment will let it be amortised.
A removal mandate turns a cheap purchase into an unbudgeted migration.
- This same reasoning applies to any vendor subject to export control or to a
sectoral restriction. It is risk analysis, not geopolitics.
Acquisitions: the roadmap changes under your feet
- HPE closed the acquisition of Juniper Networks on 2 July 2025, for some USD 13.4 billion; JNPR
stopped trading. The DOJ imposed conditions (divestiture of Instant On and auction of a
non-exclusive licence to the Mist AI source code). Juniper operates as a subsidiary and its
ex-CEO runs HPE's networking division, which keeps both brands.
- What it means for a purchase decision: Junos as an OS is not evaporating, but the lines
overlapping with Aruba are the natural candidates for rationalisation. Before standardising on a
specific range, demand in writing the roadmap commitment and the EoS dates of that model.
Verify the current status on the web (§8): post-merger portfolio decisions are announced
in dribs and drabs.
- The general clause: every standardisation on a vendor must have written down what is done if the
vendor is acquired, discontinues the line or becomes restricted. Without that paragraph,
standardisation is an uncovered bet.
Licensing: what stops working when it expires
- Cisco Smart Licensing Using Policy (SLP) is mandatory from IOS-XE 17.3.2 (Smart
Licensing was mandatory from 16.10.1a to 17.3.1, and optional between 16.5.1 and 16.9.8). SLP
removed the PAK and prior registration: no registration or key generation is required except
for export-controlled or enforced licences. Transports:
smart (HTTP direct to Cisco),
cslu (mediated by on-premise CSLU) and offline for isolated networks; call-home is being
retired and must not be used on new versions. For controlled licences or throughput >250 Mbps you
need to install a SLAC.
- Operational consequence that is ignored until it hurts: an isolated network needs a licence
usage reporting plan (CSLU or offline file) from day one. Verify
show license all / show license status as part of the inventory, not when the warning fires.
- Cross-cutting rule: before buying, demand in writing which functions degrade or are
blocked when the licence expires or connectivity to the licence server is lost, and how
a device that reboots without being able to validate behaves. It is the difference between a
log warning and a branch office down.
- ❌ FORBIDDEN to size a network budget counting only the hardware CAPEX. The
multi-year subscription, support and renewal are part of the price (
finops-standards).
6. Operability — support, RMA and lifecycle
- The milestones that matter (exact names vary by vendor; verify §8): end-of-sale
announcement (EoS), last order date, end of software maintenance, end of vulnerability
support and last date of support (LDoS). The only one that decides is the end of
security fixes: from then on the device is debt with a date.
- Support contract: verify the actual level contracted (response time ≠ replacement
time), the geographic coverage of the RMA stock and whether it includes access to software downloads.
With several vendors, without a valid contract you cannot even download the security patch —
that turns renewal into a security control, not an administrative expense.
- Spares: for edge devices without 4h RMA at the real location, a cold spare on site
is usually cheaper than raising the contract level. Decide it with the RTO, not with the catalogue.
- Second-hand / grey equipment: legitimate for lab and cold spare. ❌ FORBIDDEN in
critical production: no support coverage, no guarantee of firmware provenance and with
supply chain risk.
Standardising on one vendor versus multivendor — the real cost
| Axis |
One vendor |
Multivendor |
| Operating cost |
Lower: one learning curve, one commit model, one pipeline |
Higher: each OS is a set of templates, tests and failure modes |
| Negotiating power |
Degrades over time; the vendor knows it |
Better, if credible (you have to be able to actually switch) |
| Correlated failure risk |
High: one critical CVE affects the whole estate at once |
Lower, at the cost of more total surface |
| Vendor risk (acquisition, EoL, regulation) |
Concentrated |
Diversified |
| Automation |
Simple and high fidelity |
Requires real abstraction (NetBox + per-platform templates), not an if vendor == |
Default criteria: one vendor per domain (campus, DC, WAN), with standard protocol
boundaries at the interconnect. Multivendor within a domain is only justified if the second
vendor is genuinely operated — not bought "just in case". A secondary vendor that nobody knows
how to configure does not diversify risk: it increases it.
Real vendor lock-in is not in the CLI. Changing syntax is a week's work. What
ties you down is everything else: the source of truth modelled after the vendor's data model, the
templates, the management platform (Catalyst Center, CVP, Mist, Apstra) with its inventory and its
workflows, the team's operational knowledge, the multi-year contracts and the proprietary features
with no standard equivalent. Every decision to buy the vendor's management platform must be
evaluated as a lock-in decision, not as a hardware accessory.
7. Long-term sustainability and prohibitions
- Refresh the EoS/LDoS inventory every quarter and budget for replacement two
years in advance of the end of security fixes. Discovering it in the same year is how you
end up patching by exception.
- Freeze the firmware branch per domain and update on a planned window, not per device.
Leave that cadence only for an exploited CVE or a contractual requirement.
- Document in an ADR (
software-architecture-patterns-standards) the vendor decision with its
date, the discarded alternative and the condition that would reopen it (acquisition, EoL of
the range, regulatory change, price rise above a threshold).
Prohibitions:
- ❌ FORBIDDEN to write from memory a version, an EoS/LDoS date, a feature name, a
licence level or a CVE identifier. It is verified on the vendor's website (§8).
- ❌ FORBIDDEN to apply a risky remote change without an armed rollback window (confirmed
commit or
reload in).
- ❌ FORBIDDEN to expose the management of a network device to the Internet (Winbox,
administrative HTTP/HTTPS, API, SSH without source restriction). Management over OOB or VPN.
- ❌ FORBIDDEN to deploy with factory credentials, SNMP communities or certificates. And
forbidden to document third-party default credentials in this catalogue: if they are needed,
they are looked up in the vendor's documentation at deployment time and changed.
- ❌ FORBIDDEN to operate a vendor in production without a PSIRT subscription with a named owner.
- ❌ FORBIDDEN to treat CLI screen scraping as the target automation architecture.
- ❌ FORBIDDEN to deploy firmware downloaded from a source other than the vendor, or without
verifying its published signature/hash.
- ❌ FORBIDDEN to standardise on a vendor without a written clause on what is done in the event
of acquisition, discontinuation or regulatory restriction.
- ❌ FORBIDDEN to quote TCO figures, "automation savings" or market share coming
from the vendor's commercial material without published methodology. If there is no methodology,
you say there is none.
8. Mandatory web verification
Always check before deciding, in the primary source of the vendor or the regulator:
- Firmware version and branch recommended for the exact platform (not the family), and whether
it is an extended-support branch.
- Lifecycle milestones of the specific model: EoS, end of software maintenance, end of
security fixes and LDoS. Cisco EoL Notices, Juniper EOL, Arista lifecycle policy.
- Open PSIRT advisories for the platform and the version, and whether a patch is available. In
particular, the patch status of the RouterOS advisories cited in §5 (CVE-2026-14227,
CVE-2026-16347): when this document was compiled no vendor patch was on record.
- Regulatory status of the vendor in the country of deployment: the Commission proposal of
20 January 2026 making the 5G Toolbox binding, its legislative status, its removal
deadlines and the applicable national rule, which differs by Member State.
- Status of the post-acquisition HPE–Juniper portfolio (closing: 2 July 2025): which ranges are
kept, which are rationalised and with what dates.
- Current licensing model and policy: the version threshold where SLP is mandatory, what
requires SLAC, which transports are still supported and what degrades on expiry.
- Real YANG/gNMI coverage of the platform: matrix of supported models and published telemetry
paths.
- Current commercial names — they are renamed without warning (DNA Center → Catalyst Center;
Viptela → Catalyst SD-WAN). Writing the old name means the documentation cannot be found.
Declared gaps: (a) the patch status of the July 2026 MikroTik advisories could not be
confirmed in a primary source — cisa.gov returned HTTP 403 when attempting the verbatim citation,
and the data comes from a search summary; verify on mikrotik.com/supportsec before acting. (b) The
adoption and transposition dates of the EU cybersecurity package were not verified in the
official text: the presentation date is known, not the calendar in force. (c) No EoS/LDoS matrices
of specific models were verified: they depend on the platform and are not written from memory.
If the web contradicts this document, the web wins — flag the discrepancy.
1---2name: network-vendors-standards3description: What actually changes when the box has a different logo — vendor operating models, licensing, lifecycle and vendor risk. Use when working with Cisco IOS / IOS-XE / NX-OS / IOS-XR and deciding which one a platform runs, Cisco EEM applets and event manager, Smart Licensing Using Policy (SLP), SLAC authorization codes, CSSM, CSLU, "license smart url", "show license all", Catalyst Center (formerly DNA Center), Junos OS and its candidate configuration, "commit check", "commit confirmed", "rollback 3", "show | compare", "load replace", apply-groups and apply-path, Junos Evolved, Arista EOS, SysDB and NetDB, CloudVision / CVaaS / CVP and ZTP as a service, EOS extensions and "config session", MikroTik RouterOS 7 and Winbox, RouterOS package channels and "/system package update", Huawei VRP and its regulatory status as a high-risk supplier, Nokia SR Linux or SR OS, FortiOS or PAN-OS acting as a WAN router rather than a firewall, choosing single-vendor versus multivendor and pricing the lock-in, TAC and RMA contract co4---56# Network vendor standards — the lock-in is in the operating model, not the CLI78Criteria verified as of **August 2026**. Re-verify on the web before committing to anything (§8).910## 1. Scope and triggers1112Applies when **the decision depends on who makes the box**: which network operating system each13platform runs and what that implies; the vendor's configuration model (transactional versus14immediate) and what safe operation it allows; **licensing** and what stops working when it15expires; the firmware lifecycle and the EoS/EoL milestones; consuming **PSIRT** advisories as a16process, not as occasional reading; support, TAC and RMA contracts and what they really cover;17**vendor risk** (acquisitions, regulatory restrictions, product-line discontinuation); and the18criteria for **standardising on one vendor versus multivendor**, with the real cost of each option.1920Triggers: `IOS-XE`, `NX-OS`, `IOS-XR`, `Junos`, `Junos Evolved`, `EOS`, `RouterOS`, `VRP`,21`SR Linux`, `SR OS`, `FortiOS`, `PAN-OS`; `event manager applet`, `commit confirmed`,22`commit check`, `rollback`, `apply-groups`, `config session`, `show license all`,23`license smart url`, SLAC, CSSM, CSLU, Catalyst Center, CloudVision/CVaaS, Winbox, ZTP;24"EoS", "LDoS", "PSIRT", "TAC", "RMA", "licence renewal", "vendor change".2526**Not applicable**: the catalogue already splits this up: `networking-standards` is the **trunk**27(addressing, VLAN, MTU, OOB plane, choice of edge platform) and **already delegates the28depth**; `routing-switching-standards` decides **what the campus and edge configuration must say**29(STP, MLAG, VRRP, BGP policy, RPKI, CoPP, AAA — here only **what that translates into** on each30OS); `datacenter-fabric-standards` decides the fabric (Clos, VXLAN/EVPN);31`network-automation-standards` decides **how a change is generated, tested and applied** (Ansible,32NAPALM, NETCONF/YANG, gNMI, containerlab, drift detection — here only **what each vendor exposes**33and with what fidelity); `firewall-policy-standards` (filtering policy as an artifact, including34FortiOS/PAN-OS **as a firewall**); `wireless-standards` (WLAN and controllers);35`load-balancing-standards`, `vpn-standards`, `dns-standards`, `network-troubleshooting-standards`36(reactive method). Outward: `vulnerability-management-standards` (**triage and patching SLA**;37here only the **subscription and consumption** of the PSIRT feed), `wan-legacy-standards` (MPLS,38SD-WAN and legacy circuits), `telco-5g-standards` (carrier equipment),39`high-speed-interconnect-standards` (InfiniBand/RoCE), `edge-computing-standards`,40`finops-standards` (multi-year cost model),41`opensource-licensing-standards` (free software licences — **network licensing is42contractual, not OSS**), `grc-compliance-standards` (vendor due diligence as a control),43`offensive-security-standards` (**this skill is defensive**).4445## 2. Default decisions4647> Verify the latest version, the EoS/EoL status and the exact name of each product on the web before48> pinning it in a real project (§8). **Commercial names change without the product changing**:49> Cisco renamed DNA Center to **Catalyst Center** and Viptela SD-WAN to **Catalyst SD-WAN** in 2023;50> the old documentation still uses the old names.5152| Decision | Default | Justifiable alternative |53|---|---|---|54| Primary selection criterion | **Operating model** (transactionality, API, telemetry, lifecycle) | Purchase price, only if the 5-year TCO backs it |55| No. of vendors in the core | **One**, unless explicitly justified | Two, if vendor risk demands it (§7) |56| No. of vendors per domain (campus / DC / WAN) | One per domain, with a **clear boundary** at the interconnect | Multivendor within a domain: **almost never worth it** |57| Change interface | **NETCONF/YANG or gNMI** if the vendor supports it well | Structured CLI (`| display xml`, `| json`) — *screen scraping* only as a last resort |58| Rollback window | **Confirmed commit with a timer** whenever the OS offers it | Out of band + scheduled reload if it does not |59| Firmware cadence | The vendor's **extended-support/long-lived** release, not the latest | A new release only if it fixes an exploited CVE or a contracted feature |60| PSIRT subscription | **Mandatory** for every vendor in production, with a named owner | — |6162### What each operating system is (and where it lives)6364- **Cisco IOS / IOS-XE** — the campus and branch lineage. IOS-XE is classic IOS repackaged on top of65 a Linux kernel with plane separation: it supports `guestshell`, application containers, YANG and66 telemetry. Catalyst 9000, ISR/ASR 1000 and Catalyst 8000 run IOS-XE.67- **Cisco NX-OS** — the data centre line (Nexus). Modular model with restartable processes,68 `feature <x>` to enable functions, and VDC/VRF. It shares no commands with IOS-XE beyond69 appearance; **assuming it does is the classic mistake**.70- **Cisco IOS-XR** — the service provider and core line (ASR 9000, NCS). **It is the only one of the71 three with a genuinely transactional configuration model**: `commit`, `commit confirmed`, `show72 configuration commit changes`, `rollback configuration`. If the team comes from IOS-XE, the mental73 model changes completely.74- **Junos OS / Junos Evolved** — a single OS across the whole range, with the best configuration75 model in the industry (see below). Evolved is the rewrite on native Linux; **the CLI looks similar76 but feature parity is not total**: verify per platform.77- **Arista EOS** — a single binary for the whole range, on standard Linux, with **SysDB** as the78 in-memory state database and publish/subscribe between agents. The practical consequence: an79 agent that dies restarts and **re-reads its state from SysDB** without taking down the rest of the80 system. CVP / CVaaS aggregates the SysDB of the whole network (NetDB/NetDL).81- **MikroTik RouterOS 7** — Linux with a proprietary layer on top. Unbeatable cost per feature;82 operating model and security posture **far below** the rest (§5).83- **Huawei VRP** — proprietary OS, functionally competent and cheap. The problem is not technical:84 it is **regulatory and about continuity** (§5).85- **Nokia SR Linux / SR OS**, **FortiOS**, **PAN-OS** — SR Linux stands out for its open model86 (first-class gNMI/YANG). FortiOS and PAN-OS **act as routers** in branches; here only that,87 their filtering policy belongs to `firewall-policy-standards`.8889## 3. Structure and conventions9091### The configuration model is what decides operability9293Junos's **candidate config + confirmed commit** is the best idea the networking industry has94produced, and the reason is concrete: **it decouples writing from applying, and applying from confirming**.9596- You edit a **candidate configuration** that does not affect the device. Syntax and semantic errors97 are caught before touching anything (`commit check`).98- `show | compare` gives the **exact diff** of what is going to change. There is no need to guess99 the resulting state.100- `commit confirmed` applies and arms a timer; if it is not confirmed with a second `commit`, the101 device **rolls back on its own**. **The default is 10 minutes, configurable from 1 to 65,535**102 (Juniper, *Commit the Configuration*, CLI User Guide). This eliminates the entire class of103 "I locked myself out" incidents.104- **Numbered rollback**: `rollback 0..49` recovers complete previous configurations, and105 `rollback rescue` one marked as good. It is not an external backup: it lives on the device.106- **Apply Groups** (`groups` + `apply-groups`, with `apply-path` to derive lists from another part107 of the config) apply common configuration by inheritance. They reduce repetition, but **they108 obscure the effective configuration**: always review with `show configuration | display inheritance`.109110Translation to the others:111112| Capability | Junos | IOS-XR | EOS | NX-OS / IOS-XE | RouterOS |113|---|---|---|---|---|---|114| Candidate config | Yes, native | Yes, native | `configure session` | Partial (`config replace`, `configure exclusive`) | No |115| Diff before applying | `show \| compare` | `show configuration` | `show session-config diffs` | `show archive config differences` | No |116| Confirmed commit | Yes (10 min default) | Yes | `commit timer` in session | `configure replace` + `reload in` as a substitute | No |117| Numbered rollback | 0–49 + `rescue` | Yes | Session snapshots | `archive` with files | Manual backups |118119**Criteria**: on a device without confirmed commit, **every risky remote change carries a `reload120in <n>` armed before touching anything**, cancelled once verified. It is not optional.121122### On-box automation: useful, and a maintenance trap123124- Cisco **EEM** (`event manager applet`, with `event syslog`, `event timer`, `event none`, and125 `cli`, `syslog`, `mail` actions) allows reacting to events on the device itself. It is126 legitimate for **immediate containment** (shutting down a flapping port) and for bounded127 *self-healing*.128- ❌ **FORBIDDEN** to use EEM (or equivalent on-box scripts: Junos `op`/`event-options`, EOS129 extensions, RouterOS scheduler) as a **substitute for external automation**. An applet on 300130 devices is logic with no version control, no tests and no inventory. Every on-box script has an131 owner, is generated from the template and is audited as configuration.132133### What can really be automated, by vendor134135The real axis is not "does it have NETCONF?" but **does the YANG model cover what I need to136configure, and can operational state be read without parsing text?**137138- **Model coverage**: OpenConfig is the promise; the reality is that almost everything interesting139 ends up in the vendor's **native** models. Verify case by case which subtree is supported.140- **Operational state**: gNMI `Subscribe` (streaming telemetry) replaces SNMP; check which *paths*141 the device emits and at what cadence. Without this there is no decent network observability.142- **`commit` fidelity**: NETCONF with `confirmed-commit` (RFC 6241) is only worth it if the device143 really implements it; many advertise NETCONF and underneath do CLI.144- ❌ **FORBIDDEN** to base an automation plan on CLI **screen scraping** as the target strategy.145 It is acceptable as a bridge for legacy equipment, with a written life expectancy and exit date;146 never as a design.147148## 4. Quality and verification149150- **Before buying**: demand from the vendor, in writing, (a) the YANG/gNMI support matrix for the151 exact platform, (b) the EoS/LDoS date of the model, (c) the commitment to the lifetime of the152 firmware branch, and (d) the RMA SLA in the real geography of the installation. **Without all153 four there is no decision, there is a bet.**154- **Acid test before standardising**: reproduce the most dangerous change that will be made in155 production (edge policy change, firmware upgrade with a reboot) in a virtual lab from the vendor156 itself, measuring the real rollback time. If the vendor does not offer a usable virtual image,157 **that is already a data point for the decision**.158- **Configuration validation**: `commit check` (Junos), `configure session` + `show session-config159 diffs` (EOS); an `nft` equivalent does not exist here — the gate belongs to the vendor. Independent160 verification (Batfish, pyATS/Genie) and pipeline tests belong to `network-automation`.161- **Firmware inventory as queryable data**: model, version, EoS date and date of the last applied162 PSIRT advisory, in the source of truth. An estate without this inventory **cannot respond** to a163 critical advisory within the deadline `vulnerability-management-standards` requires.164165## 5. Security and vendor risk166167### PSIRT as a process, not as news168169- Subscribe to the official channels of **all** vendors in production and **route them to a queue170 with an owner**: Cisco Security Advisories (openVuln API), Juniper JSA, Arista Security171 Advisories, Fortinet PSIRT, Palo Alto Security Advisories, MikroTik `mikrotik.com/supportsec`.172- The trigger for action is not publication: it is **triage** (is the platform affected? is the173 vulnerable feature enabled? is it exposed?). The SLA and prioritisation (CVSS + EPSS + KEV)174 belong to `vulnerability-management-standards`; **the commitment here is that the advisory175 arrives and has an owner**.176- ❌ **FORBIDDEN** to operate a network device whose firmware branch no longer receives security177 fixes and that is exposed to an untrusted network. If it cannot be updated, it is isolated.178179### MikroTik: the best price on the market and the worst exposure180181RouterOS offers high-end features at low-end prices, and that makes it the most widely deployed182device by people with no network operation behind them. The result is measurable:183184- CISA has issued ICS advisories about RouterOS and Cloud Hosted Router in 2026 — among others185 **ICSA-26-211-01 (CVE-2026-14227**, insufficient session expiration in the API, with extraction of186 the WireGuard private key from a low-privilege session) and **ICSA-26-209-05187 (CVE-2026-16347**, absence of brute-force protection in API authentication).188 **Verify the patch status on the web (§8): when this data was collected no patch was on record.**189 The API listens on TCP 8728/8729.190- The historical pattern is constant and is not about CVEs: **management interface exposed to the Internet**.191 The botnet campaigns against MikroTik (Mēris and successors) have reused devices compromised192 years earlier, where **updating was not enough** because the credentials were already stolen and193 the attacker's scripts and rules remained on the device.194- **Operational criteria**: if MikroTik is used, (a) management **only** over OOB or VPN, never exposed;195 (b) Winbox/API/SSH/WWW restricted by `address-list`; (c) after any suspicion of196 compromise, **clean reinstall and credential rotation**, not an update; (d) explicit review197 of `/system scheduler`, `/system script`, users and unrecognised NAT/firewall rules.198- ❌ **FORBIDDEN** to deploy MikroTik at a critical edge without an assigned operational owner. The199 purchase saving is eaten by the first incident.200201### Huawei: the risk is not technical202203- The EU had had the **5G Toolbox** since 2020 as a **non-binding** recommendation, applied204 unevenly: **fewer than half of the 27 Member States** had used legal powers to205 impose restrictions. The cybersecurity package presented by the Commission on **20 January206 2026** proposes turning those measures into **mandatory** ones, with a phased removal of equipment207 from high-risk vendors and an extension of scope beyond 5G (fibre included).208 **It is a legislative proposal, not applicable law yet**: the adoption and209 transposition deadlines are the data point to verify (§8), and **they vary by country**.210- **Criteria**: for infrastructure with a 7–10 year service life, the question is not whether Huawei211 works (it does), but **whether the regulatory framework of the country of deployment will let it be amortised**.212 A removal mandate turns a cheap purchase into an unbudgeted migration.213- This same reasoning applies to **any** vendor subject to export control or to a214 sectoral restriction. It is risk analysis, not geopolitics.215216### Acquisitions: the roadmap changes under your feet217218- **HPE closed the acquisition of Juniper Networks on 2 July 2025**, for some USD 13.4 billion; JNPR219 stopped trading. The DOJ imposed conditions (divestiture of Instant On and auction of a220 non-exclusive licence to the Mist AI source code). Juniper operates as a subsidiary and its221 ex-CEO runs HPE's networking division, which keeps both brands.222- **What it means for a purchase decision**: Junos as an OS is not evaporating, but **the lines223 overlapping with Aruba are the natural candidates for rationalisation**. Before standardising on a224 specific range, demand in writing the roadmap commitment and the EoS dates of **that** model.225 Verify the current status on the web (§8): post-merger portfolio decisions are announced226 in dribs and drabs.227- The general clause: **every standardisation on a vendor must have written down what is done if the228 vendor is acquired, discontinues the line or becomes restricted**. Without that paragraph,229 standardisation is an uncovered bet.230231### Licensing: what stops working when it expires232233- **Cisco Smart Licensing Using Policy (SLP)** is **mandatory from IOS-XE 17.3.2** (Smart234 Licensing was mandatory from 16.10.1a to 17.3.1, and optional between 16.5.1 and 16.9.8). SLP235 removed the PAK and prior registration: **no registration or key generation is required except236 for *export-controlled* or *enforced* licences**. Transports: `smart` (HTTP direct to Cisco),237 `cslu` (mediated by on-premise CSLU) and offline for isolated networks; `call-home` is being238 retired and must not be used on new versions. For controlled licences or throughput >250 Mbps you239 need to install a **SLAC**.240- **Operational consequence** that is ignored until it hurts: an isolated network needs a licence241 usage reporting plan (CSLU or offline file) **from day one**. Verify `show license242 all` / `show license status` as part of the inventory, not when the warning fires.243- **Cross-cutting rule**: before buying, demand in writing **which functions degrade or are244 blocked** when the licence expires or connectivity to the licence server is lost, and **how245 a device that reboots without being able to validate behaves**. It is the difference between a246 log warning and a branch office down.247- ❌ **FORBIDDEN** to size a network budget counting only the hardware CAPEX. The248 multi-year subscription, support and renewal are part of the price (`finops-standards`).249250## 6. Operability — support, RMA and lifecycle251252- **The milestones that matter** (exact names vary by vendor; verify §8): end-of-sale253 announcement (EoS), last order date, end of software maintenance, end of vulnerability254 support and **last date of support (LDoS)**. The only one that decides is the **end of255 security fixes**: from then on the device is debt with a date.256- **Support contract**: verify the actual level contracted (response time ≠ replacement257 time), the geographic coverage of the RMA stock and whether it includes access to software downloads.258 **With several vendors, without a valid contract you cannot even download the security patch** —259 that turns renewal into a security control, not an administrative expense.260- **Spares**: for edge devices without 4h RMA at the real location, a cold spare on site261 is usually cheaper than raising the contract level. Decide it with the RTO, not with the catalogue.262- **Second-hand / grey equipment**: legitimate for lab and cold spare. ❌ FORBIDDEN in263 critical production: no support coverage, no guarantee of firmware provenance and with264 supply chain risk.265266### Standardising on one vendor versus multivendor — the real cost267268| Axis | One vendor | Multivendor |269|---|---|---|270| Operating cost | **Lower**: one learning curve, one commit model, one pipeline | Higher: each OS is a set of templates, tests and failure modes |271| Negotiating power | Degrades over time; the vendor knows it | **Better**, if credible (you have to be able to actually switch) |272| Correlated failure risk | **High**: one critical CVE affects the whole estate at once | Lower, at the cost of more total surface |273| Vendor risk (acquisition, EoL, regulation) | Concentrated | Diversified |274| Automation | Simple and high fidelity | Requires real abstraction (NetBox + per-platform templates), not an `if vendor ==` |275276**Default criteria**: **one vendor per domain** (campus, DC, WAN), with standard protocol277boundaries at the interconnect. Multivendor *within* a domain is only justified if the second278vendor is **genuinely operated** — not bought "just in case". A secondary vendor that nobody knows279how to configure does not diversify risk: it increases it.280281**Real vendor lock-in is not in the CLI.** Changing syntax is a week's work. What282ties you down is everything else: the source of truth modelled after the vendor's data model, the283templates, the management platform (Catalyst Center, CVP, Mist, Apstra) with its inventory and its284workflows, the team's operational knowledge, the multi-year contracts and the proprietary features285with no standard equivalent. **Every decision to buy the vendor's management platform must be286evaluated as a lock-in decision**, not as a hardware accessory.287288## 7. Long-term sustainability and prohibitions289290- Refresh the EoS/LDoS inventory **every quarter** and budget for replacement **two291 years in advance** of the end of security fixes. Discovering it in the same year is how you292 end up patching by exception.293- Freeze the firmware branch per domain and update on a planned window, not per device.294 Leave that cadence only for an exploited CVE or a contractual requirement.295- Document in an ADR (`software-architecture-patterns-standards`) the vendor decision with its296 date, the discarded alternative and **the condition that would reopen it** (acquisition, EoL of297 the range, regulatory change, price rise above a threshold).298299Prohibitions:300301- ❌ **FORBIDDEN** to write from memory a version, an EoS/LDoS date, a feature name, a302 licence level or a CVE identifier. It is verified on the vendor's website (§8).303- ❌ **FORBIDDEN** to apply a risky remote change without an armed rollback window (confirmed304 commit or `reload in`).305- ❌ **FORBIDDEN** to expose the management of a network device to the Internet (Winbox,306 administrative HTTP/HTTPS, API, SSH without source restriction). Management over OOB or VPN.307- ❌ **FORBIDDEN** to deploy with factory credentials, SNMP communities or certificates. And308 **forbidden to document third-party default credentials** in this catalogue: if they are needed,309 they are looked up in the vendor's documentation at deployment time and changed.310- ❌ **FORBIDDEN** to operate a vendor in production without a PSIRT subscription with a named owner.311- ❌ **FORBIDDEN** to treat CLI screen scraping as the target automation architecture.312- ❌ **FORBIDDEN** to deploy firmware downloaded from a source other than the vendor, or without313 verifying its published signature/hash.314- ❌ **FORBIDDEN** to standardise on a vendor without a written clause on what is done in the event315 of acquisition, discontinuation or regulatory restriction.316- ❌ **FORBIDDEN** to quote TCO figures, "automation savings" or market share coming317 from the vendor's commercial material without published methodology. If there is no methodology,318 you say there is none.319320## 8. Mandatory web verification321322**Always** check before deciding, in the primary source of the vendor or the regulator:3233241. **Firmware version and branch** recommended for the exact platform (not the family), and whether325 it is an extended-support branch.3262. **Lifecycle milestones** of the specific model: EoS, end of software maintenance, **end of327 security fixes** and LDoS. Cisco EoL Notices, Juniper EOL, Arista lifecycle policy.3283. **Open PSIRT advisories** for the platform and the version, and whether a patch is available. In329 particular, **the patch status of the RouterOS advisories cited in §5 (CVE-2026-14227,330 CVE-2026-16347): when this document was compiled no vendor patch was on record.**3314. **Regulatory status of the vendor** in the country of deployment: the Commission proposal of332 **20 January 2026** making the 5G Toolbox binding, its legislative status, its removal333 deadlines and **the applicable national rule**, which differs by Member State.3345. **Status of the post-acquisition HPE–Juniper portfolio** (closing: 2 July 2025): which ranges are335 kept, which are rationalised and with what dates.3366. **Current licensing model and policy**: the version threshold where SLP is mandatory, what337 requires SLAC, which transports are still supported and **what degrades on expiry**.3387. **Real YANG/gNMI coverage** of the platform: matrix of supported models and published telemetry339 *paths*.3408. **Current commercial names** — they are renamed without warning (DNA Center → Catalyst Center;341 Viptela → Catalyst SD-WAN). Writing the old name means the documentation cannot be found.342343**Declared gaps**: (a) the patch status of the July 2026 MikroTik advisories could not be344confirmed in a primary source — `cisa.gov` returned HTTP 403 when attempting the verbatim citation,345and the data comes from a search summary; **verify on `mikrotik.com/supportsec` before acting**. (b) The346adoption and transposition dates of the EU cybersecurity package were not verified in the347official text: the presentation date is known, not the calendar in force. (c) No EoS/LDoS matrices348of specific models were verified: they depend on the platform and are not written from memory.349350If the web contradicts this document, **the web wins** — flag the discrepancy.