LINUX.ORG.RU
ФорумAdmin

Проблема с интернетом в kvm

 , , , ,


0

1

Задача: Подключить виртуальную машину kvm напрямую к роутеру, оставляя хост без интернета.

Мои предпринятые действия:

  1. Определил имя своего физического интерфейса: ip link show

  2. Проверил существует ли bridge интерфейс: ip link show br0

  3. Убедился что его нет. Начал создавать его: sudo brctl addbr br0

  4. Назначил айпи адрес и маску подсети бридж интерфейсу: sudo ip addr add 192.168.5.200/24 dev br0 (айпи адрес роутера 192.168.5.1)

  5. Поднял бридж: sudo ip link set dev br0 up

  6. Добавил физический интерфейс к бриджу: sudo brctl addif br0 eno1

6.1 Отключил физ интерфейс: sudo ip link set dev eno1 down

6.2 Добавил физический интерфейс к бридж интерфейсу: sudo brctl addif br0 eno1

6.3 Включил физический интерфейс: sudo ip link set dev eno1 up

  1. Начал настраивать маршрутизацию

7.1 Добавил шлюз по умолчанию: sudo ip route add default via 192.168.5.1 dev br0

7.2 Проверил маршрутизацию: ip route show

Убедился что шлюз указан правильно

  1. Начал настраивать днс

Отредактировал /etc/resolv.conf, добавил днс

  1. Отключил нетворкменеджер для бриджа

Добавил в /etc/network/interfaces строки:

auto br0 iface br0 inet static address 192.168.5.200 netmask 255.255.255.0 gateway 192.168.5.1 dns-nameservers 8.8.8.8 8.8.4.4

auto eno1
iface eno1 inet manual
  1. Рестартнул нетворкменеджер

На хосте это все настройки

В kvm указал следующее:

  1. В Network указал тип соединения bridge device
  2. В Device name указал br0

Проблема: Захожу в виртуалку, нетворк менеджер не может найти сеть, не видит сетевой интерфейс, иногда бывает что находит, но в итоге интернета нет все равно. Файла /etc/resolv.conf нет. Маршрутов нет, по команде ip route show ничего не выдает. Ip4 тоже айпи не выдает. Что делать понятия не имею вообще, разве я где то допустил ошибку и что то не так настроил? В чем может быть дело?

P.S Только по делу пожалуйста, фаервол не предлагать, квм сменить на виртуалбокс не предлагать, только по решению проблемы. Без флуда.

Перемещено hobbit из general



Последнее исправление: marmeladka111 (всего исправлений: 1)

Назначил айпи адрес и маску подсети бридж интерфейсу: sudo ip addr add 192.168.5.200/24 dev br0 (айпи адрес роутера 192.168.5.1)

это ошибка

только по решению проблемы. Без флуда.

где деньги Билли?

gagarin0
()
Последнее исправление: gagarin0 (всего исправлений: 1)
Ответ на: комментарий от marmeladka111

на бридж вешать ойпи адреса не надо.

нужно к бриджу добавлять интерфейсы (addif) и вешать на них.

В интернете по ключевым словам, вы найдете около 20 примеров как это сделать правильно.

gagarin0
()

Подключить виртуальную машину kvm напрямую к роутеру, оставляя хост без интернета.

Ну то есть тебе нужен бридж, на бридже настроек нет, на виртуальной сетевой карте есть. В чём, собственно, проблема?

Aceler ★★★★★
()
Ответ на: комментарий от marmeladka111

я тебе сказал «покажи brctl show br0», при запущенной виртуалке естественно.

И этот человек еще пишет

P.S Только по делу пожалуйста

futurama ★★★★★
()
Последнее исправление: futurama (всего исправлений: 1)
Ответ на: комментарий от futurama

А у меня нет интернета на хосте сейчас, я не могу скопировать и вставить все содержимое того что вылезло после команды, тем более это не нужно. Суть этой команды показать айпи адрес и мак адрес интерфейса, я выполнил эту команду на хосте и написал: мак адрес показывает, айпи адрес показывает (указал какой)

marmeladka111
() автор топика
Ответ на: комментарий от marmeladka111

brctl show br0

Суть этой команды показать айпи адрес и мак адрес интерфейса

Да? Я не знал. В моем линуксе, она другое показывает

futurama ★★★★★
()
Последнее исправление: futurama (всего исправлений: 1)
Ответ на: комментарий от futurama

