vrf support is great but there is some issue with it. It's not possible to add L2TPv3 interfaces to an vrf.
VRF command is missing for this kind of interface but it is supported by kernel using iproute2 commands:
vyos@vyos# set interfaces l2tpv3 l2tpeth0 vrf Configuration path: interfaces l2tpv3 l2tpeth0 [vrf] is not valid
L2TPv3 requires a small trick to create that device if source address of this tunnel is in vrf:
Step 1: Add temporary source address /32 to lo of this L2TPv3 interface
Step 2: Create L2TPv3 interface.
Step 3: Delete source address /32 from lo.
This is required because kernel module has not fully vrf support during creation. So, during creation module looks into default routing table if source address exist. After that module using vrf which is responsible for source address for routing.
vyos@vyos# run show version Version: VyOS 1.4-rolling-202105050912 Release Train: sagitta Built by: firstname.lastname@example.org Built on: Wed 05 May 2021 08:12 UTC Build UUID: 78b8bd29-d828-4d2f-9903-d602aaaddcc0 Build Commit ID: d3e2f3801f3db1