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 connected to host with IP 203.0.113.2/30 and route to 198.51.100.0/24 via 203.0.113.1 Internal interface GigabitEthernet0/6/0 with private IP address 172.16.0.1/24 connected to host with IP 172.16.0.2/24 Internal interface GigabitEthernet0/7/0 with public IP address 198.51.100.1/25 connected to host with IP 198.51.100.2/25 Internal traffic from/to 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. 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 set interface ip address GigabitEthernet0/6/0 172.16.0.1/24 set interface ip address GigabitEthernet0/7/0 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: ICMP echo request, id 64233, seq 4, length 64 02:44:23.420516 IP 203.0.113.2 > 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: ICMP echo request, id 22324, seq 127, length 64 02:47:15.242620 IP 203.0.113.2 > 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: ICMP echo request, id 405, seq 1, length 64 03:06:18.427246 IP 203.0.113.2 > 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: ICMP echo request, id 405, seq 2, length 64 03:06:19.424441 IP 198.51.100.128 > 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 set interface ip address GigabitEthernet0/6/0 172.16.0.1/24 set interface ip address GigabitEthernet0/7/0 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 and 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
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#20702): https://lists.fd.io/g/vpp-dev/message/20702 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] -=-=-=-=-=-=-=-=-=-=-=-