We have a Nexus 3064 that is setup with partial BGP tables and is routing based on that.
I’ve done a show ip bgp for an IP of interest and it has an expected next hop IP. I show ip arp on that next hop IP and it has the expected interface.
However, sFlows show the packets leaving on a different interface, the one that would carry the default route for routes not otherwise known.
If the next hop IP is expected and the ARP of that next hop IP is expected, why are packets leaving out an unexpected interface?
Is the BGP route getting installed into the rib?
What does traceroute to that IP show?
Another route to the destination from a routing protocol with a lower distance?
What does "show ip route [destination]" look like?
switch-core1# sh forwarding route x.x.x.x
slot 1
It shows the desired result.
It shows the desired result.
What started this investigation was a client complained of traffic coming from another upstream instead of our direct connection.
SFlow misconfiguration or bug on either the nexus or the sflow monitor? On the monitor, can you verify that the snmp interfaces are mapped to the correct ones on the nexus?
SFlow misconfiguration or bug on either the nexus or the sflow monitor? On the monitor, can you verify that the snmp interfaces are mapped to the correct ones on the nexus?
What about VRFs and/or policy based routing?
switch-core1# show vrf
VRF-Name VRF-ID State Reason
default 1 Up --
management 2 Up --
switch-core1# show route-map
route-map rmap_bgp_to_eigrp_b2b, permit, sequence 10
Match clauses:
interface: Ethernet1/33
route-type: internal
Set clauses:
metric 40000000 10 255 1 1500
route-map rmap_bgp_to_eigrp_b2b, permit, sequence 20
Match clauses:
interface: Ethernet1/34
route-type: internal
Set clauses:
metric 40000000 30 255 1 1500
route-map rmap_static_to_eigrp, permit, sequence 10
Match clauses:
ip address prefix-lists: prefix_static_to_eigrp
Set clauses:
route-map rmap_static_to_eigrp_v6, permit, sequence 10
Match clauses:
ipv6 address prefix-lists: prefix_ipv6_static_to_eigrp
Set clauses:
Only two VRFs, default and manangement. IIRC, everything I saw before mentioned the default VRF.
I do see a ton of route-maps. It’s mostly Greek to me, so I’ll have to dig through this a bit to see what’s going on.
I don’t see any route-maps applied to interfaces, so there must not be any PBR going on. I only see ACLs, setting communities, setting local pref, etc. in the route maps that are applied to neighbors.
You said that they are seeing traffic from another upstream…are you advertising the prefix to them? Are you advertising their prefix to your upstream?
Looks like the route maps are involved in some dual redistribution…might want to make sure everything is matching correctly, and being advertised like you want.
sh ip bgp neighbor advertised-routes shows the only routes being advertised to Y are the routes that should be advertised to them. I checked a variety of other peers and have the expected results.
Packets come in on port A, supposed to leave on port X, but they leave on port Y. All of the troubleshooting steps I’ve done on my own (or suggested by mailing lists) say the packets should be leaving on the desired port X.
From the customer’s perspective, they’re supposed to be coming from me on port X, but they’re arriving on port Y, another network.
Port X in both scenarios is our direct connection, while port Y is a mutual upstream provider.
Without knowing more about the specific platform, it seems to me like a bug in the platform. If all indicators (not just configurations, but show commands as well) say the packet should be leaving on X and it leaves on Y, then I’m not sure what else it could be, besides a bug.
If you are both connected to the same upstream, but the customer wants traffic destined to the upstream to go through you (in and out), then they need to do something on their devices to try and affect the inbound path to their AS. From the upstream carrier in question they’ll take the best path to a prefix, which direct connection is generally going to be preferred over a transit AS (basic BGP best path algorithm stuff) unless there is some manipulation of the prefix advertisement happening.
To confirm the path being taken you should be able to do a few trace routes from various locations as well as use looking glasses.
Now the sflow data is an entirely different thing to analyze.
Via all mechanisms I could find in the router, it thinks the best path is the direct path, the packets just don’t go that way.
The in traffic isn’t a concern at this time, just the out (from my perspective).
Not that it’s a “Fix” but have you tried rebooting the box? If this is a bug in the forwarding plane that might clear/rebuild it. And maybe it works correctly after that.
Friend saw something similar on a Juniper MX with DPC cards that had run out of FIB space. It would show correctly in all places, but was failing to install in FIB (Router cut a error about it in the log). So the actual traffic didn’t follow the same path. I saw you specifically referenced “forwarding” in one of your copy pastes. And it looked right. But I don’t know enough about Cisco to say if that’s really what is in FIB. Or just what it thinks is in FIB.
We did have our common upstream provider perform maintenance that then afterwards, had the traffic flowing on the right path. Later activity on our direct connection pushed it back to the common upstream. We haven’t yet had the opportunity to bump our BGP session with the common upstream provider, but I suspect that will put the traffic back onto the right path. Seems like the router is just hanging onto the oldest BGP session it has, regardless of any other parameter or configuration.
This seems like a bug. We do intend on upgrading NX-OS, but that’s on someone else’s schedule.
We did have our common upstream provider perform maintenance that then afterwards, had the traffic flowing on the right path. Later activity on our direct connection pushed it back to the common upstream. We haven’t yet had the opportunity to bump our BGP session with the common upstream provider, but I suspect that will put the traffic back onto the right path. Seems like the router is just hanging onto the oldest BGP session it has, regardless of any other parameter or configuration.
This seems like a bug. We do intend on upgrading NX-OS, but that’s on someone else’s schedule.
Not that familiar with nexus 3k but I would compare the route in the rib and that on the module. If the platform is exhausting unicast route entries the control plan may show the route when module / asic doesn’t have it installed. It’s not always obviously when these things run out of tcam
https://www.cisco.com/c/en/us/td/docs/switches/datacenter/nexus9000/sw/9-x/unicast/configuration/guide/l3_cli_nxos/l3_manage-routes.pdf
This is nexus 9k
But I would expect it to be broadly similar in terms of diagnostic on the other platforms
Nexus 3ks are Broadcom merchant silicon (trident/tomahawk so I’d expect the them to run out of fib in the mid tens of thousands of routes…