2018-11-06 21:03:58

by Ben Greear

[permalink] [raw]
Subject: Support for VRF in NFS?

Hello,

I made a stab at implementing VRF support in NFS, but it appears
fairly complicated and I ended up reverting my changes....

Is anyone working on this?

And, if not, if anyone would like to be sponsored to work on this, please
let me know.

Thanks,
Ben

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com



2018-11-08 01:14:30

by J. Bruce Fields

[permalink] [raw]
Subject: Re: Support for VRF in NFS?

On Tue, Nov 06, 2018 at 01:03:54PM -0800, Ben Greear wrote:
> Hello,
>
> I made a stab at implementing VRF support in NFS, but it appears
> fairly complicated and I ended up reverting my changes....
>
> Is anyone working on this?
>
> And, if not, if anyone would like to be sponsored to work on this, please
> let me know.

Um, sorry--what's VRF?

--b.

2018-11-08 05:08:25

by Ben Greear

[permalink] [raw]
Subject: Re: Support for VRF in NFS?



On 11/07/2018 05:14 PM, J. Bruce Fields wrote:
> On Tue, Nov 06, 2018 at 01:03:54PM -0800, Ben Greear wrote:
>> Hello,
>>
>> I made a stab at implementing VRF support in NFS, but it appears
>> fairly complicated and I ended up reverting my changes....
>>
>> Is anyone working on this?
>>
>> And, if not, if anyone would like to be sponsored to work on this, please
>> let me know.
>
> Um, sorry--what's VRF?

Virtual Router logic. It is sort of like network stack containers,
and has been solid and fully featured in the kernel since 4.16 or so.

In the end, you effectively need to call the logic that SO_BINDTODEVICE
calls on the socket before binding to an IP.

The NFS and RPC logic is a giant tangled mess to my eyes, so
hoping I could bribe someone else to do it :)

Thanks,
Ben

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com

2018-11-08 15:31:38

by J. Bruce Fields

[permalink] [raw]
Subject: Re: Support for VRF in NFS?

On Wed, Nov 07, 2018 at 09:08:16PM -0800, Ben Greear wrote:
>
>
> On 11/07/2018 05:14 PM, J. Bruce Fields wrote:
> >On Tue, Nov 06, 2018 at 01:03:54PM -0800, Ben Greear wrote:
> >>Hello,
> >>
> >>I made a stab at implementing VRF support in NFS, but it appears
> >>fairly complicated and I ended up reverting my changes....
> >>
> >>Is anyone working on this?
> >>
> >>And, if not, if anyone would like to be sponsored to work on this, please
> >>let me know.
> >
> >Um, sorry--what's VRF?
>
> Virtual Router logic. It is sort of like network stack containers,
> and has been solid and fully featured in the kernel since 4.16 or so.
>
> In the end, you effectively need to call the logic that SO_BINDTODEVICE
> calls on the socket before binding to an IP.
>
> The NFS and RPC logic is a giant tangled mess to my eyes, so
> hoping I could bribe someone else to do it :)

So it's not enough to support network namespaces?

What's your motivation for this?

--b.

2018-11-08 16:35:34

by Ben Greear

[permalink] [raw]
Subject: Re: Support for VRF in NFS?



On 11/08/2018 07:31 AM, J. Bruce Fields wrote:
> On Wed, Nov 07, 2018 at 09:08:16PM -0800, Ben Greear wrote:
>>
>>
>> On 11/07/2018 05:14 PM, J. Bruce Fields wrote:
>>> On Tue, Nov 06, 2018 at 01:03:54PM -0800, Ben Greear wrote:
>>>> Hello,
>>>>
>>>> I made a stab at implementing VRF support in NFS, but it appears
>>>> fairly complicated and I ended up reverting my changes....
>>>>
>>>> Is anyone working on this?
>>>>
>>>> And, if not, if anyone would like to be sponsored to work on this, please
>>>> let me know.
>>>
>>> Um, sorry--what's VRF?
>>
>> Virtual Router logic. It is sort of like network stack containers,
>> and has been solid and fully featured in the kernel since 4.16 or so.
>>
>> In the end, you effectively need to call the logic that SO_BINDTODEVICE
>> calls on the socket before binding to an IP.
>>
>> The NFS and RPC logic is a giant tangled mess to my eyes, so
>> hoping I could bribe someone else to do it :)
>
> So it's not enough to support network namespaces?
>
> What's your motivation for this?

Network namespaces are difficult to uses for lots of use cases, and thus VRF
was born.

My own motivation is that it allows me to make hundreds or thousands
of individual NFS mounts from local mac-vlan (or other virtual/physical interfaces),
for testing purposes.

Similar to my patch set that binds to local IP address, which gives similar feature
set for non-VRF configurations. These bind-local-IP patches are not upstream and were rejected in
the past as un-wanted. I'm hoping VRF support would be more acceptable.

Thanks,
Ben

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com

2018-11-09 09:59:08

by Steven Whitehouse

[permalink] [raw]
Subject: Re: Support for VRF in NFS?

Hi,


