Вопрос или проблема
VLAN интерфейса eth0 содержит 2 IP-сети, с машины с IP
10.64.0.101/27 (eth0@машина-1) я использовал соединение с сервером OpenVPN на
10.0.0.41/27 (eth0@машина-2) с диапазоном IP 192.168.0.0/24.
Следующий код в /etc/network/interfaces:
post-up /sbin/route add -net 10.0.0.32/27 dev eth0
post-up /sbin/route add -net 192.168.0.0/24 gw 10.0.0.41
работал нормально. Конечно, на машине-2 с IP 10.0.0.41 также было
post-up /sbin/route add -net 10.64.0.96/27 dev eth0
в файле /e/n/i и включён IP forwarding.
Как перевести это в netplan?
Мой первый вариант был
- to: 10.0.0.32/27
via: 10.64.0.101
on-link: true
- to: 192.168.0.0/24
via: 10.0.0.41
Есть идеи?
С уважением,
Maniac
P.S.: увеличение сетей до /9 не вариант…
P.P.S.: Да, anycasts будут видны в обеих IP-сетях.
Вот пример.
Я попробовал просто добавить комментарий, но он не позволил мне.
network:
version: 2
renderer: networkd
ethernets:
ens3:
addresses:
- 192.168.3.30/24
dhcp4: no
routes:
- to: 192.168.3.0/24
via: 192.168.3.1
table: 101
routing-policy:
- from: 192.168.3.0/24
table: 101
ens5:
addresses:
- 192.168.5.24/24
dhcp4: no
gateway4: 192.168.5.1
routes:
- to: 192.168.5.0/24
via: 192.168.5.1
table: 102
routing-policy:
- from: 192.168.5.0/24
table: 102
Подробнее можно прочитать здесь: https://netplan.io/examples#source-routing
Ответ или решение
Для настройки маршрутизации IP сети к интерфейсу с использованием Netplan на примере описанном в вашем вопросе, необходимо детально проработать конфигурацию файла Netplan, учитывая все нюансы сети и маршрутов, задействованных в вашем случае.
Фон задачи
У вас имеется две машины, machine-1
со статическим IP 10.64.0.101/27
на интерфейсе eth0
и machine-2
с OpenVPN сервером, IP 10.0.0.41/27
. Между этими машинами обеспечивается маршрутизация, а также доступ к дополнительной сети 192.168.0.0/24
через VPN.
Ваши старые настройки в /etc/network/interfaces
выглядели следующим образом:
post-up /sbin/route add -net 10.0.0.32/27 dev eth0
post-up /sbin/route add -net 192.168.0.0/24 gw 10.0.0.41
На machine-2
также была настроена обратная маршрутизация:
post-up /sbin/route add -net 10.64.0.96/27 dev eth0
Эти маршруты должны быть перенесены в конфигурацию Netplan, который работает с YAML-файлами для настройки сетевых соединений.
Пример конфигурации Netplan
Ваша задача заключается в переводе существующих команд маршрутизации в формат Netplan. Рассмотрим пример, как это сделать.
network:
version: 2
ethernets:
eth0:
addresses:
- 10.64.0.101/27
routes:
- to: 10.0.0.32/27
via: 10.64.0.101
on-link: true
- to: 192.168.0.0/24
via: 10.0.0.41
Объяснение конфигурации
-
version: 2
: Это версия конфигурации Netplan, используемая в текущей операционной системе. -
ethernets
блок: Он описывает настройки для сетевых интерфейсов. В вашем случае интерфейсeth0
с адресом10.64.0.101/27
. -
routes
блок:-
to: 10.0.0.32/27
: Определяет сеть назначения маршрута через интерфейсeth0
. -
via: 10.64.0.101
: Указывает на то, что пакет должен оставить интерфейс локально. -
on-link: true
: Это ключевая настройка, которая указывает, что указанный маршрут рассматривается как локально доступный. -
to: 192.168.0.0/24
: Определяет дистанционную сеть для маршрутизации через OpenVPN сервер. -
via: 10.0.0.41
: Настраивает Gateway для выхода в VPN.
-
Завершение
После редактирования конфигурационного файла необходимо применить настройки, выполнив следующую команду:
sudo netplan apply
Это обеспечит актуализацию всех изменений и сетевых маршрутов в системе. Настоятельно рекомендуется проверка конфигурации перед её применением для предотвращения ошибок в сетевой взаимосвязи. Вы также можете использовать команду netplan try
, которая временно применяет сетевые изменения для тестирования и облегчения отладки конфигурации.