workspace/skills/pyats-junos-routing/SKILL.md
JunOS routing operations via pyATS — OSPF/OSPFv3, BGP, route table, MPLS/LDP/RSVP, TED, PFE, ping, traceroute across Juniper devices. Use when checking Juniper OSPF neighbors, viewing BGP summary, inspecting MPLS LSPs, tracing routes, or auditing the JunOS route table.
npx skillsauth add automateyournetwork/netclaw pyats-junos-routingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
PYATS_TESTBED_PATH=$PYATS_TESTBED_PATH python3 $MCP_CALL "python3 -u $PYATS_MCP_SCRIPT" pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"<command>"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf neighbor"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf neighbor detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf neighbor extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf neighbor 10.1.1.2 detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf neighbor instance all"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf neighbor instance my-instance"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface brief"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface ge-0/0/0"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface ge-0/0/0 detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface brief instance my-instance"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface detail instance my-instance"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface instance my-instance"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf interface ge-0/0/0 detail instance my-instance"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database summary"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database external extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database opaque-area"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database advertising-router self detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database advertising-router 10.0.0.1 extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database lsa-id 10.0.0.1 detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database network lsa-id 10.0.0.1 detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf database router extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf overview"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf overview extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf route brief"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf route detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf route network extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf route 10.0.0.0/24"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf statistics"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 neighbor"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 neighbor detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 neighbor extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 neighbor instance all"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 interface"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 interface extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 database"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 database extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 database external extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 database network detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 database link advertising-router 10.0.0.1 detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 database advertising-router 10.0.0.1 extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 overview"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 overview extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 route network extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ospf3 route 2001:db8::/32"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp summary"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp summary instance my-vrf"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp neighbor"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp neighbor 10.1.1.2"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp group brief"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp group brief | no-more"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp group detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp group detail | no-more"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp group summary"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show bgp group summary | no-more"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route summary"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route 10.0.0.0/24"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route 10.0.0.1/32 extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route extensive 10.0.0.0/24"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route protocol ospf"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route protocol ospf extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route protocol bgp"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route protocol bgp extensive 10.0.0.0/24"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route protocol static"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route protocol direct"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route table inet.0"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route table inet.3"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route table mpls.0"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route table my-vrf.inet.0 10.0.0.0/24"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route table inet.0 label-switched-path my-lsp"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route protocol ospf table inet.0 extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route protocol bgp table my-vrf.inet.0 extensive 10.0.0.0/24"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route advertising-protocol bgp 10.1.1.2"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route advertising-protocol bgp 10.1.1.2 10.0.0.0/24"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route advertising-protocol bgp 10.1.1.2 10.0.0.0/24 detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route receive-protocol bgp 10.1.1.2"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route receive-protocol bgp 10.1.1.2 10.0.0.0/24"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route receive-protocol bgp 10.1.1.2 extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route receive-protocol bgp 10.1.1.2 10.0.0.0/24 extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route instance detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route instance my-vrf"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route logical-system my-lsys"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route forwarding-table summary"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show route forwarding-table label 100000"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show mpls lsp name my-lsp detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show mpls lsp name my-lsp extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show mpls ldp parameters"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show mpls ldp discovery detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show configuration protocols mpls label-switched-path my-lsp"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show configuration protocols mpls path my-path"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show configuration interfaces ge-0/0/0 unit 0 family bridge vlan-id"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ldp overview"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ldp neighbor"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ldp session"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ldp session 10.1.1.2 detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ldp interface ge-0/0/0"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ldp interface ge-0/0/0 detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ldp database session 10.1.1.2"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show rsvp neighbor"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show rsvp neighbor detail"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show rsvp session"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show rsvp session transit"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ted database extensive"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ted database extensive 10.0.0.1"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show ted database 10.0.0.1"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show pfe route summary"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show pfe statistics traffic"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show pfe statistics ip icmp"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show krt queue"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"show krt state"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"ping 10.0.0.2 count 5"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"ping 10.0.0.2 source 10.0.0.1 count 5"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"ping 10.0.0.2 size 1500 count 5 do-not-fragment"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"ping 10.0.0.2 source 10.0.0.1 size 1500 count 5 tos 184 rapid"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"ping 10.0.0.2 ttl 10 count 5 wait 2"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"ping mpls rsvp my-lsp"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"traceroute 10.0.0.2 no-resolve"}'
pyats_run_show_command '{"device_name":"juniper-rtr-01","command":"traceroute 10.0.0.2 source 10.0.0.1 no-resolve"}'
show ospf overview → area count, SPF runs, LSA count
→ show ospf neighbor → verify all adjacencies Full
→ show ospf interface brief → check interface states (DR/BDR/DROther)
→ show ospf database summary → LSA count per type
→ show ospf statistics → error counters, retransmits
→ Flag: neighbors not Full, interface cost mismatches, high retransmit counts
→ GAIT
show bgp summary → peer state, prefixes received, session uptime
→ show bgp neighbor {peer} → per-peer: hold time, keepalive, AFI/SAFI, import/export policy
→ show route advertising-protocol bgp {peer} → what we advertise
→ show route receive-protocol bgp {peer} → what we receive
→ Flag: peers not Established, prefix count anomalies, flapping sessions
→ GAIT
show mpls lsp name {lsp} detail → path, state, bandwidth
→ show rsvp session → RSVP session state
→ show ldp session → LDP adjacency state
→ show route table mpls.0 → label bindings
→ ping mpls rsvp {lsp} → end-to-end LSP verification
→ show ted database extensive → TE topology view
→ GAIT
show route summary → route count per table and protocol
→ show route protocol ospf → OSPF-learned routes
→ show route protocol bgp → BGP-learned routes
→ show route protocol static → static routes
→ show route forwarding-table summary → FIB state
→ show pfe route summary → PFE forwarding entries
→ show krt queue → pending route updates (should be 0)
→ GAIT
ping {target} count 5 → basic reachability
→ ping {target} size 1500 count 5 do-not-fragment → MTU verification
→ traceroute {target} no-resolve → path analysis
→ Correlate with show route {target} → verify expected next-hop
→ GAIT
| Skill | Integration | |-------|-------------| | pyats-junos-system | Chassis/system context (RE CPU, FPC state) for routing issues | | pyats-junos-interfaces | Interface state complements routing protocol analysis | | junos-network | JunOS MCP for config changes; pyATS for operational verification | | pyats-routing | Same methodology for Cisco devices — multi-vendor routing audits | | pyats-parallel-ops | pCall pattern for fleet-wide BGP/OSPF audits | | te-path-analysis | ThousandEyes path data complements traceroute analysis | | netbox-reconcile | Cross-reference learned routes with NetBox prefix assignments | | gait-session-tracking | Every command logged in GAIT |
count to avoid infinite pingsno-resolve on traceroute — avoids DNS timeoutstesting
Human-in-the-loop escalation via HumanRail — route low-confidence agent decisions, pre-destructive operation approvals, and ambiguous incident tickets to real human engineers. Human answers are verified and returned as structured output. Workers are paid via Lightning Network. Use when the agent is uncertain, when a destructive change needs explicit human sign-off beyond a ServiceNow CR, or when an ambiguous ticket requires human triage before automated handling.
testing
Manage EVE-NG node lifecycle. Use when listing nodes, checking runtime state, creating or deleting nodes, starting or stopping nodes or whole labs, verifying node details, or wiping node NVRAM back to factory defaults.
development
Manage EVE-NG labs and platform inventory. Use when listing labs, checking lab metadata, creating or deleting labs, importing or exporting lab archives, checking EVE-NG health or auth, or verifying available node images before build work.
tools
Execute live CLI commands on running EVE-NG nodes over telnet console. Use when running show commands, making live config changes, verifying protocol state, testing connectivity, checking console readiness, or interacting with IOS, Junos, VPCS, EOS, or NX-OS nodes.