Ubuntu 18.04 netplan静态路由

在new netplan config中需要有关静态路由的帮助。 拥有2个网络接口, 以太网和wlan的 ubuntu服务器18.04。 在/etc/netplan/50-cloud-init.yaml中成功进行基本配置后 ,我有两个网络。 但是enp3s0是内联网, wlp2s0是wifi路由器。 我不能通过wifi上网。 在配置/重新配置Yaml文件几天后,我无法使其工作。

只删除默认网关/ sbin / route del default gw 1​​0.185.0.1有效,但没有路由到内网。 路线-n列表

如何添加这条路线我不知道……

network: version: 2 renderer: networkd ethernets: enp3s0: addresses: [] dhcp4: true gateway4: 10.185.0.1 nameservers: addresses: [10.185.xx, yyyy] routes: - to: 10.185.0.0/0 via: 10.185.0.1 metric: 100 table: 101 routing-policy: - from: 10.185.0.0/24 table: 101 wifis: wlp2s0: addresses: [] dhcp4: true optional: true gateway4: 192.168.8.1 access-points: "Wifi": password: "password" nameservers: addresses: [8.8.8.8,8.8.4.4] routes: - to: 0.0.0.0/0 via: 192.168.8.1 metric: 90 table: 91 routing-policy: - from: 192.168.8.0/24 table: 91 

UPD:覆盖config /etc/systemd/network/ 。 使用UseRoutes=false导致无限网络搜索启动,设置RouteMetric=700效果更好,启动后通过wifi上网! 但是通过10.185.0.1添加新的路由如: 10.180.0.0/16导致无效,不会出现在路由内核路由表中。
我仍然误解为什么tracerout 172.16.185.194通过192.168.8.1。 我读了关于ip4表,但是- to: 172.16.0.0/12/16不起作用。

一般来说,你想要的是:

  • 在进入Internet的接口上设置单个默认网关(使用gateway4 )。 如果您在两者上设置默认网关,那么一半的数据包将被路由到您的Intranet,并且无法达到他们的设计。

  • 如果您的Intranet有多个子网,则需要静态路由通过连接到Intranet的接口访问这些子网。 (一个例子可能是将任何RFC1918子网路由到该接口,这可能是一个好主意。)

现在,在您的具体示例中,您没有完全描述您的Intranet,但我们假设您的Intranet由10.185.xy网络组成,换句话说,10.185.0.0 / 16

让我们假设您的enp3s0接口允许您访问Intranet将在10.185.0.z子网中接收IP,换句话说,10.185.0.0 / 24子网,并且该子网中的网关是10.185.0.1。

因此,您需要一条静态路由才能到达10.185的剩余部分。 x .y子网,其中x不为0。

您可以使用下面的配置进行设置:

 network: version: 2 renderer: networkd ethernets: enp3s0: addresses: [] dhcp4: true nameservers: addresses: [10.185.xx, yyyy] routes: - to: 10.185.0.0/16 via: 10.185.0.1 wifis: wlp2s0: addresses: [] dhcp4: true optional: true gateway4: 192.168.8.1 access-points: "Wifi": password: "password" nameservers: addresses: [8.8.8.8,8.8.4.4] 

在此编辑的配置中,请注意:

  • enp3s0配置中没有gateway4,因为您不希望流量默认转到该接口,只有当流量通过静态路由设置到您的Intranet时。

  • 相反,wlp2s0不需要任何静态路由,因为它有一个默认网关,这就足够了。

  • 不需要路由表和路由策略,您只需要设置静态路由(或几条静态路由)来覆盖Intranet中的内部地址,并通过该网络中的网关IP路由它们将您路由到您未直接连接的其他子网。

请注意,此设置实际上取决于内部网络中的DHCP服务器为您配置的某些内容,例如您的接口位于10.185中。 0/24网络和10.185.0.1是您可以在该接口中使用的网关…出于这个原因,也许更好的设置是让您的Intranet中的DHCP服务器推送静态路由(而不是在netplan中配置它们) 。)那样,如果Intranet被重新配置,也许是为了改变网关的IP,或者可能扩展到包含其他RFC1819私有范围,只需要重新配置DHCP服务器而不是其他所有内容……

但是,如果DHCP服务器不受您的控制,那么这种设置可能是可以接受的,假设内部网络没有经常重新配置,以便网关IP会发生变化。 您可能需要考虑将静态路由添加到所有RFC1918范围,因为这些路由在Internet中无效,因此它们可能仅在Intranet中有效:

 routes: - to: 10.0.0.0/8 via: 10.185.0.1 - to: 172.16.0.0/12 via: 10.185.0.1 - to: 192.168.0.0/16 via: 10.185.0.1 

我希望你觉得这有用!