[c-nsp] Question about NAT Rate Limiting

Rodney Dunn rodunn at cisco.com
Tue Nov 16 11:05:02 EST 2004


On Tue, Nov 16, 2004 at 09:37:26AM -0600, Brian Feeny wrote:
> 
> Thanks for the information, I think i have some time on this so I can  
> wait for it to get
> release first.  Are  you saying that:
> 
> ip nat translation max-entries list perHost 100
> ip access-list extended perHost
> 	permit ip 192.168.1.0 0.0.0.255 any
> 
> would not accomplish a "per-host" setting for hosts in 192.168.1.0/24?   
> Since its just a single /24
> I am protecting, I don't mind doing the ACL if it will effectively do  
> the same thing for now.

The way I read the docs for that is it's either per host or per ACL.

Setting NAT Rate Limits for Access Control Lists: Example

The following example shows how to limit the access control list named "vrf3" to 100 NAT entries:
Router(config)# ip nat translation max-entries list vrf3 100

would mean for ACL number X you allow it to have Y translations.
That would mean 1 ip with Y or Z ip's inside the subnet with Y for
a total of 100 max.

The host option is just a simple way of saying the same thing for
a /32 ACL match.

The CSCec16330 give you a global option to specify a per host max.


If you can't identify the user all the time based on a static
IP then the only thing you can do is limit "per ACL".

You don't have a per-host option without CSCec16330.

ip nat translation max-entries host is really just an ACL match
with a /32 ACL applied.

Rodney


