JNCIP-SP Study Note

Junos Troubleshooting Field Notes

Junos JNCIP-SP Operations Troubleshooting Juniper Technical Champions

These notes come from a Junos troubleshooting module I worked through as part of the Juniper Technical Champions program. I found this topic worth documenting because troubleshooting is not a lab-only skill; it is part of the daily work of keeping production networks stable, understandable, and recoverable.

On This Note

Troubleshooting Mindset

The biggest lesson is simple: before touching the network, understand what normal looks like. A value is only useful when there is a baseline to compare it against: usual traffic levels, expected neighbors, interface counters, route counts, CPU behavior, latency, logs, and the latest approved change.

In production, troubleshooting also has to respect change control. Even when the fix looks obvious, the process still matters: maintenance window, impact analysis, implementation plan, rollback plan, pre-checks, post-checks, and approval. That discipline is what separates quick guessing from professional operations.

Baseline

Know the normal state before deciding what is broken.

normal first

Scope

Isolate whether the issue is physical, control plane, forwarding, or policy.

reduce noise

Validate

Collect evidence before and after the change.

prove it

Rollback

Have a path back before making the production change.

recover fast

Observe Before Changing

Junos gives a strong operational toolkit for looking at the system before changing it. Logs, uptime, packet capture, chassis events, and hardware inventory are usually the first signals I want before assuming the protocol is the problem.

Command Reference - logs, uptime, chassis, and inventory
show system uptime
show log messages | match ae0
show log chassisd | match "FPC|PIC|PEM|fan|temperature"
show chassis environment
show chassis hardware
show log inventory

For packet-level evidence, monitor traffic is powerful, but it should be used carefully. Juniper explicitly warns that packet monitoring can affect scale and performance, so I treat it like a focused diagnostic tool, not a permanent observer.

Command Reference - packet observation
monitor traffic interface ge-0/0/0 no-resolve detail
monitor traffic interface ge-0/0/0 matching "port 179" no-resolve detail

Control Plane Health

When the Routing Engine is under pressure, protocol symptoms can look like routing bugs even when the root cause is CPU, memory, daemon load, or churn. I normally start with the RE view, then move into process-level visibility.

Command Reference - RE and process health
show chassis routing-engine
show system processes summary
show system processes extensive
show system processes extensive | match rpd

For rpd, scheduler slips are a useful signal. A slip does not automatically mean the daemon is broken; it means the routing process was too busy to run a task at the expected time. That can happen during route churn, interface flaps, BGP updates, complex policies, or reconvergence.

If a daemon crashes, core files are not something to ignore or delete blindly. They preserve process or kernel state at the time of failure and should normally be collected with support information before escalation to JTAC.

The core file can come from a user process, the Junos kernel, or an embedded host component depending on the platform and failure type. That distinction matters when deciding whether the issue is isolated to a daemon or related to a deeper system event.

Command Reference - crash evidence and support bundle
show system core-dumps
request support information
My note to myself: do not restart a process just because it looks busy. First understand what made it busy.

Storage, Software, and Recovery

Storage issues are not glamorous, but they can block upgrades, snapshots, and recovery work. Before software maintenance, I like checking available space and cleaning only what the platform identifies as safe to remove.

Command Reference - storage review and cleanup
show system storage
request system storage cleanup dry-run
request system storage cleanup

For software installation under tight space conditions, options such as no-copy and unlink can reduce temporary storage requirements. For recovery scenarios, snapshots and secondary boot media matter because they give the device a known path back.

Command Reference - software install and snapshot
request system software add <package> no-copy unlink
request system snapshot
set system mirror-flash-on-disk

Routing Checks: OSPF, BGP, and Reachability

Routing troubleshooting is easier when each layer is validated in order. For OSPF, I check physical and data-link state, subnet consistency, area, authentication, timers, network type, and MTU. A neighbor stuck in ExStart or Exchange immediately makes me suspicious of MTU.

Command Reference - OSPF validation
show ospf neighbor detail
show interfaces ge-0/0/0 extensive
show ospf statistics

For EBGP over loopbacks, two items are easy to miss: the local address and multihop. If the remote device is not available, a targeted capture can still show whether TCP 179 is arriving, which source address is used, and whether TTL or path reachability may be involved.

Command Reference - EBGP over loopbacks
set protocols bgp group EBGP type external
set protocols bgp group EBGP local-address 192.0.2.1
set protocols bgp group EBGP multihop
set protocols bgp group EBGP neighbor 192.0.2.2 peer-as 65002

show bgp neighbor
monitor traffic interface ge-0/0/0 matching "port 179" no-resolve detail

High Availability Validation

