將新網橋添加到網路配置後失去與伺服器的連接
在 Proxmox 伺服器(Debian)中,我更改了我的網路配置:
source /etc/network/interfaces.d/* auto lo iface lo inet loopback auto enp0s31f6 iface enp0s31f6 inet static address 88.99.69.241 netmask 255.255.255.192 gateway 88.99.69.193 up route add -net 88.99.69.192 netmask 255.255.255.192 gw 88.99.69.193 dev enp0s31f6 post-up echo 1 > /proc/sys/net/ipv4/conf/enp0s31f6/proxy_arp # route 88.99.69.192/26 via 88.99.69.193 auto vmbr1 iface vmbr1 inet static address 10.3.5.1 netmask 255.255.255.0 bridge-ports none bridge-stp off bridge-fd 0
對此:
source /etc/network/interfaces.d/* auto lo iface lo inet loopback auto enp0s31f6 iface enp0s31f6 inet static address 66.xx.xx.241 netmask 255.255.255.192 gateway 66.xx.xx.193 up route add -net 66.xx.xx.192 netmask 255.255.255.192 gw 66.xx.xx.193 dev enp0s31f6 post-up echo 1 > /proc/sys/net/ipv4/conf/enp0s31f6/proxy_arp # route 66.xx.xx.192/26 via 66.xx.xx.193 auto vmbr0 iface vmbr0 inet static address 66.xx.xx.241 netmask 255.255.255.255 pointopoint 66.xx.xx.193 gateway 66.xx.xx.193 bridge_ports enp0s31f6 bridge_stp off bridge_fd 1 bridge_hello 2 bridge_maxage 12 auto vmbr1 iface vmbr1 inet static address 10.3.5.1 netmask 255.255.255.0 bridge-ports none bridge-stp off bridge-fd 0
我的伺服器在 Hetzner 上,我想將我的附加 IP 橋接到我的一個虛擬機
重新啟動後我無法 ping 66.xx.xx.241,有人能解釋一下為什麼我無法再連接了嗎?在橋接網路中,gw 應該在 vmbr0? 中定義。
我根據hetzner的本教程更改了網路配置:
您混淆了主界面和橋接界面。使用橋接介面時,這個介面應該得到IP地址,而主介面被橋接,這意味著它也不能有這個地址。
所以你有一個名為
enp0s31f6
. 此介面已橋接到您的網橋中,因此它不是直接配置的,而是在網橋配置中:關鍵字manual
用於此目的:auto enp0s31f6 iface enp0s31f6 inet manual
然後,在您的網橋設置上:
auto vmbr0 iface vmbr0 inet static address 66.xx.xx.241 netmask 255.255.255.255 pointopoint 66.xx.xx.193 gateway 66.xx.xx.193 bridge_ports enp0s31f6 bridge_stp off bridge_fd 1 bridge_hello 2 bridge_maxage 12
您不能有兩個介面共享相同的 IP 地址。
其次,您
route
的聲明是無效的,因為它創建了一個根據地址和網路遮罩配置已經存在的路由。實際上,網路 66.xx.xx.192/26 是直接連接的(第 2 層、乙太網和 ARP 解析),不需要任何路由(第 3 層)額外配置。關於路由,因為數據包在現實世界中被您的
enp0s31f6
介面攔截,但被傳輸到您的vmbr0
,您需要將以下行寫入您的/etc/sysctl.conf
文件:net.ipv4.ip_forward=1
您將需要啟動命令
sysctl -p
以強制直接使用此新行(無需等待下一次重新啟動)。我不太確定您需要啟動 arp 代理(行
post-up echo 1 > /proc/sys/net/ipv4/conf/enp0s31f6/proxy_arp
)。基本上,您正在做的是一個 ARP 代理;但是它可能由該pointopoint
行隱式實現。讓我們知道它是否有助於解決您的問題;
編輯仍然可以有橋接模式。您像往常一樣配置外部介面和一個 1918 範圍內的 IP 地址的網橋。然後 ip_forward=1。