Сохранять спокойствие всем надо. Если ты про команду то это определенно мне надо, я уже вернулся, спасибо за помощь, думаю мы станем отличной командой, вот что показывает

Bridge name: Br0 bridge id: 8000.1ef08dfbdc0d Stp enabled: Yes Interfaces: vnet0

marmeladka111
() автор топика
Ответ на: комментарий от gagarin0

А как ты удалял айпи с бриджа? У меня почему то он все равно появляется, хотя я удаляю, вот что пробовал:

Sudo ip addr del 192.168.5.200/24 dev br0

Все равно не появляется

Так же пробовал такой вариант

Sudo ip link set dev br0 Sudo ip addr flush dev br0 Sudo ip link set dev br0 up

Но все равно появляется

marmeladka111
() автор топика
Ответ на: комментарий от marmeladka111

У тебя там голый KVM или есть какая-то система управления типа libvirt/pve, которая сама настройками рулит? Если второе, то поздравляю, рулить настройками надо там, а не вручную.

Aceler ★★★★★
()
Ответ на: комментарий от marmeladka111

он все равно появляется

Все равно не появляется

Но все равно появляется

прощу прощения, но в этот поток сознания я даже вчитываться не буду.

А как ты удалял айпи с бриджа?

я удаляю его так ip a d x.x.x.x/yy dev br0

gagarin0
()
Ответ на: комментарий от Aceler

Ну libvirt есть, я там добавлял только пользователя в группу либвирт, и по сути все. А он разве может и за сеть отвечать? А что конкретно надо делать там? В либвирте

marmeladka111
() автор топика
Ответ на: комментарий от marmeladka111

А он разве может и за сеть отвечать?

Не просто может, а отвечает.

А что конкретно надо делать там? В либвирте

(со вздохом) настраивать. В либвирте убить все сети, если они там есть, можно создать isolated сеть default, чтобы не чертыхаться каждый раз, когда виртуалку создаёшь. На хосте поднять мосты и убрать всю автоматику, чтобы IP не появлялся, на гостевых подсовывать этот бридж, чтобы забирал адрес по DHCP нетворк менеджером.

Aceler ★★★★★
()
Ответ на: комментарий от gagarin0

А можно пример запроса пожалуйста? Искал но что то все не то, там другие цели описывали.

С бриджа удалил айпи в итоге. Но на виртуалке интернет не заработал, нетворк менеджер не видит интерфейс. Скинь пожалуйста запрос какой мне вбить, в каком направлении копать

marmeladka111
() автор топика
Ответ на: комментарий от marmeladka111

Скинь пожалуйста запрос какой мне вбить, в каком направлении копать

https://linuxconfig.org/how-to-use-bridged-networking-with-libvirt-and-kvm

удалите текущие состояние системы

перезагрузите

выполняйте по пунктам

добейтесь того чтобы в виртуалке появился интернет

после этого можно будет на хосте вырубить интернет

gagarin0
()
Ответ на: комментарий от gagarin0

Я почитал ваше первое сообщение. Там у вас написано про рестарт НМ. Юзайте nmcli тогда.

Извините не Вам а автору.

mx__ ★★★★★
()
Последнее исправление: mx__ (всего исправлений: 1)
Ответ на: комментарий от Aceler

можно создать isolated сеть default, чтобы не чертыхаться каждый раз, когда виртуалку создаёшь

А для чего это? Зачем создавать сеть в виртуалке которая не будет иметь доступа в интернет от роутера? Это же обычно используется чтобы ограничить виртуальную машину от интернета на хосте, когда вообще не нужен интернет ни в каком виде. Как в случае когда задача ограничить хост от интернета и сделать подключения виртуалки к роутеру напрямую изолированная сеть дефаулт поможет?

marmeladka111
() автор топика
Ответ на: комментарий от gagarin0

Ну я так понял проблема была что системд с интерфейсом конфликтовал что ли, или пару строчек в interfaces не дописал, в итоге сделал так:

sudo systemctl stop systemd-networkd sudo systemctl disable systemd-networkd

И в etc/network/interfaces вбил следующее:

auto lo iface lo inet loopback

auto eth0 iface eth0 inet manual

auto br0 iface br0 inet static address netmask gateway bridge_ports eth0 bridge_fd 0

sudo ifup br0

На виртуалке тип соединения сделал бриджконект

