Hi, Deepak!
The easiest way I can imagine is to use multiple VLANs, put all ceph hosts ports into every VLAN and use a wider subnet. For example, you can set
192.168.0.0/16 for the public ceph network, use 192.168.0.1-254 IPs for ceph hosts, 192.168.1.1-254/16 IPs for the first tenant, 192.168.2.1-254/16 for the second and so on. You'll have to be sure that no ceph hosts have
any routing facilities running and then get a number of isolated L2 networks with the common part. Actually it's not a good way and lead to many errors (your tenants must carefully use provided IPs and do not cross with other IPs spaces despite of the /16
bitmask).
An another option is - like David said - L3 routed network. In this case you will probably face with network bandwidth problems: all your traffic will go through one interface. But if your switches have L3 functionality you can route packets there. And
again, the problem would be in bandwidth: usually switches doesn't have a lot of power and routed bandwidth leaves a lot to desire.
And the craziest one :-). It just a theory, never tried this in production and even in a lab.
As with previous options you go with multiple per-tenant VLANs and ceph hosts ports in all of these VLANs.
You need to choose a different network for public interfaces, for ex.,
10.0.0.0/24. Then set loopback interface on each ceph host and attach a single unique IP to it, like
10.0.0.1/32,
10.0.0.2/32 and so on. Enable IP forwarding and start RIP routing daemon on each ceph host. Setup and configure ceph, use attached IP as MON IP.
Create ceph VLAN with all ceph hosts and set a common network IP subnet (for ex,
172.16.0.0/24), attach IP from this network to every ceph host. Check that you can reach any of the public (loopback) IPs from any ceph host.
Now create multiple per-tenant VLANs and put ceph hosts ports into every one. Set isolated subnets for your tenant's networks, for example,
192.168.0.0/23, use 192.168.0.x IPs as the additional addresses for the ceph hosts, 192.168.1.x as tenant network. Start RIP routing daemon on every tenant host. Check that you can reach every ceph public IPs (10.0.0.x/32).
I would also configure RIP daemon to advertise only 10.0.0.x/32 network on each ceph host and set RIP daemon on passive mode on client hosts. It's better to configure firewall on ceph hosts as well to prevent extra-subnets communications.
In theory it should work but can't say much on how stable would it be.
Best regards,
Vladimir