Hi Rajith,

If you are not using output feature you have to configure both inside and 
outside nat interfaces separately.

So got with input + output or output feature.

Output feature is not an nat interface. it is a feature that handles 
configuration of both outside and inside nat interfaces and together with pool 
address creates complete configuratoin of basic NAT box == home router gateway.

To nat specific local interface traffic only you have to configure inside 
interface for the lan interface and outside interface for the wan interface.

If you have any further questions please ask.

Best regards,
Filip Varga


From: vpp-dev@lists.fd.io <vpp-dev@lists.fd.io> On Behalf Of Rajith PR via 
lists.fd.io
Sent: Saturday, January 15, 2022 8:02 AM
To: alekc...@googlemail.com
Cc: vpp-dev@lists.fd.io
Subject: Re: [vpp-dev] Unable to configure mixed NAT and non-NAT traffic
Importance: High

Hi all,

Just to add to the query, I have observed that in interface configuration is 
optional for NAT to work. All traffic get NATed if out interface is set with 
output-feature.

Thanks,
Rajith

On Thu, 13 Jan 2022 at 7:06 AM, alekcejk via lists.fd.io<http://lists.fd.io> 
<alekcejk=googlemail....@lists.fd.io<mailto:googlemail....@lists.fd.io>> wrote:
Hi all,

I am trying to get setup for mixed NAT and non-NAT traffic.

In GNS3 I created VPP VM with three interfaces (1 external, 2 internal).

External interface GigabitEthernet0/5/0 with public IP address
203.0.113.1/30<http://203.0.113.1/30> connected to host with IP 
203.0.113.2/30<http://203.0.113.2/30> and route to
198.51.100.0/24<http://198.51.100.0/24> via 203.0.113.1
Internal interface GigabitEthernet0/6/0 with private IP address
172.16.0.1/24<http://172.16.0.1/24> connected to host with IP 
172.16.0.2/24<http://172.16.0.2/24>
Internal interface GigabitEthernet0/7/0 with public IP address
198.51.100.1/25<http://198.51.100.1/25> connected to host with IP 
198.51.100.2/25<http://198.51.100.2/25>

Internal traffic from/to 198.51.100.0/25<http://198.51.100.0/25> should be 
forwarded without NAT.
NAT address 198.51.100.128 should be applied on external interface
only for internal traffic from 172.16.0.0/24<http://172.16.0.0/24>.

Here my setup for VPP 21.01.1 (running on CentOS 8)

/etc/vpp/startup.conf:
unix {
  nodaemon
  startup-config /etc/vpp/startup-config
  log /var/log/vpp/vpp.log
  full-coredump
  cli-listen /run/vpp/cli.sock
  cli-history-limit 100
  cli-no-banner
  poll-sleep-usec 10
  gid vpp
}

api-trace {
  on
}

api-segment {
  gid vpp
}

dpdk {
  dev 0000:00:05.0
  dev 0000:00:06.0
  dev 0000:00:07.0
}

plugins {
  plugin default { disable }
  plugin dpdk_plugin.so { enable }
  plugin nat_plugin.so { enable }
  plugin arping_plugin.so { enable }
  plugin ping_plugin.so { enable }
}

logging {
   default-log-level debug
   default-syslog-log-level debug
}

ethernet {
  default-mtu 1500
}

/etc/vpp/startup-config:
set interface state GigabitEthernet0/5/0 up
set interface state GigabitEthernet0/6/0 up
set interface state GigabitEthernet0/7/0 up
set interface ip address GigabitEthernet0/5/0 
203.0.113.1/30<http://203.0.113.1/30>
set interface ip address GigabitEthernet0/6/0 
172.16.0.1/24<http://172.16.0.1/24>
set interface ip address GigabitEthernet0/7/0 
198.51.100.1/25<http://198.51.100.1/25>
nat44 enable sessions 50000 endpoint-dependent
nat44 forwarding enable
nat44 add address 198.51.100.128
set interface nat44 in GigabitEthernet0/6/0 output-feature
set interface nat44 out GigabitEthernet0/5/0 output-feature

