Assigning same ip address to different interfaces with different FIBs

alan somers asomers at gmail.com
Wed Apr 20 14:18:13 UTC 2016


What you described doesn't work in FreeBSD, and there's even an open bug
for it.  But as Julian described, you should see if VIMAGE will work for
you.
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=189088

-Alan

On Wed, Apr 20, 2016 at 4:19 AM, Julian Elischer <julian at freebsd.org> wrote:

> On 20/04/2016 5:58 PM, M. V. via freebsd-net wrote:
>
>> Hello guys,
>> I have a problem with having multiple FIBs in FreeBSD-9.2. I've already
>> setup 4 FIBs in kernel, and everything is OK. I assigned each interface to
>> one FIB and I can add routes to any of FIBs I want, and everything works
>> fine.But my problem is, I want to assign same IP address to multiple
>> interfaces. for example:
>> interface em1 (in FIB-1) : 100.100.100.1/24interface em2 (in FIB-2) :
>> 100.100.100.1/24
>> this should work, bacause I want each FIB's interfaces and routes to be
>> completely separate from other FIBs' interfaces and routes. for this I do:#
>> sysctl net.add_addr_allfibs = 0
>>
> I think you are using the wrong tool to do this job.
> Fibs will "kind-of" allow you to do some of this but all fibs still 'see'
> all interfaces, Even if you don't set routes to them.
> What you want is VIMAGE/VNET
> Even though we've made vnet a characteristic of a jail (it wasn't always),
> you can still use it in the way you want if done right.
> Write a "how-to" when you've got it worked out :-)
>
>
> # ifconfig em1 fib 1# ifconfig em2 fib 2# setfib 1 ifconfig em1
>> 100.100.100.1/24# setfib 2 ifconfig em2 100.100.100.1/24
>> but this doesn't work as expected, and 100.100.100.0/24 route is only
>> being added to FIB-1 (second IP assignment command doesn't work, though it
>> returns no error).# setfib 1 netstat -rn ==> this fib has
>> 100.100.100.0/24 entry added in it# setfib 2 netstat -rn ==> nothing is
>> added here.
>>
>
> there are some sysctls that control some of this. have you investigated
> them?
>
> Though, as I say, you really want to structure your problem around using
> vimage.  Each vimage instance can have identical interfaces etc, becasue
> they are effectively separate machines.  You can route between them
> internally to the machine and at one stage you could have a process with
> sockets on each net but I"m not sure if you can still do that easily.
>
>
>
>
>> Is there any way I can do this in FreeBSD?
>> Thank you.
>> _____________________________________________
>>
>


More information about the freebsd-net mailing list