为什么在 netplan 中将第二个 IP 添加到第二个 NIC 并启动在该 nic 的 IP 上公开的 docker 容器时我的网络会停止工作?

为什么在 netplan 中将第二个 IP 添加到第二个 NIC 并启动在该 nic 的 IP 上公开的 docker 容器时我的网络会停止工作?

“停止工作”可能有点夸张,但部分内容确实如此,而且我对正在发生的事情了解不够多,无法用更短的措辞作为标题。

基本上,我有

  • 一台带有 2 个网卡的机器运行一个虚拟机和一堆 Docker 容器。NIC#1 有 IP 10.0.30.21,NIC#2 是最近设置和分配的10.0.30.22
    • 一个运行 Home Assistant OS 的虚拟机(IP:10.0.30.61:8123,由 NGINX 提供服务,网址为hass.my_domain.tld
    • 一组 Docker 容器,包括(潜在)感兴趣的内容:
      • NGINX (linuxserver/swag)(使用端口80443
      • deCONZ(使用端口80808443
      • Z-WaveJS2MQTT 服务器(使用端口80913000

所有感兴趣的 Docker 容器都会公开端口10.0.30.21

到目前为止,我只使用了一个网卡,但出于不相关的原因,我想将我的 unifi 控制器移至 docker 容器。由于它使用 IP 上已在使用的一些端口10.0.30.21(例如 deCONZ 使用的端口),我想设置第二个网卡并使用不同的 IP。

因此,我添加了第二个接口到我的/etc/netplan/00-installer-config.yaml

network:
  ethernets:
    eno1:
      dhcp4: true
    eno2:            # <-- These two lines are what I added
      dhcp4: true    # <-- These two lines are what I added
  version: 2
  bridges:
    br0:
      dhcp4: yes
      interfaces:
             - eno1
      parameters:
        stp: true

一开始它似乎工作正常,新的 Mac 出现了,我可以在 dhcp 服务器中分配 IP 和所有内容。

对于 unifi 控制器,我使用了将所有内容绑定到“新” IP 的端口绑定10.0.30.22(来自我的 unifi-controller 部分docker-compose):

    ports:
      - 10.0.30.22:8443:8443
      - 10.0.30.22:3478:3478/udp
      - 10.0.30.22:10001:10001/udp
      - 10.0.30.22:8080:8080
      - 10.0.30.22:1900:1900/udp #optional
      - 10.0.30.22:8843:8843 #optional
      - 10.0.30.22:8880:8880 #optional
      - 10.0.30.22:6789:6789 #optional
      - 10.0.30.22:5514:5514/udp #optional

但是当我启动 unifi-controller docker 容器(linuxserver/unifi-controller)时,发生了一些事情:

  1. Home Assistant VM 无法再访问 deCONZ 或 Z-waveJS2MQTT 服务
    • 错误日志只是说他们无法在其 IP 上使用(10.0.30.21
    • 我仍然可以通过本地 IP:port (10.0.30.21:808010.0.30.21:8091)访问它们的 Web UI,并且可以通过此 Web UI 控制设备(因此它似乎功能齐全)
  2. Home Assistant VM 网页用户界面不再可访问hass.my_domain.tld 尽管
    • Web UI 可在本地 IP 上访问且正常运行 ( 10.0.30.61:8123)
    • NGINX 日志中没有错误或警告
    • Home Assistant 日志中没有错误或警告
    • 可能有错误docker logs deconz,我不确定是否相关。
      • 缺点:Unbind response failed with status 0x88 for 0x84fd27fffe70d3ed ep: 0x01 cluster: 0x2000
  3. 我没有失去 FQDN 访问权限任何其他服务由 NGINX 提供服务,其中包括该机器上的服务以及其他机器上的服务,例如:
    • Nextcloud (本地 IP 10.0.30.67)
    • DokuWiki (本地 IP 10.0.30.21)
    • TrueNAS(本地 IP 10.0.30.27
    • PiHole (本地 IP 10.0.30.43)
    • ETC。

当我关闭unifi-controller时,注意变化,仍然无法访问。当我从 docker-compose 中删除 unifi-controller 部分并完全重启系统时,没变化. 仍然无法访问。

eno2我唯一能恢复的方法是从netplan 文件中删除这些行,然后重新启动,一切都会恢复如前。

我到底做错了什么?

(Ubuntu 服务器 LTS 22.04)

相关内容