我设置了一个 OpenVPN 网关,可以访问大量 IoT 设备。每个设备都有一个唯一的证书,连接后,我从证书中获取“通用名称”以创建本地 DNS 名称,并通过 dnsmasq 发布该名称。一段时间以来,它看起来很棒。
默认通过 10.6.64.1 dev ens5 proto dhcp src 10.6.64.15 metric 100
10.6.0.0/18 dev tun0 proto 内核范围链接 src 10.6.0.1
10.6.64.0/24 dev ens5 proto 内核范围链接 src 10.6.64.15 metric 100
10.6.64.1 dev ens5 proto dhcp 范围链接 src 10.6.64.15 metric 100
(10.6.0.0/18 和 10.6.64.0/24 看起来似乎重叠,但实际上并不重叠。我想改变这些,但是,唉,“原因”啊。无论如何......)
但是过了一段时间后,会创建一个 IP 路由,专门将 VPN 客户端 IP 发送到默认 eth。
默认通过 10.6.64.1 dev ens5 proto dhcp src 10.6.64.15 metric 100
10.6.0.0/18 dev tun0 proto 内核范围链接 src 10.6.0.1
10.6.0.2 通过 10.6.64.1 dev ens5 proto dhcp src 10.6.64.15 度量 100
10.6.64.0/24 dev ens5 proto 内核范围链接源 10.6.64.15 度量 100
10.6.64.1 dev ens5 proto dhcp 范围链接源 10.6.64.15 度量 100
“proto dhcp” 让我相信这是 dhclient 做的。如果我从 DNS 中删除连接的 VPN 客户端的名称,则不会发生这种情况。我的结论是,dhclient 正在浏览我的 DNS 提供商 (dnsmasq),找到这些名称,并将其 IP 路由到 ens5,因为否则它们将无法到达默认网关。
我该如何预防这种情况?谢谢您的帮助。
答案1
我已解决了我的问题。
事实证明,我们的主机在云提供商中配置有误。它发送 DHCP 更新,声称 10.6.0.2 是 DNS 提供商。它应该是 10.6.64.2,但这并不重要,因为主机配置为使用 8.8.8.8(Google 公共 DNS)。