Re: rp_filter equivalent?

Paul Procacci <[email protected]>
Newsgroups gmane.os.freebsd.devel.net
Message-ID <CAFbbPujxeDWotQROy9z4mSsxxr74d0hiQoiU+oj_GWgaS9z6hQ@mail.gmail.com>
On Sun, Jun 29, 2025 at 9:29 PM Mason Loring Bliss <[email protected]> wrote:
>
> Hi all.
>
> I'm wondering what the equivalent to the Linux rp_filter is on FreeBSD. I'm
> asking because I've got a set-up on a hosting provider where I have a
> floating IP address that's not related to the main IP address of my system.
> Which is to say, my system is a.b.c.10 and routes through a.b.c.1, and I've
> got a floating IP that's x.y.z.50. Traffic from that x.y.z.50 address is
> supposed to route through a.b.c.1.
>
> I've got a vnet jail that's set up to use that x.y.z.50 address, and I've
> assigned x.y.z.50 to epair0b in the jail, but I ran into a problem. I
> couldn't tell that jail to use a.b.c.1 as its default gateway and that that
> was out through epair0a without assigning an a.b.c address to epair0a, even
> though I don't actually have a spare assigned to me.
>
> I believe I can just tell Linux to ram packets out an arbitrary interface
> if I turn off rp_filtering via a syscall, but I'm not sure how to cleanly
> do this with FreeBSD, hence my resorting to pilfering an IP address. I'll
> never receive traffic intended for this pilfered address and there's no
> risk of it causing confusion, but it doesn't feel like a clean answer.
>
> So, there's my question: is there some way I can have my vnet jail send
> packets out an interface that the system believes is unrelated to the IP
> address assigned to that interface?
>
> Thanks!
>
> --
> (defun main () (format t "Mason Loring Bliss  -  [email protected] - ")
>  (format t "By the mysgydynge of the sterysman, he was set vpon the pylys")
>  (format t " of the brydge, and the barge whelmyd. - Chronicle of Fabyan~%"))


PF is the closest thing you'll get to rp_filter.

The "fix" your problem ......
You need to create a bridge.
Add your main interface to the bridge.
You can assign your .10 to the bridge.
Then, you can create your epair.
Assign the a side the bridge and the b side to your jail.
Add your .50 the the 'b' side, and add the default route of .1.

This allows L2+ traffic to work correctly for both the host and jail.

~Paul
-- 
__________________

:(){ :|:& };:
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.