在网络配置中添加新网桥后与服务器失去连接

在网络配置中添加新网桥后与服务器失去连接

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

答案1

您混淆了主接口和桥接接口。使用桥接接口时,此接口应获取 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行隐式实现。

让我们知道它是否有助于解决您的问题;

编辑 仍然可以使用桥接模式。您可以像平常一样配置外部接口,并配置一个 IP 地址在 1918 范围内的桥接器。然后 ip_forward=1。

答案2

是的,这很简单,在很多地方都有涉及:桥接接口成员不应该有 IP,但桥接本身应该有。

相关内容