On 08/11/18 16:35, Ben Greear wrote:
>
>
> On 11/08/2018 07:31 AM, J. Bruce Fields wrote:
>> On Wed, Nov 07, 2018 at 09:08:16PM -0800, Ben Greear wrote:
>>>
>>>
>>> On 11/07/2018 05:14 PM, J. Bruce Fields wrote:
>>>> On Tue, Nov 06, 2018 at 01:03:54PM -0800, Ben Greear wrote:
>>>>> Hello,
>>>>>
>>>>> I made a stab at implementing VRF support in NFS, but it appears
>>>>> fairly complicated and I ended up reverting my changes....
>>>>>
>>>>> Is anyone working on this?
>>>>>
>>>>> And, if not, if anyone would like to be sponsored to work on this,
>>>>> please
>>>>> let me know.
>>>>
>>>> Um, sorry--what's VRF?
>>>
>>> Virtual Router logic.? It is sort of like network stack containers,
>>> and has been solid and fully featured in the kernel since 4.16 or so.
>>>
>>> In the end, you effectively need to call the logic that SO_BINDTODEVICE
>>> calls on the socket before binding to an IP.
>>>
>>> The NFS and RPC logic is a giant tangled mess to my eyes, so
>>> hoping I could bribe someone else to do it :)
>>
>> So it's not enough to support network namespaces?
>>
>> What's your motivation for this?
>
> Network namespaces are difficult to uses for lots of use cases, and
> thus VRF
> was born.
>
> My own motivation is that it allows me to make hundreds or thousands
> of individual NFS mounts from local mac-vlan (or other
> virtual/physical interfaces),
> for testing purposes.
>
> Similar to my patch set that binds to local IP address, which gives
> similar feature
> set for non-VRF configurations.? These bind-local-IP patches are not
> upstream and were rejected in
> the past as un-wanted.? I'm hoping VRF support would be more acceptable.
>
> Thanks,
> Ben
>

For similar reasons David Windsor has been looking at some extensions
for DLM along these lines. Improving our ability to test seems to me
like it should be a good thing to do - in both cases. Likewise VRF
support seems also like it should be useful in a number of contexts.

Do you have a reference to your past work? I think it would be
interesting to get some discussion going here - maybe it would be
possible to have some common approach between kernel-side socket users,
and/or bounce some ideas around,

Steve.



2018-11-09 14:48:52

by Ben Greear

[permalink] [raw]
Subject: Re: Support for VRF in NFS?



On 11/09/2018 01:59 AM, Steven Whitehouse wrote:
> Hi,
>
>
> On 08/11/18 16:35, Ben Greear wrote:
>>
>>
>> On 11/08/2018 07:31 AM, J. Bruce Fields wrote:
>>> On Wed, Nov 07, 2018 at 09:08:16PM -0800, Ben Greear wrote:
>>>>
>>>>
>>>> On 11/07/2018 05:14 PM, J. Bruce Fields wrote:
>>>>> On Tue, Nov 06, 2018 at 01:03:54PM -0800, Ben Greear wrote:
>>>>>> Hello,
>>>>>>
>>>>>> I made a stab at implementing VRF support in NFS, but it appears
>>>>>> fairly complicated and I ended up reverting my changes....
>>>>>>
>>>>>> Is anyone working on this?
>>>>>>
>>>>>> And, if not, if anyone would like to be sponsored to work on this, please
>>>>>> let me know.
>>>>>
>>>>> Um, sorry--what's VRF?
>>>>
>>>> Virtual Router logic. It is sort of like network stack containers,
>>>> and has been solid and fully featured in the kernel since 4.16 or so.
>>>>
>>>> In the end, you effectively need to call the logic that SO_BINDTODEVICE
>>>> calls on the socket before binding to an IP.
>>>>
>>>> The NFS and RPC logic is a giant tangled mess to my eyes, so
>>>> hoping I could bribe someone else to do it :)
>>>
>>> So it's not enough to support network namespaces?
>>>
>>> What's your motivation for this?
>>
>> Network namespaces are difficult to uses for lots of use cases, and thus VRF
>> was born.
>>
>> My own motivation is that it allows me to make hundreds or thousands
>> of individual NFS mounts from local mac-vlan (or other virtual/physical interfaces),
>> for testing purposes.
>>
>> Similar to my patch set that binds to local IP address, which gives similar feature
>> set for non-VRF configurations. These bind-local-IP patches are not upstream and were rejected in
>> the past as un-wanted. I'm hoping VRF support would be more acceptable.
>>
>> Thanks,
>> Ben
>>
>
> For similar reasons David Windsor has been looking at some extensions for DLM along these lines. Improving our ability to test seems to me like it should be a good thing to do - in both cases. Likewise VRF support seems also like it should be useful in a number of contexts.
>
> Do you have a reference to your past work? I think it would be interesting to get some discussion going here - maybe it would be possible to have some common approach between kernel-side socket users, and/or bounce some ideas around,
>
> Steve.

Here is an old thread on the topic.

https://www.spinics.net/lists/linux-nfs/msg34811.html

My patches are in all my 'ct' kernels, and the needed patches are also in my nfs-utils repo.

My 4.19 tree has just been ported, so no idea if it works or not.

https://github.com/greearb?tab=repositories

My patch work fine using routing table rules without VRF, but they will not work with VRF.


Thanks,
Ben

--
Ben Greear <[email protected]>
Candela Technologies Inc http://www.candelatech.com