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

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

我正在尝试通过专用服务器上的一个物理 NIC 路由多个 IP,以便与 Proxmox KVM VM 一起使用。我有一台专用服务器,当前运行 Debian 4.4.5-8,有 3 个可用的 IP 地址,将显示为 176.xxx.xxx.196(主服务器)、176.xxx.xxx.198(与主服务器位于同一子网)和 5.xxx.xxx.166(不同子网)。我目前正在尝试使用 dedi 路由第三个 IP 地址,以便与我使用 proxmox v2.x 设置的 vps 一起使用,但这样做真的非常困难。绑定其他 IP 地址的虚拟接口按预期工作,排除了外部路由问题。

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

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

我对 /etc/network/interfaces 所做的所有尝试要么不起作用,要么导致网络完全无用。

这是文件的当前状态,其中辅助 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

答案1

这是完全地通过重新安装客户虚拟机来修复。专用服务器的提供商为每个客户机分配了 mac 地址,然后通过 dhcp 为其分配了 ip 地址,这样就解决了问题。

答案2

你有两座桥(vmbr0vmbr1),两个都作为eth0成员,因此您实际上有一个第 2 层域,我怀疑这会导致怪异。您是否试图向 VM 公开两个 NIC?如果是这样,您应该公开一个 NIC 并将两个地址附加到 VM 内部的 NIC。主机应该有一个包含 的桥接器eth0

由于辅助子网已经具有网关,因此主机无需充当网关。不要在主机上为辅助子网配置任何地址或路由。在客户机中,将其中一个辅助 IP 连接到其 NIC,并将默认网关配置为 5.xxx.xxx.161。主机将仅充当第二层桥接器,以允许虚拟机到达网关。

相关内容