Ubuntu 18.04 Azure VM 上的网络规划静态路由问题

Ubuntu 18.04 Azure VM 上的网络规划静态路由问题

我有一个带有一些 Docker 容器的 Azure Ubnuntu VM。

问题:虚拟机不知道我的某个网络\docker 接口的路由与我的 LAN 子网重叠。我的 LAN 是 172.28.0.0\16,其路由应该是 10.3.0.1

Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
0.0.0.0         10.3.0.1        0.0.0.0         UG        0 0          0 eth0
10.3.0.0        0.0.0.0         255.255.255.0   U         0 0          0 eth0
168.63.129.16   10.3.0.1        255.255.255.255 UGH       0 0          0 eth0
169.254.169.254 10.3.0.1        255.255.255.255 UGH       0 0          0 eth0
172.17.0.0      0.0.0.0         255.255.0.0     U         0 0          0 docker0
172.28.0.0      0.0.0.0         255.255.0.0     U         0 0          0 br-828c78b615e2
172.29.0.0      0.0.0.0         255.255.0.0     U         0 0          0 br-adff3a5cad70

我尝试使用 netplan 添加静态路由并应用它 - 但没有效果 - 重新启动后 - VM 只是将 netplan 配置重置为默认值。

Netplan 配置默认:

network:
    ethernets:
        eth0:
            dhcp4: true
            dhcp4-overrides:
                route-metric: 100
            dhcp6: false
            match:
                driver: hv_netvsc
                macaddress: 00:22:48:9a:d1:4e
            set-name: eth0
    version: 2

有人知道我是否以正确的方式处理此事吗?

答案1

当然,看起来你正在尝试使用正确的文件。文档按照https://www.networkinghowtos.com/howto/adding-persistent-static-routes-on-ubuntu-18-04-and-higher-using-netplan/

我建议您的 netplan 配置看起来更像以下内容:

network:
    ethernets:
        eth0:
            dhcp4: true
            dhcp4-overrides:
                route-metric: 100
            dhcp6: false
            match:
                driver: hv_netvsc
                macaddress: 00:22:48:9a:d1:4e
            set-name: eth0
            routes:
                - to: 172.28.0.0/16
                  via: 10.3.0.1
    version: 2

答案2

谢谢你的建议,Jad

看来我确实走错了路。

我能够减轻与我的 docker 配置创建的默认网络的冲突。

原始文件是:docker-compose.yml - 无法更改 - 您必须创建一个新文件:

docker-compose.override.yml

覆盖文件的更改与原始文件合并。

我使用覆盖文件中的以下内容将 172 移出 -> 173,从而将我的 172 本地局域网打开到默认网关:

networks:
  default:
    driver: bridge
    ipam:
      driver: default
      config:
      - subnet: 173.28.0.0/16

然后我还必须使用以下命令删除旧的 docker 网络:

sudo docker 网络 rm“id-of-nw”

可以使用以下组合来检索 ID:

sudo docker 网络 ls

路线

好吧 - 这是我第一次使用 docker,我很高兴我走出了这个兔子洞。希望这能帮助人们节省一些时间

相关内容