Вопрос или проблема
У меня есть сервер на Ubuntu 18.04 с двумя сетевыми интерфейсами.
Каждый интерфейс подключен к разной сети.
Моя текущая конфигурация выглядит так:
cat /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
dhcp6: no
addresses: [10.3.1.102/24]
gateway4: 10.3.1.20
nameservers:
addresses: [8.8.8.8, 10.3.1.5]
eth1:
dhcp4: yes
dhcp6: no
nameservers:
addresses: [10.127.112.140, 10.126.11.1]
routes:
- to: 10.127.113.0/24
via: 10.127.113.254
metric: 100
- to: 10.127.112.0/24
via: 10.127.113.254
metric: 100
Однако, с этой конфигурацией eth1 не получает IP.
Если я изменю это на:
eth1:
dhcp4: no
dhcp6: no
addresses: [10.127.113.253/24]
nameservers:
addresses: [10.127.112.140, 10.126.11.1]
routes:
- to: 10.127.113.0/24
via: 10.127.113.254
metric: 100
- to: 10.127.112.0/24
via: 10.127.113.254
metric: 100
Тогда я получаю IP и маршрутизацию как ожидается.
Однако, eth1 должно быть в режиме dhcp. Есть идеи, как настроить eth1, чтобы оно было и dhcp, и имело статические маршруты в netplan?
Попробуйте (добавьте “on-link: true”)
eth1:
dhcp4: yes
dhcp6: no
nameservers:
addresses: [10.127.112.140, 10.126.11.1]
routes:
- to: 10.127.113.0/24
via: 10.127.113.254
metric: 100
on-link: true
- to: 10.127.112.0/24
via: 10.127.113.254
metric: 100
on-link: true
Попробуйте использовать эту конфигурацию netplan, если используете статический адрес:
network:
ethernets:
ens18:
dhcp4: false
addresses: [10.0.15.122/24] # замените на ваш ip
gateway4: 10.0.15.1 # замените на ваш шлюз
nameservers:
addresses:
- 10.2.1.2 # замените на ваш
version: 2
sudo netplan generate
sudo netplan apply
Ответ или решение
Конфигурирование сети в Ubuntu 18.04 с использованием Netplan — это важный шаг для обеспечения стабильного и эффективного сетевого подключения на вашем сервере. В данной ситуации, у вас сервер с двумя сетевыми интерфейсами (NIC), и вам необходимо настроить один из интерфейсов под динамическое IP-адресацию (DHCP), а также задать статические маршруты. Давайте рассмотрим, как правильно настроить подобную конфигурацию.
Шаг 1: Базовая настройка Netplan
Ваш текущий файл конфигурации /etc/netplan/01-netcfg.yaml
содержит информацию о сетевых настройках. Для начала убедимся, что конфигурация для eth0
корректна:
network:
version: 2
renderer: networkd
ethernets:
eth0:
dhcp4: no
dhcp6: no
addresses: [10.3.1.102/24]
gateway4: 10.3.1.20
nameservers:
addresses: [8.8.8.8, 10.3.1.5]
Шаг 2: Настройка eth1
для DHCP и статических маршрутов
Чтобы eth1
мог получать IP-адрес через DHCP, но при этом также иметь заданные статические маршруты, необходимо внести изменения в конфигурацию и добавить параметр on-link: true
. Это укажет системе, что маршрут должен находиться на уровне линка, даже если сеть не обнаруживается локально через DHCP. Конфигурация будет выглядеть следующим образом:
network:
version: 2
renderer: networkd
ethernets:
eth1:
dhcp4: yes
dhcp6: no
nameservers:
addresses: [10.127.112.140, 10.126.11.1]
routes:
- to: 10.127.113.0/24
via: 10.127.113.254
metric: 100
on-link: true
- to: 10.127.112.0/24
via: 10.127.113.254
metric: 100
on-link: true
Этот подход позволит eth1
получать IP-адрес автоматически, при этом сохраняя заданные статические маршруты.
Шаг 3: Применение изменений
После обновления конфигурации, необходимо сохранить файл и применить изменения, используя следующие команды:
sudo netplan generate
sudo netplan apply
Эти команды генерируют необходимые системные конфигурации и применяют их для активации новых сетевых настроек.
Заключение
Процесс настройки сети с использованием Netplan — это мощный инструмент, который позволяет гибко управлять сетевыми интерфейсами. Добавление параметра on-link
в маршруты для интерфейса eth1
помогает в ситуациях, когда необходимо совместить динамическую IP-адресацию с конкретными сетевыми маршрутами, которые должны быть доступны независимо от обнаруженных маршрутов через DHCP. Такая настройка обеспечивает стабильность и эффективность работы сервера в сетях с многоуровневыми конфигурациями.