Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Apr 2016 18:19:20 +0800
From:      Julian Elischer <julian@freebsd.org>
To:        freebsd-net@freebsd.org
Subject:   Re: Assigning same ip address to different interfaces with different FIBs
Message-ID:  <571757A8.8030007@freebsd.org>
In-Reply-To: <118390227.3958522.1461146303528.JavaMail.yahoo@mail.yahoo.com>
References:  <118390227.3958522.1461146303528.JavaMail.yahoo.ref@mail.yahoo.com> <118390227.3958522.1461146303528.JavaMail.yahoo@mail.yahoo.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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.
> _______________________________________________
> freebsd-net@freebsd.org mailing list
> https://lists.freebsd.org/mailman/listinfo/freebsd-net
> To unsubscribe, send any mail to "freebsd-net-unsubscribe@freebsd.org"
>




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?571757A8.8030007>