If I run ping from internal host 172.16.0.2 to external host
203.0.113.2 then translation works correctly
02:44:23.420497 IP 198.51.100.128 > 203.0.113.2<http://203.0.113.2>: ICMP echo 
request, id
64233, seq 4, length 64
02:44:23.420516 IP 203.0.113.2 > 198.51.100.128<http://198.51.100.128>: ICMP 
echo reply, id
64233, seq 4, length 64

But if I run ping 203.0.113.2 from internal host 198.51.100.2 then NAT
also applied even though I didn't set nat in on the
GigabitEthernet0/7/0
02:47:15.242598 IP 198.51.100.128 > 203.0.113.2<http://203.0.113.2>: ICMP echo 
request, id
22324, seq 127, length 64
02:47:15.242620 IP 203.0.113.2 > 198.51.100.128<http://198.51.100.128>: ICMP 
echo reply, id
22324, seq 127, length 64

vpp# show nat44 interfaces
NAT44 interfaces:
 GigabitEthernet0/6/0 output-feature in
 GigabitEthernet0/5/0 output-feature out

If I remove "output-feature" then translation not applied at all with
enabled "nat44 forwarding enable".



In setup for VPP 21.10 I removed "endpoint-dependent" but if
"output-feature" will stay on internal interface GigabitEthernet0/6/0
I see new problem.

Only one correct response received on internal host 172.16.0.2 when
running ping 203.0.113.2, second response comes with source IP
198.51.100.128 instead of 203.0.113.2.
03:06:18.420787 IP 172.16.0.2 > 203.0.113.2<http://203.0.113.2>: ICMP echo 
request, id
405, seq 1, length 64
03:06:18.427246 IP 203.0.113.2 > 172.16.0.2<http://172.16.0.2>: ICMP echo 
reply, id 405,
seq 1, length 64
03:06:19.424157 IP 172.16.0.2 > 203.0.113.2<http://203.0.113.2>: ICMP echo 
request, id
405, seq 2, length 64
03:06:19.424441 IP 198.51.100.128 > 172.16.0.2<http://172.16.0.2>: ICMP echo 
reply, id
59651, seq 2, length 64

So I removed "output-feature" from internal interface GigabitEthernet0/6/0

/etc/vpp/startup-config:
set interface state GigabitEthernet0/5/0 up
set interface state GigabitEthernet0/6/0 up
set interface state GigabitEthernet0/7/0 up
set interface ip address GigabitEthernet0/5/0 
203.0.113.1/30<http://203.0.113.1/30>
set interface ip address GigabitEthernet0/6/0 
172.16.0.1/24<http://172.16.0.1/24>
set interface ip address GigabitEthernet0/7/0 
198.51.100.1/25<http://198.51.100.1/25>
nat44 enable sessions 50000
nat44 forwarding enable
nat44 add address 198.51.100.128
set interface nat44 in GigabitEthernet0/6/0
set interface nat44 out GigabitEthernet0/5/0 output-feature

vpp# show nat44 interfaces
NAT44 interfaces:
 GigabitEthernet0/6/0 in
 GigabitEthernet0/5/0 output-feature in out

With this setup NAT also applied to both 172.16.0.0/24<http://172.16.0.0/24> 
and 198.51.100.0/25<http://198.51.100.0/25>.

Can someone point me to what is wrong with my settings and what needs
to be changed in order for the NAT to work as required in my case?

Thanks,
Alexey



NOTICE TO RECIPIENT This e-mail message and any attachments are confidential 
and may be privileged. If you received this e-mail in error, any review, use, 
dissemination, distribution, or copying of this e-mail is strictly prohibited. 
Please notify us immediately of the error by return e-mail and please delete 
this message from your system. For more information about Rtbrick, please visit 
us at www.rtbrick.com<http://www.rtbrick.com>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#20780): https://lists.fd.io/g/vpp-dev/message/20780
Mute This Topic: https://lists.fd.io/mt/88388590/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to