Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 21 Sep 2020 14:35:50 +0700
From:      Eugene Grosbein <eugen@grosbein.net>
To:        Grzegorz Junka <list1@gjunka.com>, freebsd-net@freebsd.org
Subject:   Re: sshd on two fibs
Message-ID:  <c7af254d-e27b-9834-8b9f-6d62cf9a4f89@grosbein.net>
In-Reply-To: <9ff48087-b24e-263c-b1c2-030318722ec1@gjunka.com>
References:  <48e3aa5d-3123-45f2-5c46-6851ad90110a@gjunka.com> <4d78a442-147f-db32-72ae-487d3e0197cc@grosbein.net> <9ff48087-b24e-263c-b1c2-030318722ec1@gjunka.com>

next in thread | previous in thread | raw e-mail | index | archive | help
21.09.2020 14:21, Grzegorz Junka wrote:

>> All you need is telling kernel to use right gateway based on source IP address despite of default route,
>> this is called policy-based routing and you can achieve that with single ipfw rule:
>>
>> ipfw add 2000 fwd $gateway2 ip from $wan2ip to any out xmit $wan1
>>
>> That is: redirect IP packets with source of second WAN interface ($wan2ip) to right gateway of that WAN ($gateway2)
>> if they are going using (wrong) route to WAN1. That's all.
> 
> Thanks Eugene. I am reluctant to add firewall rules because the second interface is configured as being in fib 1.

Existance of the fib 1 does not matter for your case, at all.

> This is so that jails, which are also started with fib 1, can use the proper routing table.

Exactly.

> I don't want to add complexity where it isn't necessary, unless there is no other option.

Me too. And single ipfw rule is minimal possible addition, all other solutions are more complex.

> Is it possible to somehow configure sshd to use the proper routing table?

It is possible but it won't help you because every routing table contains routes that do NOT depend
on source IP address of the packet and you need such policy-based routing. Standard routing tables
do not offer policy-based routing, so they are useless for you.

You could read rc.conf(5) manual page to learn about <name>_fib knob (f.e. sshd_fib="1")
but it won't solve your problem. You could also add your own startup script to run second copy of sshd
with its own PID file and listening IP address and FIB but that would be much more complex solution.

Just tell kernel you need policy-based routing with ipfw. This just works.
No need to utilize second FIB just because you already have it.





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?c7af254d-e27b-9834-8b9f-6d62cf9a4f89>