libvirt: Добавить статический маршрут в изолированную сеть

Вопрос или проблема

Я работаю с Ubuntu 24.04 Desktop, и я создал виртуальную машину, подключенную к стандартному мосту libvirt-NAT и к второй изолированной сети.

Сетевой мост – это virbr0: 192.168.122.0/24, у хоста 192.168.122.1, а у виртуальной машины статический 192.168.122.128. Изолированная сеть – это 10.95.212.0/24.

Я хочу иметь возможность пинговать/ssh на хосты в изолированной сети, поэтому я настроил статический маршрут (route add ...) на хосте. Это работает, но не сохраняется при перезагрузке. Я пробовал nmtui, но маршрут пропадает при перезагрузке.

Я думал о virsh net-edit default, но не нашел документации о том, как это сделать.

Где мне нужно определить маршрут, чтобы он сохранялся после перезагрузки?

Ответ или решение

Чтобы настроить статический маршрут в изолированной сети, работающей через libvirt на Ubuntu 24.04 Desktop, необходимо обеспечить, чтобы ваш маршрут сохранялся даже после перезагрузки системы. Давайте разберем необходимые шаги.

1. Предварительная настройка

Убедитесь, что вы правильно настроили ваши сети. У вас уже есть NAT-сеть virbr0 с адресами в диапазоне 192.168.122.0/24 и изолированная сеть 10.95.212.0/24. Ваш хост настроен на 192.168.122.1, а виртуальная машина (ВМ) — на 192.168.122.128. Теперь нам нужно правильно добавить статический маршрут к изолированной сети.

2. Настройка маршрута

Чтобы сделать так, чтобы ваш статический маршрут оставался активным после перезагрузки, вам необходимо внести его в конфигурационные файлы сети вашей системы. Выполните следующие действия:

2.1. Использование netplan

Ubuntu 24.04 использует netplan для управления сетевыми настройками. Вам потребуется отредактировать конфигурационный файл netplan, чтобы добавить ваш статический маршрут.

  1. Откройте терминал и выполните следующий команду, чтобы найти ваш файл конфигурации netplan:

    ls /etc/netplan/

    Вы должны увидеть файл с именем, например, 01-netcfg.yaml или подобным.

  2. Откройте этот файл для редактирования (может потребоваться sudo):

    sudo nano /etc/netplan/01-netcfg.yaml
  3. Добавьте настройки для маршрута в соответствующий блок ethernets вашего сетевого интерфейса. Пример структуры:

    network:
     version: 2
     ethernets:
       <ваш_интерфейс>:                   # Замените <ваш_интерфейс> на ваш сетевой интерфейс, например, ens33
         addresses:
           - 192.168.122.1/24
         routes:
           - to: 10.95.212.0/24         # Целевая сеть
             via: 192.168.122.1         # Шлюз (это может быть ваш интерфейс NAT, если ВМ доступна только через NAT)
  4. Сохраните изменения и закройте редактор (Ctrl + O, затем Enter, затем Ctrl + X).

  5. Примените изменения:

    sudo netplan apply

3. Проверка маршрута

После применения изменений, проверьте, правильно ли добавился маршрут:

ip route

4. Использование virsh для настройки сетей

Если вы хотите добавить статический маршрут непосредственно в конфигурацию сети libvirt, вам может понадобиться отредактировать конфигурацию сети напрямую через virsh. Однако, важно отметить, что virsh net-edit в основном используется для изменения настроек сети, таких как подсеть или адресация DHCP.

Для изолированных настроек, такой подход будет ограничен, так как он не позволяет непосредственно управлять статическими маршрутами на хосте. Поэтому более целесообразно использовать netplan для управления маршрутизацией.

Заключение

Следуя описанным выше шагам, вы сможете настроить статический маршрут для вашей изолированной сети в Ubuntu 24.04, который будет сохранятся даже после перезагрузки. Это позволит вам управлять доступом к виртуальным машинам и обеспечить стабильное сетевое взаимодействие без необходимости повторно настраивать маршруты вручную после каждого перезапуска системы.

Оцените материал
Добавить комментарий

Капча загружается...