HA in Junos is a set of different mechanisms, and mixing them up creates confusion. GRES helps preserve forwarding and kernel state during Routing Engine switchover. NSR replicates routing protocol state to the backup RE. Graceful Restart depends on neighbor cooperation. ISSU is about software upgrade with reduced interruption.

BFD belongs in the same operational conversation, but it solves a different problem: fast failure detection for protocols such as BGP, OSPF, IS-IS, RSVP, LDP, and static routes. Also, when a BGP capability such as Graceful Restart is enabled after the session is already established, the session normally needs to restart so capabilities can be renegotiated in the BGP OPEN exchange.

Command Reference - dual RE and switchover checks
commit synchronize
show chassis routing-engine
show system switchover
show task replication

One operational detail I like from this topic: commit synchronize is not just a nice habit. On dual-RE systems, it helps keep candidate configuration activation aligned across both Routing Engines and reduces surprises during failover work.

Platform, Access, and Control Plane Protection

The original material also touched SNMP, control plane protection, ARP, and interface troubleshooting. I like keeping those in the same note because many incidents start as "routing is broken" and end up being management access, ARP, MTU, or RE protection.

For monitoring, SNMPv3 is the safer operational choice because it supports authentication, integrity, encryption, and user-based access control. Traps are fire-and-forget notifications, while informs request confirmation from the NMS.

For Routing Engine protection, firewall filters applied as input filters on lo0 are a key part of Junos hardening. The filter should explicitly allow expected control and management traffic such as BGP, OSPF or IS-IS, BFD, SSH from management networks, SNMP from the NMS, NTP, and controlled ICMP. Everything else should be handled intentionally, not accidentally.

Command Reference - ARP, SNMP thinking, and RE protection
show arp
show ipv6 neighbors

set interfaces lo0 unit 0 family inet filter input PROTECT-RE

Interfaces, MTU, LACP, and Switching Checks

Physical and Layer 2 checks are easy to underestimate. Interface speed, duplex, link mode, FEC, frame errors, flaps, MTU, encapsulation, and loopback state can all explain symptoms that initially look like protocol problems.

Command Reference - physical interface and MTU validation
show interfaces ge-0/0/0 extensive
show interfaces statistics ge-0/0/0 detail

ping 192.0.2.1 size 1472 do-not-fragment

The loopback notes are a good reminder that physical Ethernet loopback is not the same thing as the logical lo0 interface. For transport and physical testing, the hierarchy matters.

Command Reference - interface loopback and LACP
set interfaces <interface-name> clocking internal
set interfaces <interface-name> ether-options loopback
edit interfaces <interface-name> otn-options

set interfaces ae0 aggregated-ether-options lacp active

For switching, the same-port filtering example is worth remembering: if a switch receives a frame on the same port where the destination MAC is learned, it filters the frame instead of forwarding it. For STP, root bridge election comes down to the lowest Bridge ID: priority first, then MAC address.

LACP is another small detail with real impact: passive/passive does not initiate negotiation. At least one side must be active for the aggregate to form.

Quick Command Map

Area Commands
Logs and events show log messages, show log chassisd, show log inventory
Packet observation monitor traffic interface ge-0/0/0 no-resolve detail
RE and process health show chassis routing-engine, show system processes summary
Storage and recovery show system storage, request system storage cleanup, request system snapshot
Routing show ospf neighbor detail, show bgp neighbor, show interfaces extensive
High availability commit synchronize, show system switchover, show task replication
RE protection and ARP set interfaces lo0 unit 0 family inet filter input PROTECT-RE, show arp
Interfaces and MTU show interfaces extensive, ping size 1472 do-not-fragment, set interfaces ae0 aggregated-ether-options lacp active

Corrections I Want to Keep in Mind

  • For checking EBGP parameters without access to the peer, packet observation with monitor traffic interface is more useful than relying only on a syslog filter.
  • NSR requires GRES and saves routing information on the backup Routing Engine.
  • ksyncd is the process involved in kernel state synchronization between Routing Engines with GRES.
  • show system uptime gives time, boot, protocol start, and last configuration change context; it is not the same as show version.
  • In the hub/switch example, the destination host processes the frame and the switch filters it because the destination MAC is learned on the same ingress port.

Juniper References

Key Takeaways

  • Start with the baseline before deciding what is abnormal.
  • Use change control even when the fix seems small.
  • Look at logs, RE health, and packet evidence before blaming the protocol.
  • GRES, NSR, Graceful Restart, and ISSU solve different HA problems.
  • Troubleshooting is strongest when every assumption is validated with evidence.
This is why I wanted to keep these notes in my own archive: Junos troubleshooting is not just a set of commands. It is a way of thinking through change, evidence, risk, and recovery.

Comments & Discussion

Notes, corrections, or field experience around Junos troubleshooting are welcome.