Ildar/Numan,

If you are using HWOL on a smart NIC (CX6 and CX7 ) I had run into an
issue with dnat_and_snat offloading in one direction only (OVN central
23.09.0 and OVN controller 23.09.0)

I worked with the Nvidia team on this problem and the summary was as follows:

Initially there was an offloading problem with SNAT/DNAT because they
were using separate CT zones and one of them is not committed but CT
action was performed for every packet.
The problem was then fixed by using a common zone by the patch in
2021. (4deac4509abb northd: Use ct_(snat/dnat)_in_czone action for
distributed routers.)
Later in 2023 the default behavior was reverted back by a new patch
with the config use_common_zone, (b8c40e7593a9 northd: Make the use of
common zone in NAT configurable)

I think the trade of here is the LB and dnat_and_snat can't coexist on
a DLR which is using common_zone.

I just wanted to call this out in case its useful for you here.

Gav


On Thu, 25 Jul 2024 at 07:36, Ildar Isangulov via discuss
<ovs-discuss@openvswitch.org> wrote:
>
> Numan, thanks for clarification, I didn't know that both approaches use OVS 
> conntrack the same way
>
> Now I think we'll do that.
>
> On Wed, Jul 24, 2024 at 6:28 PM Numan Siddique <num...@ovn.org> wrote:
>>
>> On Wed, Jul 24, 2024 at 11:15 AM Ildar Isangulov via discuss
>> <ovs-discuss@openvswitch.org> wrote:
>> >
>> > Hi, Justin! Sorry, didn't notice your reply
>> >
>> > I will review this
>> >
>> > Regards,
>> > Ildar, network engineer
>> >
>> > On Wed, Jul 24, 2024 at 6:07 PM Ildar Isangulov 
>> > <ildarvildanovich...@gmail.com> wrote:
>> >>
>> >> Hi Numan, thanks for your reply, here more details as you requested
>> >>
>> >> This is a structure of NAT table in the OVN NB Database in my production 
>> >> environment
>> >>
>> >> # ovn-nbctl --no-l list nat <some rule>
>> >> _uuid               :
>> >> allowed_ext_ips     :
>> >> exempted_ext_ips    : []
>> >> external_ids        :
>> >> external_ip         :
>> >> external_mac        : []
>> >> external_port_range : ""
>> >> gateway_port        : []
>> >> logical_ip          :
>> >> logical_port        : []
>> >> options             : {}
>> >> type                :
>> >>
>> >> OVN version
>> >>
>> >> # ovn-nbctl -V
>> >> ovn-nbctl 24.03.2
>> >> Open vSwitch Library 3.3.0
>> >> DB Schema 7.3.0
>> >>
>> >> So, my use case is to be able to create DNAT rules like this (example):
>> >>
>> >> A user connects via public IP and some port, let's say 22222, and the 
>> >> gateway does DNAT translation and modifies headers:
>> >> public IP -> private IP of VM
>> >> external port (22222) -> ssh tcp port (22)
>> >>
>> >> But OVN can do only 1:1 DNAT translations, in other words port 22222 to 
>> >> port 22222, and this way we can expose only one VM using one public IP 
>> >> address
>> >>
>> >> Solution, as shown in a guide I shared demonstrates how to solve this 
>> >> using load balancers, but I want to try a more lightweight solution for 
>> >> comparison.
>> >>
>>
>> OK. Thanks for the details.
>>
>> OVN DNAT (i.e NAT of type "dnat" or "dnat_and_snat") maps one public
>> IP to one internal VM IP.   Seems to me using OVN load balancers is
>> the right way
>> for your use case.
>> i.e  PUBLIC IP : 22222 = [VM1 : 22, VM2 : 22, VM3 : 22, ...]
>>
>> As I said previously,  there is no real difference in the
>> implementation of OVN NAT and OVN Load balancers.  We use OVS
>> conntrack internally and it should
>> not have any impact in terms of performance.  Both are of the same weight.
>>
>> Thanks
>> Numan
>>
>>
>> >> Regards,
>> >> Ildar, network engineer
>> >>
>> >> On Wed, Jul 24, 2024 at 5:33 PM Numan Siddique <num...@ovn.org> wrote:
>> >>>
>> >>> On Wed, Jul 24, 2024 at 9:41 AM Justin Lamp via discuss
>> >>> <ovs-discuss@openvswitch.org> wrote:
>> >>> >
>> >>> > Hey,
>> >>> >
>> >>> > we would be in favor of that as well. It was actually possible to do
>> >>> > such a thing in the past, but only due to a bug, and we unfortunately
>> >>> > rely on that as many customers need to have ports from the routers
>> >>> > public ip forwarded to their VPN appliance.
>> >>> >
>> >>> > https://github.com/ovn-org/ovn/issues/233
>> >>> >
>> >>> > Thanks and best regards,
>> >>> > Justin Lamp
>> >>> >
>> >>> > Am 24.07.24 um 13:18 schrieb Ildar Isangulov via discuss:
>> >>> > > Hi everyone!
>> >>> > >
>> >>> > > I would like to ask the community about the implementation of DNAT in
>> >>> > > OVN. A few months ago, I read this topic
>> >>> > > (https://www.flaviof.com/blog2/post/main/openstack-port-forwarding/).
>> >>> > > Author shows how to configure DNAT translations using implementation
>> >>> > > with Load-balancer.
>> >>> > >
>> >>> > > My question is: is it the only one way to do DNAT in OVN? Maybe there
>> >>> > > is some way to configure it using either native nat rules on
>> >>> > > logical-router or OVS logical-flows?
>> >>>
>> >>> Hi,
>> >>>
>> >>> I'm a little confused here.  OVN does support DNAT in the logical router.
>> >>> Please see the NAT table in the OVN NB Database.
>> >>>
>> >>> Also note that OVN implements NAT and load balancer features using OVS
>> >>> conntrack.
>> >>> So its essentially the same underneath.
>> >>>
>> >>> Can you please explain your use case in more detail?
>> >>>
>> >>> Thanks
>> >>> Numan
>> >>>
>> >>> > >
>> >>> > > Regards,
>> >>> > > Ildar, network engineer
>> >>> > >
>> >>> > > _______________________________________________
>> >>> > > discuss mailing list
>> >>> > > disc...@openvswitch.org
>> >>> > > https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
>> >>> >
>> >>> >
>> >>> >
>> >>> > --
>> >>> > Justin Lamp
>> >>> > Systems Engineer
>> >>> >
>> >>> > NETWAYS Managed Services GmbH | Deutschherrnstr. 15-19 | D-90429 
>> >>> > Nuernberg
>> >>> > Tel: +49 911 92885-0 | Fax: +49 911 92885-77
>> >>> > CEO: Julian Hein, Bernd Erk, Sebastian Saemann | AG Nuernberg HRB25207
>> >>> > https://www.netways.de | justin.l...@netways.de
>> >>> >
>> >>> > ** Meet us at it-sa - https://www.netways.de/it-sa-2024/ **
>> >>> > ** OSMC 2024 - November | Nuremberg - https://osmc.de **
>> >>> > ** stackconf 2025 - Stay Tuned for 2025 - https://stackconf.eu **
>> >>> > ** NETWAYS Web Services - https://nws.netways.de **
>> >>> > ** NETWAYS Trainings - https://netways.de/trainings **
>> >>> > _______________________________________________
>> >>> > discuss mailing list
>> >>> > disc...@openvswitch.org
>> >>> > https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
>> >
>> > _______________________________________________
>> > discuss mailing list
>> > disc...@openvswitch.org
>> > https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
>
> _______________________________________________
> discuss mailing list
> disc...@openvswitch.org
> https://mail.openvswitch.org/mailman/listinfo/ovs-discuss
_______________________________________________
discuss mailing list
disc...@openvswitch.org
https://mail.openvswitch.org/mailman/listinfo/ovs-discuss

Reply via email to