最近、16.04からubuntu 18.04にアップグレードし、ネットプランでip route
を使用していたip rule
および/etc/network/interfaces
コマンドを取得する方法を見つけようとしています。
これらは、以前に/etc/network/interfaces
で実行した、再現しようとしているコマンドです。
Sudo ip rule add table 129 from 192.168.1.160
Sudo ip route add table 129 to 204.8.230.0/24 dev enp0s3
Sudo ip route add table 129 to 192.168.1.0/24 dev enp0s3
Sudo ip route add table 129 default via 192.168.1.1
これは、/etc/netplan/01-netcfg.yaml
のnetplan configでの最初のパスです。
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: yes
routes:
- from: 192.168.1.160
to: 204.8.230.0/24
via: 192.168.1.1
- from: 192.168.1.160
to: 192.168.1.0/24
via: 192.168.1.1
ただし、再起動後、これらのルートはip route
出力に表示されません。これらのルートを維持するにはどうすればよいですか?
私が見つけたいくつかのドキュメントに基づいて、/usr/lib/networkd-dispatcher/routable.d
のスクリプトにこれらのコマンドを入れようとしましたが、どちらも機能していないようです。
EDIT:近づいています。これは新しい設定ですが、問題は、テーブルがip rule
に表示されても、ip route show table 129
が空であることです:
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: yes
routing-policy:
- from: 192.168.1.160
table: 129
routes:
- to: 204.8.230.0/24
via: 192.168.1.1
table: 129
- to: 192.168.1.0/24
via: 192.168.1.1
table: 129
- to: 0.0.0.0/0
via: 192.168.1.1
table: 129
NetPlanバージョン0.36.1を使用しています
私はそれを考え出した。問題は、systemd-networkdがネットワークが起動する前にルートを設定しようとしていたことで、失敗していました。修正はルート上のon-link: True
です:
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
version: 2
renderer: networkd
ethernets:
enp0s3:
dhcp4: yes
routing-policy:
- from: 192.168.1.160
table: 129
routes:
- to: 204.8.230.0/24
via: 192.168.1.1
table: 129
on-link: True
- to: 192.168.1.0/24
via: 192.168.1.1
table: 129
on-link: True
- to: 0.0.0.0/0
via: 192.168.1.1
table: 129
on-link: True