Opened 5 years ago
Last modified 5 years ago
#1298 new Feature Wish
feature wish: extend Linux VRF support to other OSes
| Reported by: | Gert Döring | Owned by: | |
|---|---|---|---|
| Priority: | minor | Milestone: | |
| Component: | Networking | Version: | OpenVPN git master branch (Community Ed) |
| Severity: | Not set (select this one, unless your'e a OpenVPN developer) | Keywords: | VRF , fib , setfib , setrtable |
| Cc: |
Description (last modified by )
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 <i> openvpn...or setfib(2) or setsockopt(SO_SETFIB). An interface is put into a fib withifconfig ... -fib <i>
-
OpenBSD:
routehas-T tablearguments to specifiy the routing table to use.route -T table exec $commandseems to be similar to FreeBSD'ssetfib i $command.ifconfighasrdomain $rdomainidto specify a "routing domain".setsockopt()has SO_RTABLE "set the routing table used for route lookups", andsetrtable(2)can be used to set the whole process's default table. (see man route, ifconfig, netintro, setsockopt)
- NetBSD: ???
- MacOS: ???
- Windows: ???
Change History (2)
comment:1 Changed 5 years ago by
| Description: | modified ( diff ) |
|---|
Looks interesting - CC'd