Debian

將新網橋添加到網路配置後失去與伺服器的連接

  • December 9, 2019

在 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。

引用自:https://serverfault.com/questions/993458