На хосте все закоментил в dhcp, отключил нетворкменеджер, удалил маршруты. Вроде максимум сделал что можно чтобы изолировать хост? Ничего не пробьется так?

Только проблема что после перезагрузки маршруты все равно обратно возвращаются, непойму в чем проблема

marmeladka111
() автор топика
Ответ на: комментарий от marmeladka111
$ sudo systemctl stop systemd-networkd 
$ sudo systemctl disable systemd-networkd 

не уверен что это лучшее решение

/etc/network/interfaces
auto lo iface lo inet loopback

auto eth0 iface eth0 inet manual

auto br0 iface br0 inet static address netmask gateway bridge_ports eth0 bridge_fd 0

sudo ifup br0

Забавно, что вы так и не указали дистрибутив на котором проделываете эти упражнения

На хосте все закоментил в dhcp, отключил нетворкменеджер, удалил маршруты. Вроде максимум сделал что можно чтобы изолировать хост? Ничего не пробьется так?

В идеале вам нужно сделать DMZ

В идеале используя vlan (802.1q)

По идеи у вас должен появиться public сеть, и mgmt сеть, в идеале еще private vlan

Только проблема что после перезагрузки маршруты все равно обратно возвращаются, непойму в чем проблема

если есть возможность - начните с нуля

На виртуалке тип соединения сделал бриджконект

так что в итоге имеем? схема работает, в виртуалке инет есть, а в хосте нет?

gagarin0
()
Ответ на: комментарий от gagarin0

DMZ это обычно если я размещаю что то на сервере в сети? Чтобы обезопасить сервер? Или если у меня почтовый сервер, и подобное

Верно?

Если ничего такого не происходит DMZ не нужен? А VLAN для безопасности виртуалки как то пригодится? И какие могут быть советы?

(В локальной сети никаких устройств нет, вопрос исключительно о повышении безопасности для виртуальных машин)

marmeladka111
() автор топика
Ответ на: комментарий от marmeladka111

что маршруты на хосте которые я удаляю добавляются после перезагрузки

они либо в /etc, либо в кишках virsh

Дистр дебиан

теперь остается выяснить какой релиз

DMZ это обычно если я размещаю что то на сервере в сети?

если очень коротко, DMZ это обычно L2 сегмент внутри вашей сети, который не имеет доступа к другим L2 сегментам вашей сети, и имеет доступ только в интернет.

Если ничего такого не происходит DMZ не нужен?

Смотря сколько вы времени хотите потратить на эту задачу.

А VLAN для безопасности виртуалки как то пригодится?

Иметь отдельные вланы для публичной, приватной, менеджмент сетей поднимет безопасность вашей сетевой инфрастуктуры на уровень.

И какие могут быть советы?

Вам либо нужно повышать квалификацию и экспертизу в этой предметной области, либо найти человека который это сделает за вас.

(В локальной сети никаких устройств нет, вопрос исключительно о повышении безопасности для виртуальных машин)

тогда делайте как угодно, лишь бы результат вас удовлетворил

gagarin0
()
Ответ на: комментарий от gagarin0

О спасибо. Не знал о нем.

На счет того что маршруты вылезают после перезагрузки - это было из за того что gateway был в etc/network/interfaces прописан, он поднимает маршрут по умолчанию. Я убрал gateway, удалил маршрут, добавил айпи этот маршрут вручную через команду на бридж, и вылезать маршрут на хосте после перезагрузки перестал. А на виртуалке инет есть

А кстати, ты говорил нежелетельно было стопать sustemd, а почему? Если на хосте например ничего кроме входа в виртуалку не происходит

marmeladka111
() автор топика
Ответ на: комментарий от gagarin0

В целом то что я сделал это подходит под определение максимальная изоляция хоста и безопасность? Если не считать того что фаервол и вланы не вкручивал дополнительно. Просто сам способ как я пробросил интерфейс через бридж в виртуалку и она теперь стала получать интернет напрямую с роутера, а хост стал изолирован. Все сделано идеально? По максимуму?

marmeladka111
() автор топика
Ответ на: комментарий от marmeladka111

а почему?

я бы до последнего старался сделать конфигурацию системы как она была задумана дистрибутивом, чтобы последователи не охали и не ахали когда в 2025 году обнаруживают /etc/network/interfaces

здесь и сейчас это работает, на дистанции могут возникнуть проблемы

gagarin0
()