Description

This article provide the information about the error "FLOW:fast path pkt reroute failed "

SRX reports "fast path pkt reroute failed "

root@SRX-1> monitor security packet-drop from-zone SERVER source-prefix 192.168.0.10 

Starting packet drop: 

13:18:59.559759:LSYS-ID-00 192.168.0.10/57860-->10.0.0.0.1/161;udp,ipid-61078,reth2.0,Dropped by FLOW:fast path pkt reroute failed 

13:19:01.354238:LSYS-ID-00 192.168.0.10/54387-->10.0.0.0.1/161;udp,ipid-15314,reth2.0,Dropped by FLOW:fast path pkt reroute failed 

 

Symptoms

Asynchronous routing environment reporting drops due reroute failure:


Session ID: 4302706706, Policy name: Trust-Policy-B/129, HA State: Active, Timeout: -1, Session State: Valid

 In: 192.168.0.10/42294 --> 10.0.0.0.1/161;udp, Conn Tag: 0x0, If: reth0.11, Pkts: 29, Bytes: 5020,

 Out: 10.0.0.0.1/161 --> 192.168.0.10/42294;udp, Conn Tag: 0x0, If: reth0.0, Pkts: 20, Bytes:  3670,

 

Sample Traceoptions:-

Oct 2 08:41:34 08:41:33.960260::RT:~~~FLOW <192.168.0.10/42294->10.0.0.0.1/161;17,0x0> matched filter pf1(0) in root-logical-system for iif reth2.0 of root-logical-system:

Oct 2 08:41:34 08:41:33.960264::RT: packet [92] ipid = 4774, @0xe3538be92

Oct 2 08:41:34 08:41:33.960266::RT:---- flow_process_pkt: (thd 2): flow_ctxt type 15, common flag 0x0, mbuf 0x83be2600, rtbl_idx = 0

Oct 2 08:41:34 08:41:33.960267::RT: flow process pak fast ifl 66 in_ifp reth2.0

Oct 2 08:41:34 08:41:33.960267::RT:flow_decap_fast_tcp_udp_vector: session found in express path  

Oct 2 08:41:34 08:41:33.960268::RT: flow got session.

Oct 2 08:41:34 08:41:33.960268::RT: flow fast tcp/udp session id 4302706706

Oct 2 08:41:34 08:41:33.960270::RT:ha_ifp: reth1.0

Oct 2 08:41:34 08:41:33.960273::RT:flow_ipv4_rt_lkup success 10.0.0.0.1, iifl 0x43, oifl 0x83

Oct 2 08:41:34 08:41:33.960275::RT: route lookup failed: dest-ip 10.0.0.0.1 orig ifp reth1.0 output_ifp reth0.0  <<<<<<<

fto 0x1bd46f5a0 orig-zone 11 out-zone 18 

Oct 2 08:41:34 08:41:33.960278::RT: readjust timeout to 30s

Oct 2 08:41:34 08:41:33.960278::RT:ha_ifp: reth1.0

Oct 2 08:41:34 08:41:33.960278::RT:ha_ifp: reth1.0

Oct 2 08:41:34 08:41:33.960279::RT: packet dropped, pak dropped since re-route failed

Solution

From the above trace options, it is observed packets tuple <192.168.0.10/42294->10.0.0.0.1/161;17> is recognised with an existing session "4302706706", such session's outbound interface reth0.0; but from this packet was checked and it was compared to the Routing Table, the routing outcome was reth1.0, meaning that reth0.0 is no longer the outbound interface. System tries to reroute the packet over the latest valid route/outbound interface which It turns to be reth1.0. This interface belongs to a different security zone than the previous known outbound interface, hence the packet drop.


It implies a RIB change. Its suggested to validate if asynchronous routing is in place and avoid it when possible.

KB21983 [juniper.net] is suggested for reference. Further alternative found at Asymmetric Traffic with a Flow Based Device


Resolution:-

Clearing the older sessions can also fix the problem.

> clear security flow session session-identifier 4295271581

All other options below:

> clear security flow session ?

Possible completions:

 <[Enter]>           Execute this command

 advanced-anti-malware Show advanced-anti-malware sessions

 all                 Clear all sessions

 all-logical-systems-tenants All multitenancy systems

 application         Application protocol name

 application-traffic-control Show application-traffic-control sessions

 conn-tag            Session connection tag (0..4294967295)

 destination-port    Destination port (1..65535)

 destination-prefix  Destination IP prefix or address

 destination-service Vector routing destination service

 dynamic-application Dynamic application name

 dynamic-application-group Dynamic application group name

 family              Protocol family

 idp                 IDP sessions

 interface           Name of incoming or outgoing interface

 logical-system      Logical-system name

 nat                 Sessions with network address translation

 protocol            IP protocol number

 resource-manager    Sessions with resource manager

 root-logical-system Root logical-system (default)

 security-intelligence Show security-intelligence sessions

 services-offload    Services-offload sessions

 session-identifier  Clear session with specified session identifier

 session-state       Session state

 source-port         Source port (1..65535)

 source-prefix       Source IP prefix or address

 source-tenant       Vector routing source tenant

 ssl                 SSL sessions

 tenant              Tenant name

 tunnel              Tunnel sessions

 tunnel-inspection-type Tunnel inspection type

 vrf-group           Session L3VPN VRF Group

 vxlan-vni           VXLAN VNI (0..4294967295)

 |                   Pipe through a command

 

In order to configure the flow-traces to get the trace logs as shown in the symptoms, user need to configure flow traces as shown below --- 

# set security flow traceoptions file flow-trace

# set security flow traceoptions flag basic-datapath

# set security flow traceoptions flag packet-drops

# set security nat traceoptions flag all

# set security flow traceoptions packet-filter f0 source-prefix <sourceip> destination-prefix <destination-ip>

# set security flow traceoptions packet-filter f1 source-prefix <destinationip> destination-prefix <sourceip>

# commit

# run show log flow-trace

Modification History

2023-10-25 : Article Created