NAT Alarm of Router Resulted from Disorder of Packets to Internal Network From Outside

Publication Date:  2012-07-27 Views:  104 Downloads:  0
Issue Description
When a net-bar user accesses public network after NAT, the service suspends sometimes, and the router prompts alarm information, and then the service is restored automatically.  
Topology: network bar-------(private networkETH1) R2621 (ETH0 public network)-------C 2XXX
Alarm Information
Router alarms: 
%2005/09/30 13:52:37-NAT-6:
 NAT: Fail to trans nat frag, src X.X.X.X, dst X.X.X.X id 61513,
pro 17
%2005/09/30 13:52:37-ETHERNET-6:
Ethernet1: Received a unknown frame.
%2005/09/30 13:52:38-STANDBY-6:
ARP Add or update arp cache, IP:X.X.X.X,Ethernet:00-11-09-d8-62-c2
%2005/09/30 13:52:38-NAT-6:
 NAT: Fail to trans nat frag, src X.X.X.X, dst X.X.X.X, id 63438,
pro 17
%2005/09/30 13:52:38-NAT-6:
 NAT: Fail to trans nat frag, src X.X.X.X, dst X.X.X.X, id 64919,
pro 17
%2005/09/30 13:52:38-NAT-6:
 NAT: Fail to trans nat frag, src X.X.X.X, dst X.X.X.X, id 65182,
pro 17
%2005/09/30 13:52:40-STANDBY-6:
ARP Add or update arp cache, IP:X.X.X.X,Ethernet:00-11-09-d8-62-c2
%2005/09/30 13:52:40-ETHERNET-6:
Handling Process
Configure the nat fragbuffer enable command to cache the disordered fragments (the router caches the follow-up fragments that arrive first, and transmit them after the first fragment arrives); configure nat fragbuffer length command to specify the length of fragment cache queue. 
Since the length of cache queue is limited, if a great deal of disordered fragments are received in a short time, the extram fragments after the queue is full will not perform NAT. 
Root Cause
The alarm is resulted from the disorder of fragmented packets from public network to internal network (the follow-up fragments reach the router earlier than the first fragment).
Since only the first fragment contains the port number of TCP/UDP, it is required to first make sure the Session entry used by NAT according to the first fragment, and record it in nat_frag; when the follow-up fragments arrive, the destination address is replaced according to the record in nat_frag.
If the follow-up fragments arrive first, no record could be found in nat_frag table, failing to perform NAT, and printing the debugging information. 
Suggestions
VRP1.74 could be configured with nat fragbuffer enable command, and nat fragbuffer length command to specify the length of fragment caching queue, avoiding service interruption resulted from disordered packet fragments when traffic reaches peak abruptly. 

END