如何将多个子网应用于具有一个NIC的服务器?

我试图通过专用服务器上的一个物理网卡路由多个IP,以便与Proxmox KVM虚拟机配合使用。 我有一个专门的服务器,目前正在运行的Debian 4.4.5-8 3个可用的IP地址使用,将显示为176.xxx.xxx.196(主),176.xxx.xxx.198(在同一子网作为主)和5.xxx.xxx.166(不同的子网)。 我目前试图路由第三个IP地址dedi使用与我已经使用proxmox v2.x设置的VPS,但是我真的很难这样做。 绑定附加IP地址的虚拟接口按预期工作,排除了外部路由问题。

提供者给出了主要子网上IP地址的以下信息:
网关:176.xxx.xxx.193
networking掩码:255.255.255.224
广播:176.xxx.xxx.223

以及第二个子网上IP地址的以下信息:
网关:5.xxx.xxx.161
networking掩码:255.255.255.248
广播:5.xxx.xxx.167

我用/ etc / network / interfaces试过的所有东西都没有工作,或者使networking完全无用。

这是该文件的当前状态,该文件具有在同一子网上工作的辅助IP地址以及IPv6工作,而不是第二个子网。

# Nativen IPv6 Schnittstelle iface eth0 inet6 manual # Bridge IPv4 Schnittstelle (176.xxx.xxx.193/27) auto vmbr0 iface vmbr0 inet static address 176.xxx.xxx.196 netmask 255.255.255.224 gateway 176.xxx.xxx.193 broadcast 176.xxx.xxx.223 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0 post-up ip addr add 176.xxx.xxx.198/27 dev vmbr0 auto vmbr1 iface vmbr1 inet static address 5.xxx.xxx.166 netmask 255.255.255.248 gateway 5.xxx.xxx.161 broadcast 5.xxx.xxx.167 bridge_ports eth0 bridge_stp off bridge_fd 0 bridge_maxwait 0 post-up ip addr add 5.xxx.xxx.166/29 dev vmbr1 # Bridge IPv6 Schnittstelle (Reichweite: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx::/64) iface vmbr0 inet6 static address xxxx:xxxx:xxxx:xxxx:xxxx:xxxx netmask 64 up ip -6 route add xxxx:xxxx:xxxx:xxxx:xxxx:xxxx dev vmbr0 down ip -6 route del xxxx:xxxx:xxxx:xxxx:xxxx:xxxx dev vmbr0 up ip -6 route add default via xxxx:xxxx:xxxx:xxxx:xxxx:xxxx dev vmbr0 down ip -6 route del default via xxxx:xxxx:xxxx:xxxx:xxxx:xxxx dev vmbr0 

你有两个桥梁( vmbr0vmbr1 ),都有eth0作为成员,所以你基本上有一个第二层域,我怀疑会造成怪异。 你是否试图将两个网卡暴露给虚拟机? 如果是这样,你应该公开一个网卡,并将两个地址附加到虚拟机内部。 主机应该有一个包含eth0网桥。

由于二级子网已经有一个网关,所以主机不需要作为一个。 不要在主机上为辅助子网configuration任何地址或路由。 在guest虚拟机中,将其中一个辅助IP连接到其NIC,并将默认网关configuration为5.xxx.xxx.161。 主机将充当第二层网桥,以允许VM到达网关。

这是通过重新安装guest虚拟机完全解决的。 专用服务器的提供者给了mac地址分配给每个guest,然后通过dhcp为它分配一个ip地址,这就解决了这个问题。