id summary reporter owner description type status priority milestone component version severity resolution keywords cc 1298 feature wish: extend Linux VRF support to other OSes Gert Döring "This is more a long-term thing... - collect information how ""multiple routing tables"", ""VRF"", etc. are done on various OSes - see if we can implement this in a sufficiently generic way What I've found so far: - Linux: SO_BINDTODEV will put the socket into ""a VRF"" if you bind to the (named) ""VRF device"" (-> vrf blue -> {{{bind-dev blue}}}). An interface is put into a VRF by enslaving it under the VRF master device. - FreeBSD: boot with ""net.fibs=N"" (default is 1, boot-time only), then a process can be put into a non-default fib with {{{setfib openvpn...}}} or setfib(2) or setsockopt(SO_SETFIB). An interface is put into a fib with {{{ifconfig ... -fib }}} - OpenBSD: {{{route}}} has {{{-T table}}} arguments to specifiy the routing table to use. {{{route -T table exec $command}}} seems to be similar to FreeBSD's {{{setfib i $command}}}. {{{ifconfig}}} has {{{rdomain $rdomainid}}} to specify a ""routing domain"". {{{setsockopt()}}} has SO_RTABLE ""set the routing table used for route lookups"", and {{{setrtable(2)}}} can be used to set the whole process's default table. (see man route, ifconfig, netintro, setsockopt) - NetBSD: ??? - MacOS: ??? - Windows: ??? " Feature Wish new minor Networking OpenVPN git master branch (Community Ed) Not set (select this one, unless your'e a OpenVPN developer) VRF, fib, setfib, setrtable