我正在将旧的 ubuntu 安装迁移到 18 版本,但在使用不同的网络时似乎存在一些静态路由问题。
首先,我尝试使用 NetPlan。我配置了两个网卡,每个网卡上都有不同的网络,但我不知道这是内核问题(可能缺少某些模块)还是 ubuntu 18 的问题(对此表示怀疑)。
症状是只有默认路由有效。我可以添加具有不同网络和静态路由和网关的多个 NIC,但只有默认路由有效。
这是我的 NetPlan 配置文件:
network:
version: 2
renderer: networkd
ethernets:
ens32:
addresses:
- 177.185.x.66/29
- 177.185.x.67/29
- 177.185.x.68/29
- 177.185.x.69/29
- 177.185.x.70/29
gateway4: 177.185.x.65
nameservers:
addresses:
- 8.8.8.8
search:
- mydomain.net
routes:
- to: 0.0.0.0/0
via: 177.185.x.65
optional: true
ens34:
addresses:
- 168.96.x.2/24
routes:
- to: 168.96.x.0/24
via: 168.96.x.1
NetPlan 运行几乎正常:应用新配置时没有问题。路由表看起来正常:
default via 177.185.x.65 dev ens32 proto static
168.96.x.0/24 via 168.96.x.1 dev ens34
168.96.x.0/24 dev ens34 proto kernel scope link src 168.96.x.10
177.185.x.64/29 dev ens32 proto kernel scope link src 177.185.x.66
但我只能 ping 177.185.x.64/29 网络。另一个网络没有响应。
当我将默认路由更改为辅助网络(168.96.x.0/24)时,另一个网络停止响应。
我首先认为它可能与 IP 路由内核模块有关,但我在 4.15 版本中找不到来自旧内核的相同选项。
任何帮助将非常感激。
提前致谢。
BR,拉斐尔
答案1
首先,ifupdown 包已弃用,不再可用。所以你最好避免使用它。
第二,你显然没有理解我之前写给你的内容我的帖子:路由表的使用。
如上所述这里,任何给定的操作系统只有一个可能的网关。路由器或任何其他设备也一样。如果您想要多个网关,那么您需要一个重复的系统,因为网络上传输的任何给定网络包的元数据都不能提及多个网关。这就是为什么我们需要不同的路由表。而且我在您的文件中没有看到任何一行与创建另一个路由表有关的内容。这就是为什么您没有在第二个接口上收到任何到达数据包的确认......就这么简单。包已经到达,只是没有被确认,因为它们无法被确认。
如果您查看我之前链接的解决方案,您会清楚地看到表格,因此系统知道要创建什么以及如何创建。就这么简单。坦率地说,我不明白您为什么反对它……
routes:
- to: 0.0.0.0/0
via: 192.168.3.1
metric: 100
table: 101
这是路由策略+附加到该策略的特定表的创建。
routing-policy:
- from: 192.168.3.0/24
table: 101
这就是规则的创建,指定需要在该表中注册所有传入数据包和发送数据包。
另外,我强烈建议您使用静态地址向量/表来代替列表。所以更多类似的东西[.../..,.../..,.../..]
。再次,就像我的例子一样。