> Brian
> 
> 
> On Nov 16, 2004, at 9:18 AM, Rodney Dunn wrote:
> 
> > On Tue, Nov 16, 2004 at 08:34:21AM -0600, Brian Feeny wrote:
> >>
> >> Rodney,
> >>
> >> Yes "all-host" would do what I want.  I assume this feature is  
> >> working.
> >>   Do you know, if the limit is reached, what is the behavior, do older
> >> entries get prematurely purged, or does attempts to create new entries
> >> just fail and the user must wait for older entries to time out?
> >
> > I just tested it.  I set the per host limit to 2 and on the
> > 3rd telnet through the box with debug ip nat I get:
> >
> > 101_#sh ip nat trans
> > Pro Inside global      Inside local       Outside local      Outside  
> > global
> > tcp 10.10.10.1:11295   1.1.1.100:11295    4.4.4.103:23        
> > 4.4.4.103:23
> > tcp 10.10.10.1:56730   1.1.1.100:56730    4.4.4.103:23        
> > 4.4.4.103:23
> > 101_#
> > *Nov 16 15:15:09.231: NAT*: s=1.1.1.100->10.10.10.1, d=4.4.4.103 [21]
> > *Nov 16 15:15:10.391: NAT: administratively-defined entry limit  
> > reached (2)
> > *Nov 16 15:15:10.403: NAT: administratively-defined entry limit  
> > reached (2)
> > *Nov 16 15:15:10.403: NAT: translation failed (A), dropping packet  
> > s=1.1.1.100 d=4.4.4.103
> >
> >
> >>
> >> I have a customer doing NAT for an entire apartment complex on a 1700
> >> (I know, REALLY bad idea).  One of these users is running some emule
> >> type program that feels it needs to scan the entire internet on a udp
> >> port searching for other emule people.   Its creating translation
> >> entries so fast (udp has default timeout of like 5 min) and consuming
> >> the memory (32MB) before they can start to expire.
> >
> > Yep.  That's exactly what this is supposed to fix.
> >
> >>
> >> I mainly wish to deploy this feature to prevent this user from taking
> >> down the router, and not have to put a global cap on everyone.  To me,
> >> this is more a policy problem and not a technical one, but the
> >> apartment managers aren't dealing with the situation appropriately so  
> >> I
> >> am trying to work up a technical solution.
> >
> > I made a mistake below. :(  This didn't make it in the code in time
> > for 12.3(11)T.  It went in 12.3(11.1)T so it will be in the next
> > T release on CCO.  If you would like to test this some since I was
> > involved with the development of this I could probably get you
> > an image to try.  Contact me offline if you are interested in
> > trying it out.
> >
> > Rodney
> >
> >
> >> Brian
> >>
> >>
> >> On Nov 15, 2004, at 9:10 PM, Rodney Dunn wrote:
> >>
> >>> I filed a request for this just for this reason:
> >>>
> >>> CSCec16330
> >>> Internally found moderate defect: Resolved (R)
> >>> Request ability to limit per user NAT entries
> >>>
> >>>
> >>> 12.3(11)T:
> >>>
> >>> Router(config)#ip nat translation max-entries ?
> >>>   <1-2147483647>  Number of entries
> >>>   all-host        Specify maximum number of NAT entries for each host
> >>>   all-vrf         Specify maximum number of NAT entries for each vrf
> >>>   host            Specify per-host NAT entry limit
> >>>   list            Specify access list based NAT entry limit
> >>>   vrf             Specify per-VRF NAT entry limit
> >>>
> >>> Router(config)#ip nat translation max-entries all-host ?
> >>>   <1-2147483647>  Number of entries
> >>>
> >>> Router(config)#ip nat translation max-entries all-host 20
> >>>
> >>> I'm not sure why the doc's didn't get updated to reflect
> >>> this.  I will check on that.
> >>>
> >>> I just filed yesterday:
> >>>
> >>> CSCsa42809
> >>> Internally found enhancement defect: Assigned (A)
> >>> Ability to limit per user NAT entries (CSCec16330) should be VRF  
> >>> aware
> >>>
> >>> Does CSCec16330 do what you are asking for with the all-host option?
> >>>
> >>> Rodney
> >>>
> >>>
> >>>
> >>>
> >>> On Mon, Nov 15, 2004 at 08:25:47PM -0600, Brian Feeny wrote:
> >>>> I have a question regarding the NAT rate limiting in 12.3:
> >>>>
> >>>> http://www.cisco.com/en/US/products/sw/iosswrel/ps5207/
> >>>> products_feature_guide09186a00801d09f0.html#1027258
> >>>>
> >>>> I understand you can globally limit the number of NAT translations:
> >>>>
> >>>> ip nat translation max-entries 300
> >>>>
> >>>> or you can limit a single host
> >>>>
> >>>> ip nat translation max-entries host 127.0.0.1 300
> >>>>
> >>>> can you use the ACL functionality to set a maximum amount of entries
> >>>> on
> >>>> a per host level?  For example:
> >>>>
> >>>> ip nat translation max-entries list perHost 100
> >>>> ip access-list extended perHost
> >>>> 	permit ip 192.168.1.0 0.0.0.255 any
> >>>>
> >>>> would the above make it so that each host in 192.168.1.0 had its own
> >>>> max-entries of 100, or would that be shared across all hosts in the
> >>>> ACL?  I am trying to look for a way so that each host has its own
> >>>> "max-entries" without having to set a bunch of lines specifically
> >>>> setting it for each host.
> >>>>
> >>>> Brian
> >>>>
> >>>> ---------------------------------------------
> >>>> Brian Feeny, CCIE #8036, CISSP
> >>>> Network Engineer
> >>>> ShreveNet Inc.
> >>>
> >>>
> >>>
> >>>> _______________________________________________
> >>>> cisco-nsp mailing list  cisco-nsp at puck.nether.net
> >>>> https://puck.nether.net/mailman/listinfo/cisco-nsp
> >>>> archive at http://puck.nether.net/pipermail/cisco-nsp/
> >>>>
> >> ---------------------------------------------
> >> Brian Feeny, CCIE #8036, CISSP
> >> Network Engineer
> >> ShreveNet Inc.
> >>
> >
> >
> > _______________________________________________
> > cisco-nsp mailing list  cisco-nsp at puck.nether.net
> > https://puck.nether.net/mailman/listinfo/cisco-nsp
> > archive at http://puck.nether.net/pipermail/cisco-nsp/
> >
> ------------------------------------------------------------------------ 
> ------
> Brian Feeny, CCIE #8036, CISSP    	e: signal at shreve.net
> Network Engineer           			p: 318.213.4709
> ShreveNet Inc.             			f: 318.221.6612
> 




More information about the cisco-nsp mailing list