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)
Ответ на: комментарий от gagarin0

Подскажи пожалуйста, в чем дело

Вот у меня в /etc/network/interfaces указано:

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet manual

auto br0

iface br0 inet static

address: адрес

netmask: нетмаск

bridge_ports eth0

bridge_fd 0

Так все работает, отключаю потом на хосте маршруты и в целом ок.

Но в идеале же вообще бриджу не давать айпи? Мы в этом файле выходит даем айпи бриджу то? (address: айпи)

А как в идеале сюда сделать? Хочу чтобы хост вообще не мог через бридж получать инет. А могла только виртуалка.

Если не вешать айпи на бридж, то это нужно так вписать в etc/network/interfaces?:

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet manual

auto bridge0

iface bridge0 inet manual

bridge_ports eth0

bridge_fd 0

Так? Чтобы не было айпишника и нетмаска. Но у меня что то не работает, может что то не так делаю. Как сделать чтобы у бриджа не было айпи правильно?

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

А как в идеале сюда сделать?

В идеале нужно сделать так:

Настроить в своей сети два влана

VLAN 10 Public

VLAN 20 Management

Добавить эти порт и на сервер, на сервере у вас получится

eth0: интерфейс физический

br-public бридж с интернетом

br-management бридж с management сетью для управления

на eth0 можно ничего не вешать

на br-public тоже ничего не вешается

внутри виртуалки работает dhcp воткнутый в br-public

на br-mgmt вешаете либо руками, либо через альтернативный dhcp сервер ойпи адрес для доступа из локальной сети

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

Хочу чтобы хост вообще не мог через бридж получать инет.

Костылями это можно сделать так:

на хосте воткнуть в бридж, еще один интерфейс brctl addif и на хосте сконфигурировать его.

Например сеть в которой у вас живет интернет: 172.16.10.0/24 Сеть в которой живет локалка: 10.20.30.0/24

В хосте вы должны сконфигурировать firewall, чтобы не пускать пакеты из бриджа с адресом 172.16.10.0/24 внутрь вашей локалки

Я вам советую сделать лабу, где вы можете экспериментировать.

В каком состоянии сейчас сетевая настройка вашего сервера остается только гадать..

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

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

/etc/network/interfaces:

auto lo

iface lo inet loopback

auto eth0

iface eth0 inet manual

auto bridge0

iface bridge0 inet manual

bridge_ports eth0

bridge_fd 0

Чтобы усилить безопасность думаю создать вланы и фаерволом ограничить траффик между ними внутри netns, сам гипервизор тоже запускать из под netns через консоль

marmeladka111
() автор топика