A vendor case moves faster with a reproduction: the smallest topology that shows the symptom, the configs, and the exact commands whose output is wrong. Build the two or three routers involved on the same OS image, replay the configs, and capture show bgp neighbor, the received and advertised routes and the policy evaluation. The reproduction is what goes into the case, and the same lab is where the fix gets tried first. In ChatGPT, Claude or Meta Muse with NetPilot connected, you describe the symptom and the assistant builds the routers on real images and runs the commands.
Shrink the topology to the symptom
The peer that misbehaves, the router it peers with, and one router behind it that originates or should receive the prefix. If the symptom still shows with three routers, the case needs three routers, not the whole site.
Use the same network OS image
Cisco IOL for IOS, Cisco XRd for IOS XR, Cisco NX-OS for Nexus, Juniper cRPD for Junos, Arista cEOS for EOS, Nokia SR Linux, SONiC or FRR. The assistant deploys the image you name and replays the sanitized configs onto it.
Capture the session and both route views
The neighbour detail, the routes received from the peer before policy, the routes advertised to it, the BGP table entry for the prefix, and the route-map or policy that the session applies. One capture per router, timestamps on.
Package the reproduction
Topology, the configs, the OS version, the command list and the outputs, and the one line that states what is wrong. That is the case attachment, and the vendor engineer can replay it in their own lab from it.
Try the fix in the same lab first
The workaround the vendor suggests runs here with the same commands before anyone types it on a production router. If the after output is right, the same commands verify it in the window.
Say this to the assistant
R1 (AS 65001) peers with R2 (AS 65002) and is not installing 10.50.0.0/24, which R3 behind R2 originates. Build the three routers on Cisco IOL with the configs I pasted, enable soft-reconfiguration inbound on R1 for the R2 session, then run show ip bgp summary, show ip bgp neighbors 10.0.12.2 received-routes, show ip bgp 10.50.0.0/24 and show route-map FROM-AS65002 on R1 and quote the output.
The pair that settles most BGP cases is received-routes against the BGP table: it separates "the peer never sent it" from "we received it and dropped it". On Cisco IOS the received view needs soft-reconfiguration inbound on the neighbour, which the assistant adds in the lab when you ask for it.
| Network OS | Commands to run before and after |
|---|---|
| Cisco IOS (IOL) | show ip bgp summaryshow ip bgp neighbors 10.0.12.2show ip bgp neighbors 10.0.12.2 received-routesshow ip bgp neighbors 10.0.12.2 advertised-routesshow ip bgp 10.50.0.0/24show route-map FROM-AS65002 |
| Juniper Junos (cRPD) | show bgp summaryshow bgp neighbor 10.0.12.2show route receive-protocol bgp 10.0.12.2show route advertising-protocol bgp 10.0.12.2show route 10.50.0.0/24 detailtest policy FROM-AS65002 10.50.0.0/24 |
| Arista EOS (cEOS) | show ip bgp summaryshow ip bgp neighbors 10.0.12.2 received-routesshow ip bgp neighbors 10.0.12.2 advertised-routesshow ip bgp 10.50.0.0/24 |
| FRR and SONiC | vtysh -c "show bgp summary"vtysh -c "show bgp ipv4 unicast neighbors 10.0.12.2 received-routes"vtysh -c "show bgp ipv4 unicast neighbors 10.0.12.2 advertised-routes"vtysh -c "show bgp ipv4 unicast 10.50.0.0/24" |
The symptom in the prompt above: R1 does not install 10.50.0.0/24. The reproduction shows the prefix arriving from R2 with the path 65002 65003, the BGP table without it, and the inbound route-map matching an as-path list that permits only paths from AS 65002 itself. The prefix is dropped by local policy, which is the finding, and the case either closes or becomes a question about the policy, with the evidence attached.
R1# show ip bgp neighbors 10.0.12.2 received-routes
Network Next Hop Metric LocPrf Weight Path
*> 10.20.0.0/24 10.0.12.2 0 0 65002 i
* 10.50.0.0/24 10.0.12.2 0 0 65002 65003 i
Total number of prefixes 2
R1# show ip bgp 10.50.0.0/24
% Network not in table
R1# show route-map FROM-AS65002
route-map FROM-AS65002, permit, sequence 10
Match clauses:
as-path (as-path filter): 1
Set clauses:
Policy routing matches: 0 packets, 0 bytes
R1# show ip as-path-access-list 1
AS path access list 1
permit ^65002$The assistant runs the capture on every router in one go and quotes each device's output under its name. Every device is also a normal SSH target, so the vendor's suggested command can be typed by hand on the router, as in this capture from the NetPilot web app.
NOS and interop testing, bug reproduction across vendors, for the teams who ship the software.
A malformed-packet reproduction between two vendors, step by step.
The commands on each side and how to read a route-target mismatch.
The same before-and-after capture, used to test a change instead of a bug.
How to connect, what the tools do, which plan is needed, lab credits and the idle timeout.
What each plan includes, with lab credits and idle timeouts.
Create a NetPilot account, pick Pro or above, and connect NetPilot in ChatGPT, Claude or Meta Muse.