Вопрос или проблема
У меня проблема. Есть сервер. На нем установлены две сетевые карты.
Логически, одна сетевая карта (enp4s0) для Интернета.
Вторая сетевая карта (enp2s5) для пользователей сети, чтобы получить доступ к серверу (IP сервера: 192.168.1.5).
Проблема в том, что моя конфигурация работает только для одной сетевой карты.
Когда я меняю метрики, работает только доступ из сети или доступ к серверу из Интернета. Мне нужно, чтобы все работало параллельно.
Подскажите, в чем моя ошибка?
Согласно приведенной ниже конфигурации, я могу получить доступ к серверу как из Интернета, так и из локальной сети, но пользователи не видят его (так как метрики для enp4s0 ниже, чем для enp2s5)
Netplan
network:
ethernets:
enp4s0:
dhcp4: no
addresses: [192.168.0.222/24]
nameservers:
addresses: [1.1.1.1, 2.2.2.2]
routes:
- to: 0.0.0.0/0
via: 192.168.0.1
metric: 1
enp2s5:
dhcp4: no
addresses: [192.168.1.5/24]
routes:
- to: 0.0.0.0/0
via: 192.168.1.1
metric: 2
- to: 0.0.0.0/0
via: 192.168.2.1
metric: 2
version: 2
renderer: networkd
Почему вы настраиваете маршруты по умолчанию (to: 0.0.0.0/0) на обеих картах? Это не будет работать корректно, когда обе сетевые карты активны и происходит попытка соединения из сети, отличной от локальной. Скорее всего, вы будете использовать маршрут по умолчанию только на сетевой карте, подключенной к Интернету (enp4s0), и вам придется добавить явные маршруты (192.168.1.0 и 192.168.2.0) к IP-адресам локальной сетевой карты (enp2s5)
Ответ или решение
Решение проблемы с конфигурацией сетевых интерфейсов в Ubuntu 20.04 с использованием Netplan
На вашем сервере установлены два сетевых адаптера, и для успешной работы обоих необходимо правильное их настроение через Netplan. Давайте рассмотрим вашу текущую конфигурацию и выясним, как её улучшить, чтобы обеспечить одновременный доступ к серверу как для пользователей из локальной сети, так и через интернет.
1. Анализ текущей конфигурации
Исходная конфигурация, приведённая ниже, имеет несколько проблем, которые необходимо решить:
network:
ethernets:
enp4s0:
dhcp4: no
addresses: [192.168.0.222/24]
nameservers:
addresses: [1.1.1.1, 2.2.2.2]
routes:
- to: 0.0.0.0/0
via: 192.168.0.1
metric: 1
enp2s5:
dhcp4: no
addresses: [192.168.1.5/24]
routes:
- to: 0.0.0.0/0
via: 192.168.1.1
metric: 2
- to: 0.0.0.0/0
via: 192.168.2.1
metric: 2
version: 2
renderer: networkd
2. Проблемы в конфигурации
-
Конфликтующие маршруты по умолчанию: У вас есть две конфигурации маршрута по умолчанию (0.0.0.0/0) для обоих интерфейсов, что делает непонятным, в какую сторону отправлять пакеты. Обычно нужно иметь один маршрут по умолчанию и добавить специфические маршруты для локальной сети.
-
Метрики маршрутов: Метрики используются для определения приоритетов маршрутов. Установленные вами значения создают неразбериху, из-за чего пакеты могут уходить не в ту сторону, что и вызывает проблемы с доступом.
3. Рекомендованное решение
Чтобы обеспечить правильное распределение трафика, необходимо внести изменения в конфигурацию Netplan. Ниже приведённая конфигурация решает обозначенные проблемы:
network:
ethernets:
enp4s0:
dhcp4: no
addresses: [192.168.0.222/24]
nameservers:
addresses: [1.1.1.1, 2.2.2.2]
routes:
- to: 0.0.0.0/0
via: 192.168.0.1
metric: 100
enp2s5:
dhcp4: no
addresses: [192.168.1.5/24]
version: 2
renderer: networkd
4. Пояснение изменений
-
Удалены маршруты по умолчанию для enp2s5: Теперь только
enp4s0
имеет маршрут по умолчанию. Это значит, что все пакеты, которые выходят в интернет, будут использовать этот интерфейс. -
Установленная метрика по умолчанию: Увеличена метрика для интерфейса
enp4s0
, чтобы избежать конфликта. Таким образом, активный маршрут будет направлен через интерфейс, подключённый к интернету. -
Подключение к локальной сети: Пакеты, направленные на локальные IP (в данном случае 192.168.1.0/24), автоматически будут направляться через enp2s5 без необходимости добавления дополнительных маршрутов, так как они находятся в том же подсети.
5. Проверка и применение конфигурации
Сохраните файл конфигурации и примените изменения:
sudo netplan apply
После применения изменений вы можете использовать команду ip route
для проверки ваших маршрутов и убедиться, что всё настроено верно. Убедитесь, что пользователи из локальной сети могут получить доступ к серверу по адресу 192.168.1.5, а также проверить доступ к интернет-ресурсам.
Заключение
Следуя вышеизложенным рекомендациям, вы сможете настроить сервер так, чтобы оба сетевых интерфейса функционировали эффективно и без конфликтов. Важно помнить о том, что правильная настройка маршрутов и метрик является ключевым моментом для обеспечения стабильности и доступности сетевых ресурсов. Если у вас возникнут дополнительные вопросы или сложности, всегда можно обратиться к документации или сообществу для получения дальнейшей помощи.