On 7 July 2016 at 20:30, Mickey Spiegel <emspi...@us.ibm.com> wrote: > >To: dev@openvswitch.org > >From: Gurucharan Shetty > >Sent by: "dev" > >Date: 07/05/2016 11:15AM > >Subject: [ovs-dev] [PATCH 1/2] ovn-northd: Ability to loop-back in a > router. > > > >Currently, when a client looks at a load balancer VIP, > >it notices that it is in a different subnet than itself > >and sends the packet to its connected router port's > >MAC address. The load balancer intercepts it. > > > >If the load balancer VIP translates to an endpoint IP in a > >different subnet (than the one client has), than the > >load balancing works fine because the router will send > >the packet to the correct destination. > > > >But if one of the endpoints that VIP translated into > >was in the same subnet as the client, the OVN router > >fails to send the packet back via the same interface. > > So the load balancer is translating the destination IP, > but leaving the MAC address unchanged? > Based on the MAC address, the packet is forwarded to > the router patch port? > Yes. This does look like a common behavior. Atleast, the default Kubernetes load balancers (or any iptables based load-balancers) seem to do that.
--snip... > > > I am concerned about two aspects of this proposal: > 1. It applies to all traffic to directly connected subnets, not just > for load balancer traffic. That is a significant change in behavior. > Agreed. (Having said that, some Physical routers seem to do the same thing. i.e. have the capability to send back the traffic. I am not sure whether all Physical routers are capable of doing it.) > 2. It is removing the inport early on in the router ingress pipeline, > which scares me and seems like it will make debugging difficult. > You could narrow it down quite a bit by matching on inport, but > that still leaves the behavior that concerns me for some traffic. > Looking at my design for NAT in a distributed router, removing > the inport would break it. I suspect there might be other > future features that might act on inport, such as RPF. > > This is only true when the destination IP address is in the same subnet as the router port. For other cases, inport is available. Do you also need to send back traffic? I guess what I am getting at is, why do you think this will hurt other features which won't loop-back? (For cases like that, a workaround would be to store inport in a register for later use? ) > > > > /* NAT in Gateway routers. */ > >-- > >1.9.1 > > > >_______________________________________________ > >dev mailing list > >dev@openvswitch.org > >http://openvswitch.org/mailman/listinfo/dev > > > > _______________________________________________ > dev mailing list > dev@openvswitch.org > http://openvswitch.org/mailman/listinfo/dev > _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev