Skip to main content

RouterShift

Multi-vendor network device configuration converter. It reads a switch or router configuration, turns it into a vendor-neutral model, and writes it out for another platform, together with a report that says, item by item, what was converted exactly, what was approximated and what a person has to look at.

It handles eight platforms from Cisco, Arista, Juniper and HPE (Aruba and Comware): see Status. The manual explains how to use it, docs/SCOPE.md lists what converts per area and platform, CONTRIBUTING.md explains how to help and CHANGELOG.md lists the releases.

It is a quick reference for how a configuration looks on another platform, not a migration tool: read the output and the report before anything goes near a live device.

RouterShift is the sibling of FWShift, which does the same for firewall policies.

Status

Alpha. The current release is the top entry of CHANGELOG.md, and routershift --version prints the one installed. Every platform reads and writes, so each converts to and from all the others.

Platforms

Platform Key Depth
Cisco IOS / IOS XE ios Full: every area below
Arista EOS eos Full: every area below
Cisco NX-OS nxos Full, plus vPC, NX-API and EEM applets
Juniper Junos junos Full, in curly braces or display set lines
HPE Aruba AOS-CX aoscx Full, plus VSX, VSF and the REST API
Cisco IOS-XR iosxr Full for what a router carries; switch features are reported
HPE Comware 7 comware Full, plus VXLAN/EVPN as VSIs, M-LAG and NetStream; IKEv2 not written yet
HPE Aruba AOS-S (ProCurve) aoss Everything AOS-S can express; the rest is reported with what AOS-S offers instead

"Full" means the platform reads and writes the whole list below, plus the deeper settings: community and AS-path lists, BGP options, CoPP, MACsec, MAC ACLs, PTP, SSH keys, syslog over TLS and OSPF authentication. docs/SCOPE.md has the per-platform details.

What converts

  • System: hostname, domain, DNS client (lookup, search domains, source, static hosts), NTP with authentication keys, syslog level and source, banner, time zone, TFTP/FTP source interface.
  • Layer 2: VLANs, access and trunk ports, voice VLANs, LAGs and LACP, spanning tree (mode, priorities, MST region, port guards), PoE per port, IGMP snooping with its querier.
  • Layer 2 security: DHCP snooping, ARP inspection, IP source guard, port security, storm control, 802.1X and MAC authentication.
  • Interfaces and addressing: SVIs, loopbacks, the management port, subinterfaces, IPv4 and IPv6 addresses, DHCP relay and server.
  • Gateways: HSRP, VRRP and anycast gateways, with tracked objects.
  • Routing: VRFs with route leaking (RD, import and export route targets), static routes, OSPF, BGP (peer templates, VRFs, passwords, timers, route reflectors, prefix limits, allowas-in, remove-private-as, maximum-paths), RIP and IS-IS, prefix lists and route maps, policy-based routing, BFD.
  • Data centre: VXLAN (VTEP source, VLAN and VRF VNIs, flood lists), BGP EVPN, MLAG pairs (EOS MLAG, AOS-CX VSX, NX-OS vPC, Comware M-LAG), MPLS with LDP.
  • Multicast: multicast routing, PIM mode, IGMP version, static RPs.
  • Security and services: IPv4/IPv6 access lists with their bindings, NAT, site-to-site IPsec VPNs, QoS (classes, DSCP marking, policing, port trust).
  • Management: local users and privilege levels, AAA (RADIUS and TACACS+ servers, groups and method lists), SNMP (communities, v3 users, notification hosts), SSH, Telnet and HTTP(S) servers, login ACL and idle timeout, LLDP and CDP.
  • Monitoring: port mirroring (SPAN), sFlow, NetFlow (Comware NetStream, Junos J-Flow), IP SLA probes (Comware NQA).
  • Wireless: SSIDs with their VLAN and security, between IOS XE and Comware controllers.

What a platform cannot express

When the target has no form for a setting, RouterShift writes the nearest construct and flags it as approximated, or leaves it out and reports it. The main gaps:

  • AOS-S: no VRFs, routed ports, BGP, PIM, RIP, IS-IS, MPLS, VXLAN, EVPN, NAT or IPsec.
  • AOS-CX: no RIP, IS-IS, MPLS, NAT or IPsec.
  • NX-OS: no DHCP server, PoE or IPsec.
  • Junos: no NAT or IPsec on a switch, no RD per EVPN instance, no BFD slow timer.
  • IOS-XR: no switch features (spanning tree, port security, 802.1X, PoE, sFlow), VXLAN, MLAG, NAT or IPsec.
  • NetFlow and sFlow: IOS has no sFlow, and EOS, AOS-CX and AOS-S NetFlow is reported, not written.

What is reported, not converted

Features RouterShift recognises but does not convert (telemetry, certificates, the zone-based firewall, EIGRP, DMVPN, NBAR, ...) are listed once per feature under "Recognised, not converted", with the reason and the line numbers. Everything else is listed under "Not understood", grouped by the block it is in, with secrets masked.

Usage

pip install routershift      # or, from a checkout: pip install .
routershift convert --from ios --to aoscx running-config.txt -o aoscx.cfg --report report.txt
routershift roundtrip --from eos --via ios running-config.txt   # there and back: what did not survive
routershift parse --from eos running-config.txt      # the vendor-neutral model as JSON
routershift platforms

The report says, for each item, whether it was converted exactly, approximated (with what changed), needs review, or was skipped.

Port maps

Ports are renumbered for the target (for example GigabitEthernet1/0/1 becomes Ethernet1 on EOS) and every renumbered port is flagged in the report. To see the output with your own port names, give a port map with --port-map ports.txt:

# source port = target port
GigabitEthernet1/0/1 = Ethernet7
TenGigabitEthernet1/1/1 = Ethernet49/1

Requirements

Python 3.9 or later, no other dependencies.

Licence

GPL-3.0-or-later. See LICENSE.

Metadata

Release files for routershift 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for routershift 0.2.0
File Size Uploaded Provenance Actions
routershift-0.2.0.tar.gz 625.9 kB With provenance Details for routershift-0.2.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for routershift 0.2.0
File Interpreter ABI Platform Actions
routershift-0.2.0-py3-none-any.whl Python 3 none any Details for routershift-0.2.0-py3-none-any.whl

Total release size: 1.2 MB

Release files / routershift-0.2.0.tar.gz

Download URL routershift-0.2.0.tar.gz
Size 625.9 kB
Tags Source
SHA-256 checksum
How to use checksums
749a696c0e7fd7b9cc512850dce5877166c2f7efbea6e47de8ed530b6c65cdf1
BLAKE2b-256 checksum
How to use checksums
3ab8d6544aa7481efce2d101c5a11f6172c712bba081b8586cc67158ceed0074
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Release files / routershift-0.2.0-py3-none-any.whl

Download URL routershift-0.2.0-py3-none-any.whl
Size 582.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
dac4ddf601c545d723ec73bf8176a2462724f71f95044764eb419c1e26fec692
BLAKE2b-256 checksum
How to use checksums
004d71b93d36a912b4237168f7f49b2149c544dee352aa606f4ccc0cee40f3ae
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Security for routershift 0.2.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for routershift-0.2.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page