“show nat44 deterministic mappings” probably doesn’t work because you use older 
version of the VPP (this was changed in 1804)
To delete NAT deterministic mapping use “nat44 deterministic add in 
<addr>/<plen> out <addr>/<plen> del”
Currently you can’t alocate specific number of ports of the external address to 
the internal clients. It is possible to implenet this, patches are welcome.
NAT plugin use IPfix for logging events 
https://wiki.fd.io/view/VPP/NAT#IPFIX_templates. Deterministic NAT doesn’t log 
session since internall address is statically mapped to set of external ports 
of the address (purpose of deterministic NAT is to reduce logging 


From: Hamid Rasool <14mseesras...@seecs.edu.pk>
Sent: Friday, April 6, 2018 12:16 PM
To: Matus Fabian -X (matfabia - PANTHEON TECHNOLOGIES at Cisco) 
Cc: vpp-dev@lists.fd.io
Subject: Re: [vpp-dev] #vpp CGNAT implementation in VPP

Thanks Fabian.

I have configured these steps and it seems to work (although some variations of 
nat deterministic add command caused vpp to crash and reset configurations 
though). However, there is another command in the VPP/NAT wiki: "show nat44 
deterministic mappings" which does not seem to work.
The "show nat44" command only seem to work however:

vpp# nat44 deterministic add in<> out<>
vpp# show nat44
NAT plugin mode: deterministic mapping
udp timeout: 300sec
tcp-established timeout: 7440sec
tcp-transitory timeout: 240sec
icmp timeout: 60sec
1 deterministic mappings

I want to ask how can we delete a pool mapping once we have set it or even 
change it because there seems to be no options to do that. Another query is 
about how can we allocate a specific number of ports of the external address to 
the internal clients. Lets say I want to map 8 internal addresses to 1 external 
for a pool of external addresses, which makes about 8000 ports (out of 65000) 
for each internal address. Is there any way to implement.
Last question for now, where are the session logs stored for NAT for each flow 
of packet. Does VPP provide syslog stats or any flow records for nat sessions?

Thanks again!



On Mon, Mar 19, 2018 at 5:19 PM, Matus Fabian -X (matfabia - PANTHEON 
TECHNOLOGIES at Cisco) <matfa...@cisco.com<mailto:matfa...@cisco.com>> wrote:

There is example of CGNAT configuration for currently supported feature set 

Basically you need do following 3 steps:
To enable CGNAT mode of NAT plugin add following to startup config: “nat { 
deterministic }”
Set inside and outside interfaces: set interface nat44 in <intfc> out <intfc>
Set pool address range for inside network range: nat44 deterministic add in 
<addr>/<plen> out <addr>/<plen>

That is all you can currently configure.


From: vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io> 
<vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>> On Behalf Of Hamid via 
Sent: Monday, March 19, 2018 1:03 PM
To: vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>
Cc: vpp-dev@lists.fd.io<mailto:vpp-dev@lists.fd.io>
Subject: [vpp-dev] #vpp CGNAT implementation in VPP


I have a Ubuntu server machine having 32 cores and four 1 Gigabit NICs with KVM 
hypervisor. I want to test VPP performance for CGNAT in NAT444 mode while 
supporting routing protocols like BGP and IS-IS on VM topology setup. Kindly 
direct me somewhere to get me started. The usage of CGNAT with a pool of out 
address ranges and allocating port numbers is not directly explained in the NAT 
plugin Wiki page. Any info regarding how to generate packet traffic to check 
performance in terms of number of concurrent sessions handled by CGNAT on my 
hardware will also be appreciated.

I have tried the progressive VPP tutorial but some of the switching related 
exercises are not functioning as expected and there is no similar tutorial or 
guide to apply CG-NAT along with routing as a PoC software router would do. 
Integration with FRR as per FRR wiki was also outdated and could not be 
achieved on my setup.

Waiting for suggestions. Thanks!

Reply via email to