OVH独服的网络配置算是比较简单的了。因为OVH通过交换机绑定MAC地址与附加IP的关系,所以我们基本不用自己去创建网桥来进行桥接。但同时OVH的网络配置过于奇怪导致如使用Ubuntu自带的安装程序来进行安装的话完全无法通过网络配置检测导致无法安装。可能有人会奇怪,为什么用的是Ubuntu而不是什么Debian或者CentOS。可能大家都知道我个人并不喜欢RHEL系列的系统。然而为什么不是Debian的原因是因为新的Debian版本的安装ISO基本都是LiveInstallCD都要在安装过程中联网,虽说离线ISO也有只需使用第一张ISO就能安装但由于第一张ISO足足有4G大小,而Ubuntu 16.04才800多MB。当然,Ubuntu 18.04开始也来LiveInstall了,所以确实有点难受。

本文同样适用于OVH的子品牌SoYouStart的服务器。但并不适用Kimsufi。

由于本文的重点是在于配置网络和DNS,所以在OVH的后台为附加IP生成虚拟Mac地址和Proxomx创建虚拟机的设置就不多说了。简单就用一句话带过,将OVH后台为附加IP生成虚拟Mac地址填入Proxmox创建虚拟机过程中的网络设置里的Mac地址里创建即可。

由于上面也说的原因,OVH提供的网络设置并不能在Ubuntu的安装流程中被正常填入。所以在Ubuntu安装过程中我们要跳过网络设置直接进行安装。等安装完进入系统之后我们要使用HTMLConsole手动再去设置网络。


  • 获得网卡命名

由于Ubuntu 16.04开始网卡不再使用eth0这种命名,而且由于机器的不同命名也会不同,所以我们要先查看一下真正的网卡名称是啥。

cd /proc/sys/net/ipv4/conf && ls -ls

使用以上命令我们应该能看到在该目录下,除了all、default、lo以外,还有另外一个叫做ens16之类的名字,请注意,这里的ensXX并不唯一,所以还是先行查看一下比较稳妥。当然我们也可以使用以下命令来直接输出网卡名,只要你不觉得这句命令在HTMLConsole里难输入。以下命令是我之前写自动配置脚本时候使用的命令:

cat /proc/net/dev | grep -v lo | awk '{if($2>0 && NR > 2) print substr($1, 0, index($1, ":") - 1)}'

当然,如果你的机器里有多张网卡的话输出结果可能会不止一个。


  • 配置网络

知道了网卡名字之后,我们就要开始配置网络了。首先Ubuntu由于跟Debian是亲兄弟,所以还是要修改/etc/network/interfaces文件。

vim /etc/network/interfaces

打开了之后,我们会发现文件里一般是这个样子:

auto lo
iface lo inet loopback

其他的就没了。那我们就得手动补全网络配置并添加路由。修改的例子如下:

auto lo <网卡名称>
iface lo inet loopback
iface <网卡名称> inet static
    address <要在这台小鸡上使用的附加IP>
    netmask 255.255.255.255
    broadcast <要在这台小鸡上使用的附加IP>
    post-up route add <网关IP> dev <网卡名称>
    post-up route add default gw <网关IP>
    pre-down route del <网关IP> dev <网卡名称>
    pre-down route del default gw <网关IP>

这里将会说明一下几个参数,首先就是<网关IP>。这里要填的网关IP实际上是能够从母鸡的IP上算出来的。假如你的母鸡IP是xxx.xxx.xxx.xxx,那么这里的网关IP就是xxx.xxx.xxx.254

接下来不得不提一下为什么不能在Ubuntu安装程序内直接配置网络的罪魁祸首,这个netmask。应该能很明显的发现,这个子网掩码按照正常来说并不是正常的配置,但OVH就是这么配置的。所以通过一些校验算法来计算的话都不会通过校验。

<要在这台小鸡上使用的附加IP>这个就是之前我们在Proxmox上填写的MAC地址所绑定的IP。

那么假设我们要分给这个小鸡的IP是192.168.1.100,网卡名称为ens16,同时母鸡的IP是192.168.1.11,那么我们就应该这么完善/etc/network/interfaces文件:

auto lo ens16
iface lo inet loopback
iface ens16 inet static
    address 192.168.1.100
    netmask 255.255.255.255
    broadcast 192.168.1.100
    post-up route add 192.168.1.254 dev ens16
    post-up route add default gw 192.168.1.254
    pre-down route del 192.168.1.254 dev ens16
    pre-down route del default gw 192.168.1.254

是的,以上配置信息得在HTMLConsole完全手打。配置完以上信息之后需要重启网络服务:

/etc/init.d/networking restart

当然你可以等下面DNS配置完之后再来重启网络服务。


  • DNS配置

配置完以上的东西以后,DNS就是最后一个需要配置的东西了。当然,由于Ubuntu 16.04是个喜爱搞点标新立异的东西来证明自己是个新版本,所以以前的配置文件并不能使用。

所以我们要创建一个新的配置文件:

vim /etc/resolvconf/resolv.conf.d/base

这个文件默认并不存在,所以打开是空的,我们在下面加入以下内容:

nameserver 213.186.33.99

这个DNS的IP其实是OVH自己的DNS服务器。当然你可以换成8.8.8.8或者1.1.1.1。不过毕竟ovh的DNS是自己机房内的东西,访问相对于外部服务较为稳定。

配置完DNS之后我们还需要再重启一次网络服务,当然我建议你直接reboot重启服务器。算是对不能复制粘贴的HTMLConsole的道别。之后就能正常使用其他SSH客户端进行连接了。


以上就是OVH独服用Proxmox开小鸡之后对网络配置的记录。有人可能觉得这很麻烦,有没有什么更好的办法呢?有的,开个DHCP服务来自动分发网络配置。当然这个如何设置DHCP服务的记录,以后有空我再写吧。但不管是DHCP还是手动填写,其实最关键的还是以上内容,所以不管如何以上内容都是其他花式玩法的基础。