Skip to content

Automating a Service Provider Network: A Practical Introduction#

ITNOG9 digest Program Adjacent pick 19–20 May 2025

Elia Aielli

  • Why: A bottom-up, production-first automation story — valuable precisely because it starts from one repetitive, high-risk task rather than a grand platform, which is how most operators actually begin.
  • What: How Timenet automated the single border ACL aligned across all its edge routers (Cisco ASR9k, IOS-XR): a YAML source-of-truth model generated from the running config, then deployed atomically so the network is never left open mid-change — with attention to TCAM exhaustion and IOS-XR best practices.
  • How: Netmiko/SSH to collect running ACLs, TextFSM with NTC templates for parsing (a local template was written for the XR ACL command, planned for upstream contribution), a Python function converting structured output into the YAML model, Jinja2 to adapt the model to the cisco.iosxr.iosxr_acls module with state: replaced (single commit, ACL always applied to interfaces), plus a cron script checking for drift. Deliberately simple stack: Ubuntu, Python, Ansible, Jinja2, Netmiko.
  • Where applicable: Any operator starting automation on CLI-first gear; explicitly vendor-agnostic in approach even though the example is IOS-XR. Future work acknowledges the limits: moving to a structured SoT, Git versioning/CI-CD, object-group alignment.