Вопрос или проблема
У меня есть требование, и это работало (до 2020 года) без проблем. Поскольку мои установки устарели, и мне не хотелось их на самом деле ОБНОВЛЯТЬ, я решил избавиться от всего и начать с новых установок, используя Ubuntu 23.04 для серверов и 24.04 для моего настольного ПК.
Я создаю это с помощью настройки VirtualBox и имею две сети только для хоста: 192.168.110.x и 192.168.120.x. Все серверные установки будут в одной из них: 110 или 120.
У настольного ПК 3 сетевых интерфейса:
enp0s3
=NAT (10.0.2.15)enp0s8
=192.168.110.3enp0s9
=192.168.120.3.
Я настроил пересылку IP на настольном ПК для маршрутизации 110 и 120 через enp0s3
с использованием IP таблиц.
Все это работало, когда gateway
было действительным объявлением в netplan. Однако теперь настройка другая, я смотрел примеры netplan, представленные в другом вопросе, и не могу найти ничего, что могло бы соответствовать МОИМ потребностям. Мне немного сложно разобраться в объявлениях маршрутизации для каждой сети.
К слову, вместо того чтобы дважды объявлять серверы имен, могу ли я как-то указать это один раз для всех Ethernet?
1 # Пусть NetworkManager управляет всеми устройствами в этой системе
2 сеть:
3 версия: 2
4 рендерер: NetworkManager
5 Ethernet:
6 enp0s8: #Отредактируйте эту строку в соответствии с именем вашего сетевого интерфейса.
7 dhcp4: нет
8 адреса:
9 - 192.168.110.3/24
10 маршруты:
11 - to: default
12 via: 192.168.110.1
13 серверы имен:
14 адреса:
15 - 8.8.8.8
16 - 8.8.4.4
17 enp0s9: #Отредактируйте эту строку в соответствии с именем вашего сетевого интерфейса.
18 dhcp4: нет
19 адреса:
20 - 192.168.120.3/24
21 маршруты:
22 - to: default
23 via: 192.168.120.1
24 серверы имен:
25 адреса:
26 - 8.8.8.8
27 - 8.8.4.4
28
Ошибка, которую я получаю, следующая:
Проблема возникла при проверке согласованности маршрута по умолчанию. Пожалуйста,
настройте несколько таблиц маршрутизации и используйтеrouting-policy
вместо этого.Ошибка: Конфликтующие объявления маршрута по умолчанию для IPv4 (таблица: main,
метрика: по умолчанию), впервые объявлено в enp0s8, но также и в enp0s9
Убедитесь, что существует только один маршрут в качестве маршрута по умолчанию.
Ниже приведена работающая конфигурация:
Ответ или решение
Настройка нескольких сетей и маршрутизации с использованием Netplan на Ubuntu
С установкой новых версий Ubuntu произошли изменения в конфигурации сети с использованием Netplan, которые могут вызвать сложности. Ваша ситуация с маршрутизацией в среде с несколькими сетевыми картами (NICs) на Ubuntu 23.04 и 24.04 разумна, поэтому в этом руководстве мы рассмотрим, как правильно настроить сети и маршрутизацию.
Шаги по настройке
-
Понять структуру сети: У вас есть два интерфейса, которые вы собираетесь настроить с статическими IP-адресами, каждый из которых должен маршрутизироваться через NAT. Вы указали, что используете IP-адреса 192.168.110.x и 192.168.120.x для различных VLAN.
-
Настройка файла конфигурации Netplan:
Вам нужно создать файл конфигурации в каталоге/etc/netplan
. Обычно это файл с названием01-netcfg.yaml
или подобным.sudo nano /etc/netplan/01-netcfg.yaml
-
Конфигурация сетевых интерфейсов:
Давайте создадим конфигурацию для каждого интерфейса. Нельзя устанавливать два маршрута по умолчанию, поэтому нам нужно отдельно определить для каждого интерфейса детали маршрутизации, применяя политику маршрутизации для их различия.Пример конфигурации может выглядеть следующим образом:
network: version: 2 renderer: NetworkManager ethernets: enp0s8: dhcp4: no addresses: - 192.168.110.3/24 routes: - to: 0.0.0.0/0 via: 192.168.110.1 metric: 100 enp0s9: dhcp4: no addresses: - 192.168.120.3/24 routes: - to: 0.0.0.0/0 via: 192.168.120.1 metric: 200 # Общие настройки имен серверов nameservers: addresses: - 8.8.8.8 - 8.8.4.4
В этом примере мы используем
metric
для определения приоритета маршрутов. Более низкие значения имеют более высокий приоритет. Таким образом, если вы попытаетесь маршрутизировать через оба интерфейса, основной будет интерфейсenp0s8
. -
Применение конфигурации:
После того как вы сохранили настройки в файле, примените их с помощью команды:sudo netplan apply
-
Проверка конфигурации:
Чтобы удостовериться, что интерфейсы и маршруты работают корректно, вы можете использовать следующие команды:ip a # Проверка конфигурации IP ip route # Проверка маршрутов
-
Настройка IP-пересылки:
Не забудьте настроить пересылку IP на вашем рабочем столе для того, чтобы обеспечить маршрутизацию между сетями. Для этого выполните:sudo sysctl -w net.ipv4.ip_forward=1
Чтобы сделать это изменение постоянным, добавьте или измените строку в файле
/etc/sysctl.conf
:net.ipv4.ip_forward = 1
Заключение
Эти шаги помогут вам настроить несколько сетевых интерфейсов и маршрутизацию с использованием нового Netplan в Ubuntu, совместимом с вашим конфигурационным требованием. Не бойтесь тестировать соединения и корректировать настройки маршрутизации по мере необходимости, чтобы добиться оптимальной работы вашей сети.