我有一个带有一些 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,我很高兴我走出了这个兔子洞。希望这能帮助人们节省一些时间