如何使用netplan创建两个独立的路由表?

Ste*_*ski 6 routing netplan 18.04

我有一台 Ubuntu 18.04 主机,在两个子网上有两个网络接口。我想设置对称路由,以便从一个接口接收的流量对称地发送到同一接口。

我知道如何使用 Netplan 进行简单的网络配置,但我对更高级的配置感到困惑。具体来说:

  1. 像我一样添加默认路由的 Netplan 语法是什么ip route add default via 192.168.0.1 dev ens192 tab 1
  2. 如何priority为路线添加标签?

我的服务器有两个IP:

$ ip a|grep "inet "
inet 127.0.0.1/8 scope host lo
inet 192.168.0.10/22 brd 192.168.0.255 scope global ens192
inet 192.168.1.10/24 brd 192.168.1.255 scope global ens224
$
Run Code Online (Sandbox Code Playgroud)

我可以使用以下ip规则来获取我想要的表:

首先,我为每个网络创建一条路由,然后添加一个默认网关。

$ ip route add 192.168.0.0/24 dev ens192 tab 1
$ ip route add 192.168.1.0/24 dev ens224 tab 2
$ ip route add default via 192.168.0.1 dev ens192 tab 1
$ ip route add default via 192.168.1.1 dev ens224 tab 2
Run Code Online (Sandbox Code Playgroud)

然后,我可以创建相应的规则:

$ ip rule add from 192.168.0.10/32 tab 1 priority 100
$ ip rule add from 192.168.1.10/32 tab 2 priority 200
$ ip route flush cache
Run Code Online (Sandbox Code Playgroud)

这得到了我想要的路线:

$ ip route show tab 1
default via 192.168.0.1 dev ens192
$ ip route show tab 2
default via 192.168.1.1 dev ens224
$ ip route
default via 192.168.0.10 dev ens192
Run Code Online (Sandbox Code Playgroud)

以及我想要的规则:

$ ip rule show
0:      from all lookup local
100:    from 192.168.0.10 lookup 1
200:    from 192.168.1.10 lookup 2
32766:  from all lookup main
32767:  from all lookup default
Run Code Online (Sandbox Code Playgroud)

小智 5

    ens2f1:
        addresses:
        - x.x.x.x/x
        routes:
        - to: 0.0.0.0/0
          via: y.y.y.y/y
          table: 200
        routing-policy:
        - from: z.z.z.z/z
          table: 200
          priority:
Run Code Online (Sandbox Code Playgroud)

希望这能回答您的两个问题