无法访问内部网络的主机

无法访问内部网络的主机

我在同一个 Proxmox 节点上运行了 3 个主机,每个主机都有两个网络接口。每个节点上的第一个网络接口位于 10.100.59.0/24 子网上,10.100.59.1 是默认网关,第二个接口位于 10.0.0.0/24 子网上,也是前一个默认网关。

问题在于,在 10.100.59.0/24 子网上,所有三台主机都可以 ping 通并互相看到对方,但在 10.0.0.0/24 子网上,只有三个节点中的两个可以互相看到对方。其他主机无法通过此子网访问第三个节点,但它会在 nmap 扫描此子网时显示出来。

需要注意以下几点:

  1. 是的,三个节点上的防火墙都已禁用。
  2. 是的,我检查过 IP 冲突,没有任何问题。

以下是每个节点的 netplan 配置文件:

节点1:

---
network:
  version: 2
  ethernets:
    ens18:
      dhcp4: no
      dhcp6: no
      addresses:
        - 10.100.59.215/24
      routes:
        - to: default
          via: 10.100.59.1
      nameservers:
        addresses:
          - 195.130.90.35
          - 195.130.90.45
    ens19:
      dhcp4: no
      dhcp6: no
  vlans:
    br-mgmt-vlan:
      id: 10
      link: ens19
    br-storage-vlan:
      id: 20
      link: ens19
    br-vxlan-vlan:
      id: 30
      link: ens19
  bridges:
    br-mgmt:
      dhcp4: no
      dhcp6: no
      interfaces:
        - br-mgmt-vlan
      addresses:
        - 10.0.0.11/24
        - 10.0.0.12/24
      nameservers:
        addresses:
          - 195.130.90.35
          - 195.130.90.45
      parameters:
        forward-delay: 0
        stp: no
    br-vxlan:
      dhcp4: no
      dhcp6: no
      interfaces:
        - br-vxlan-vlan
      addresses:
        - 10.0.0.32/24
      nameservers:
        addresses:
          - 195.130.90.35
          - 195.130.90.45
      parameters:
        forward-delay: 0
        stp: no
    br-storage:
      interfaces:
        - br-storage-vlan
      parameters:
        forward-delay: 0
        stp: no
    br-vlan:
      interfaces:
        - ens19
      parameters:
        forward-delay: 0
        stp: no

节点2:

---
network:
  version: 2
  ethernets:
    ens18:
      dhcp4: no
      dhcp6: no
      addresses:
        - 10.100.59.216/24
      routes:
        - to: default
          via: 10.100.59.1
      nameservers:
        addresses:
          - 195.130.90.35
          - 195.130.90.45
    ens19:
      dhcp4: no
      dhcp6: no
  vlans:
    br-mgmt-vlan:
      id: 10
      link: ens19
    br-storage-vlan:
      id: 20
      link: ens19
    br-vxlan-vlan:
      id: 30
      link: ens19
  bridges:
    br-mgmt:
      dhcp4: no
      dhcp6: no
      addresses:
        - 10.0.0.13/24
      nameservers:
        addresses:
          - 195.130.90.35
          - 195.130.90.45
      interfaces:
        - br-mgmt-vlan
      parameters:
        forward-delay: 0
        stp: no
    br-storage:
      dhcp4: no
      dhcp6: no
      addresses:
        - 10.0.0.23/24
      nameservers:
        addresses:
          - 195.130.90.35
          - 195.130.90.45
      interfaces:
        - br-storage-vlan
      parameters:
        forward-delay: 0
        stp: no
    br-vxlan:
      dhcp4: no
      dhcp6: no
      addresses:
        - 10.0.0.33/24
      nameservers:
        addresses:
          - 195.130.90.35
          - 195.130.90.45
      interfaces:
        - br-vxlan-vlan
      parameters:
        forward-delay: 0
        stp: no
    br-vlan:
      interfaces:
        - ens19
      parameters:
        forward-delay: 0
        stp: no

节点 3:

---
network:
  version: 2
  ethernets:
    ens18:
      dhcp4: no
      dhcp6: no
      addresses:
        - 10.100.59.217/24
      routes:
        - to: default
          via: 10.100.59.1
      nameservers:
        addresses:
          - 195.130.90.35
          - 195.130.90.45
    ens19:
      dhcp4: no
      dhcp6: no
  vlans:
    br-mgmt-vlan:
      id: 10
      link: ens19
    br-storage-vlan:
      id: 20
      link: ens19
    br-vxlan-vlan:
      id: 30
      link: ens19
  bridges:
    br-mgmt:
      interfaces:
        - br-mgmt-vlan
      parameters:
        forward-delay: 0
        stp: no
      dhcp4: no
      dhcp6: no
      addresses:
        - 10.0.0.14/24
      nameservers:
        addresses:
          - 195.130.90.35
          - 195.130.90.45
    br-storage:
      interfaces:
        - br-storage-vlan
      parameters:
        forward-delay: 0
        stp: no
      dhcp4: no
      dhcp6: no
      addresses:
        - 10.0.0.24/24
      nameservers:
        addresses:
          - 195.130.90.35
          - 195.130.90.45
    br-vlan:
     interfaces:
        - ens19
     parameters:
       forward-delay: 0
       stp: no
    br-vxlan:
      interfaces:
        - br-vxlan-vlan
      parameters:
        forward-delay: 0
        stp: no

节点 1 和 2 可以通过任一网络接口成功通信,但节点 3 只能与 10.100.59.0/24 子网上的另外两个节点通信。

答案1

你有三个使用相同子网号的独立子网。“mgmt”VLAN 和“storage”VLAN(仔细观察,甚至某些主机上的“vxlan”VLAN)都配置了属于同一 10.0.0.0/24 的地址,虽然它们代表三个独立的广播域。

然而,子网并不像你想象的那样隔离,因为所有三个br-*接口仍然在同一台机器上,在同一网络命名空间中,在同一个 VRF 中。由于您有多个具有相同前缀的接口,因此有三个自动“10.0.0.0/24”子网路由,因此只有其中一个将用于全部/24 中的地址(操作系统不会尝试从所有三个地址中“猜测”),并且对于哪一个地址实际上具有优先级,通常是碰运气的。

现在,您的检查表明,在两台主机上,10.0.0.0/24 dev br-vxlan路由优先,而第三台主机通过选择路由dev br-mgmt。(重启后可能会有所不同。)主机可以接收来自其他主机的入站数据包,但由于默认启用了“rp_filter”,因此很可能丢弃它们;如果连接不对称(例如,并非所有主机都是“存储”VLAN 的一部分),则响应将完全错误。

简而言之,不要“为了一致性”而使用相同的子网号。如果接口代表不同的广播域,则它们也需要不同的子网号。


在大多数情况下,唯一合理的例外是默认的 IPv6 fe80::/64,它被认为是“链接范围”,并且在 Linux 上需要将出站接口明确指定为地址的一部分(尽管在 Windows 上,内核尝试通过发送 NDP 探测来猜测接口)。

相关内容