如何將多個子網應用於具有一個 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
通過重新安裝來賓 vm完全解決了這個問題。專用伺服器的提供者為每個訪客分配了 MAC 地址,然後通過 dhcp 為其分配一個 IP 地址,這解決了問題。
您有兩個橋 (
vmbr0
和vmbr1
),它們都作為eth0
成員,因此您基本上有一個第 2 層域,我懷疑這會引起怪異。您是否嘗試向 VM 公開兩個 NIC?如果是這樣,您應該公開一個 NIC 並將兩個地址附加到 VM 內部的那個。主機應該有一個包含eth0
.由於輔助子網已經有網關,主機不需要充當網關。不要在主機上為輔助子網配置任何地址或路由。在來賓中,將一個輔助 IP 附加到其 NIC,並將預設網關配置為 5.xxx.xxx.161。主機將僅充當第二層橋接器,以允許 VM 到達網關。