Недавно я обновился до ubuntu 18.04 с 16.04 и пытаюсь выяснить, как получить мои команды ip route и ip rule, которые я использовал для ввода /etc/network/interfaces, работающих под netplan.
Эти это команды, которые я пытаюсь воспроизвести, которые я ранее выполнял в /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
Это мой первый проход в конфигурации netplan в /etc/netplan/01-netcfg.yaml:
# 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
Я понял это. Проблема заключалась в том, что 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