Date: Wed, 8 Jun 2016 08:37:44 -0600 From: Alan Somers <asomers@freebsd.org> To: "Eugene M. Zheganin" <emz@norma.perm.ru> Cc: FreeBSD Stable ML <stable@freebsd.org>, FreeBSD Net <freebsd-net@freebsd.org> Subject: Re: cannot delete on-interface route in FIB Message-ID: <CAOtMX2gLJBk3jdTqMOuhpi9Aw8GyJbHxi=uZ=DGKiOpmi4e0qQ@mail.gmail.com> In-Reply-To: <5757F6CF.7070807@norma.perm.ru> References: <5757F6CF.7070807@norma.perm.ru>
next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jun 8, 2016 at 4:43 AM, Eugene M. Zheganin <emz@norma.perm.ru> wrote: > Hi. > > (first part of the message is describing why I need this, so impatient > people can proceed to th 'setfib 2 route delete' part directly). > > I have a FreeBSD router connected to the ISP network, which is organized > according to the rfc3069 (you know, when all of the clients think they > have /24. but in reality they have /32 and a central router is > proxy-arping requests). This router is handling two organizations LANs, > and it has two Internet links connected, I'm using FIB 0 for the first > organization, and FIB 2 for second. To be specific: > > 46.146.220.88/24 - main router IP, gateway is 46.146.220.254, interface > vlan2 > 46.146.206.94/24 - second router IP, gateway is 46.146.206.254, > interface vlan4 > > Both 46.146.220.24 and .206.254 are the same ISP router. > > I also have the application server on IP 46.146.220.92, which FIB 0 > thinks is on-interface. Now the tricky part: > > When FIB 0 need to communicate with 46.146.220.92, it does so from it's > address 46.146.220.88, since it thinks it's directly reachable. But when > requesting MAC from 46.146.220.88 it receives the ISP router MAC, so it > does so via ISP router. This part is fine. > > Now the troubled part: > > When FIB 2 needs to communicate with 46.146.220.92, it thinks.... yeah, > that it's directly reachable from vlan2. When it initiates the session, > it takes 46.146.220.88 as source interface and everything is fine > (again). But when the client in the LAN initiates the exchange, the > packet IP src is translated to the 46.146.206.94 address, and the route > still points to the vlan2 interface. So, network stack sends the packet > with IP src of 46.146.206.94 via vlan2, and the ISP router seems to > dislike such packets. Two workarounds come to mind: > > - translating the packets from internal LAN destined to specific address > of 46.146.220.92 to appropriate address of vlan2 > - deleting the on-interface route from FIB 2. > > I have chosen the second (more obvious to me) but then I discovered that > I cannot do this: > > # setfib 2 route delete 46.146.220.0/24 > route: writing to routing socket: Address already in use > delete net 46.146.220.0 fib 2: gateway uses the same route > > why ? > > Finally I added the host route to 46.146.220.92 in FIB 2 pointing to the > appropriate (46.146.206.254) gateway and got my connectivity, but I > still don't understand why the deletion of on-interface route is > impossible. After all, it's the second FIB, and I don;t understand whet > gateway the error is talking about. I tried this without having the > default gateway in FIB 2, same result. > > Thanks. > Eugene. What is the value of "sysctl net.add_addr_allfibs"? In your case, it sounds like you want to set it to 0.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAOtMX2gLJBk3jdTqMOuhpi9Aw8GyJbHxi=uZ=DGKiOpmi4e0qQ>