我们需要build立一个OpenBSD主机来使用它的子网之外的默认网关。 这就是我需要在Linux(而不是实际的IP)上完成的工作:
ifconfig eth0 33.33.33.33/31 up route add 33.33.33.254 dev eth0 route add default gw 33.33.33.254
问题是,我们不知道OpenBSD中的中间命令的等价物。 手册页说:
如果目的地可以通过不需要中间系统的接口作为网关直接到达,则应指定-iface修饰符;
可悲的是,我们似乎无法弄清楚如何使之与之协同工作。 这是一个OVH服务器上的虚拟主机,他们有许多其他操作系统的文档显示如何在这里: http : //help.ovh.co.uk/BridgeClient
这是一个古老的线索,但是在这里。
碰巧,我在OVH的子公司SoYouStart运行的ESXi 6.0上运行了许多OpenBSD VM。 这里的networking设置与OVH相同,我认为虽然很奇怪,但其主要目的是通过人为地限制广播域来尽可能地消除ARPstream量,而不需要使用VLAN。
在我的情况下,我已经要求从OVH额外的IP地址,他们来自一个完全不同的范围。 对于这里的讨论,我们假设这些是我的设置:
要在OpenBSD主机上configuration路由,这是我需要做的:
ifconfig vmx0 inet 192.0.2.64 255.255.255.255 route add -inet 213.0.113.254 -llinfo -link -static -iface vmx0 route add -inet default 213.0.113.254
为了在启动过程中完成所有这些,我忽略了/etc/mygate文件,并将以下内容放在/etc/hostname.vmx0 :
inet 192.0.2.64 255.255.255.255 !sleep 2 !route add -inet 213.0.113.254 -llinfo -link -static -iface vmx0 !route add -inet default 213.0.113.254
你会注意到sleep命令 – 由于某些原因,这在OpenBSD 5.9中是必需的,但是之前没有。 没有sleep ,第一个route命令将不会被执行,因此您的路由将不会正确configuration。
这工作使用以下技巧:
route命令把网关的IP地址(213.0.113.254)翻译成一个链接地址(MAC地址)。 这是通过-llinfo选项完成的; route命令中,使用-link选项,我们将链路地址安装到路由表中,并使用-iface vmx0告诉内核哪个networking接口的链路地址可以通过; -static开关将其标记为手动插入到路由表中的条目 route命令现在可以成功,因为到默认网关的路由现在是已知的 我在上面的设置中遇到的一个问题,我还没有解决,那就是四个OpenBSD主机之一以完全相同的方式configuration,运行完全相同版本的操作系统和完全相同的内核版本,即使是在同一个VMware主机上运行,每隔24小时左右,似乎就会从路由表中“失去”这条神奇的路线。
尝试在界面上设置别名:
ifconfig eth0 alias 33.33.33.254
根据所使用的驱动程序,OpenBSD可能会有不同的接口名称,然后是eth0。