静看光阴荏苒
不管不顾不问不说也不念

Debian10 Proxmox Hetzner IP block(additional subnet)

Hetzner这家的独立服务器购买额外IP有两种方法,第一种就是最常见的,直接买单个IP,一台服务器最多可以买6个,这种IP基本拿到手就能用,开KVM小鸡的时候,在后台申请一个MAC地址绑定就行了。

但毕竟只能买6个,如果还需要更多IP,就只能买IP段,也就是子网。在Hetzner后台最低可以买一个/29,最高可以买一个/25。但你可能会发现子网IP和单个IP不同,子网IP没有提供申请MAC地址的功能。如果我们把子网的IP按单个IP那样去用,你会发现小鸡是没有网的。

Hetzner的子网IP是需要我们自己做路由才能用的,我这边正好有一台机器需要配置一下,这里记录一下。

开始之前,友情提醒一下这家新上架的机器,B360的板子,8代U是装不了Debian9的,你装好了会发现没有网,原因是旧的系统已经没有网卡驱动支持了,如果要装这种旧系统得自己打驱动上去,但是他们客服也说的模模糊糊的,就丢了一个驱动链接的地址给我:

https://downloadcenter.intel.com/download/15817

我这边也懒得折腾了,用新不用旧吧,直接上Debian10,然后装一个Proxmox6:

echo "deb http://download.proxmox.com/debian/pve buster pve-no-subscription" > /etc/apt/sources.list.d/pve-install-repo.list
wget http://download.proxmox.com/debian/proxmox-ve-release-6.x.gpg -O /etc/apt/trusted.gpg.d/proxmox-ve-release-6.x.gpg
apt -y update && apt -y dist-upgrade
apt -y install proxmox-ve postfix open-iscsi
reboot

装好Proxmox重启上来之后,编辑网卡配置文件:

nano /etc/network/interfaces

我的配置如下:

### Hetzner Online GmbH installimage

source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback
iface lo inet6 loopback

iface eno1 inet manual
iface eno1 inet6 manual

auto vmbr0
iface vmbr0 inet static
        address 95.xxx.xxx.91
        netmask 255.255.255.192
        gateway 95.xxx.xxx.65
        bridge_ports eno1

iface vmbr0 inet6 static
        address 2a01:9f5:5a:255c::2
        netmask 128
        gateway fe80::1

auto vmbr1
iface vmbr1 inet static
        address 192.168.0.1
        netmask 255.255.255.0
        bridge_ports none
        bridge_stp off
        bridge_fd 0
        post-up echo 1 > /proc/sys/net/ipv4/ip_forward
        post-up iptables -t nat -A POSTROUTING -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE
        post-down iptables -t nat -D POSTROUTING -s '192.168.0.0/24' -o vmbr0 -j MASQUERADE

auto vmbr2
iface vmbr2 inet static
        address 95.xxx.xxx.161
        netmask 255.255.255.248
        bridge_ports none
        bridge_stp off
        bridge_fd 0
        up route add -host 95.xxx.xxx.162 dev vmbr2
        up route add -host 95.xxx.xxx.163 dev vmbr2
        up route add -host 95.xxx.xxx.164 dev vmbr2
        up route add -host 95.xxx.xxx.165 dev vmbr2
        up route add -host 95.xxx.xxx.166 dev vmbr2

iface vmbr2 inet6 static
        address 2a01:9f5:5a:255c::2
        netmask 64

这里解释一下这套配置:

1.如果你是买的单个IP开KVM小鸡,就把小鸡桥到vmbr0上用。

2.如果是屌丝买不起IP,想开NAT机器那就把小鸡桥到vmbr1上用。

3.如果是IP段(additional subnet)就把小鸡桥到vmbr2上。

这里着重解释一下IP段这块的配置,我在Hetzner买了一个/29,在后台我们可以看到是8个IP:

在邮件里面我们可以知道实际可用的IP是6个,这里去掉了一个网络地址和广播地址,所以是6个:

而真正能用到小鸡上面的只有5个,因为我们还需要在这6个里面拿出来1个做网关,所以在上面的vmbr2配置中,第一个可用IP(161)拿来做网关了,剩下的从162-166才是最后小鸡可用的。

此外,我还对vmbr2配置了IPv6支持,如果你要开双栈小鸡,同时支持IPv4/v6,还需要在母鸡上开启IPv6转发:

echo "net.ipv6.conf.all.forwarding = 1" >> /etc/sysctl.conf && sysctl -p

全部配置完成之后别忘了重启网络服务或者直接重启机器:

systemctl restart networking.service
reboot

这样我们就把/29的IP全部路由了,现在就可以拿来开小鸡了。不过你可能会发现如果是单个IP绑定MAC地址的那种,有DHCP服务可用,而现在这个IP段内的IP得我们自己手动在小鸡上配置,这样太麻烦了,既然没有DHCP服务,我们就自己动手装一个呗~

apt -y install isc-dhcp-server

编辑:

nano /etc/default/isc-dhcp-server

让DHCP服务只监听vmbr2的接口:

INTERFACESv4="vmbr2"

之后更改DHCP配置文件:

nano /etc/dhcp/dhcpd.conf

在文件末尾加入你的配置,我的配置如下,仅供参考:

subnet 95.xxx.xxx.160 netmask 255.255.255.248 {
  range 95.xxx.xxx.162 95.xxx.xxx.166;
  option domain-name-servers 8.8.8.8;
  option routers 95.xxx.xxx.161;
  default-lease-time 3200;
  max-lease-time 7200;
}

重启isc-dhcp-server,如果重启不了有可能是pid被占用了,先把pid删掉:

rm -rf /var/run/dhcpd.pid
systemctl restart isc-dhcp-server.service

然后是创建小鸡这块,针对我刚才配置的子网而言,这里选择vmbr2,另外把这个防火墙的勾去掉,不然小鸡接收不到DHCPREQUEST:

赞(1)
未经允许不得转载:荒岛 » Debian10 Proxmox Hetzner IP block(additional subnet)
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

分享创造快乐

广告合作资源投稿