We need to set up an OpenBSD host to use a default gateway that's outside of it's subnet. This is all I need to do on Linux (not the actual IPs) to achieve it:
ifconfig eth0 33.33.33.33/31 up
route add 33.33.33.254 dev eth0
route add default gw 33.33.33.254
The problem is that we don't know the proper equivalent of the middle command in OpenBSD. The man page says:
If the destination is directly reachable via an interface requiring no intermediary system to act as a gateway, the -iface modifier should be specified;
Sadly we can't seem to figure out how to make it work with that. This is a virtual host on an OVH server, they have documentation for many other operating systems showing how to do it here: http://help.ovh.co.uk/BridgeClient
Best Answer
This is an old thread, but here goes.
As it happens, I run a number of OpenBSD VMs on an ESXi 6.0 running at SoYouStart, a daughter company of OVH. The network setup there is the same as with OVH and I think, although strange, its main purpose is to eliminate ARP traffic as much as possible by artificially limiting the broadcast domains, and without the need for using VLANs for example.
In my case, I've requested extra IP addresses from OVH and they come from a completely different range. For the discussion here, let's assume these are my settings:
To configure the routing on the OpenBSD host, this is what I need to do:
To have all this done during the start, I ignore the
/etc/mygate
file and put the following in the/etc/hostname.vmx0
:You will notice the
sleep
command - for some reason this is required on OpenBSD 5.9 but wasn't before. Without thesleep
, the first of the toroute
commands will not be executed and therefore your routing will not be configured correctly.This works using the following trick:
route
command we translate the IP address of the gateway (213.0.113.254) to a link address (MAC address); this is done by the-llinfo
option;route
command, using the-link
option, we install the link address to the routing table and using the-iface vmx0
we tell the kernel which network interface that link address is reachable via; the-static
switch marks it as a manually inserted entry into the routing tableroute
command can now succeed, as the route to the default gateway is now knownOne thing I did come across in the setup above, which I have no solution for yet, is that one of four OpenBSD hosts, configured in the exact same way, running the exact same version of the OS and the exact same kernel build, and even running on the same VMware host, every 24 hours or so, seems to be "losing" that magic route from its routing table...