[Решено] Host, bridge, kvm. Гость не видит сеть.

Автор LinuxID, 27 ноября 2013, 12:46:28

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

LinuxID

Готовлю виртуальный сервер на продакшн. Debian 7.2. + 24 ядра + 16 Гб оперативы + 4 вирт. гостя.
Гостевые машины должны напрямую видеться в локалке.
Установил libvirt-bin. Bridge-utils, ebtable и пр. притянулось паровозом.
Поднял мост с eth0. Запустил тестового гостя Debian 7.2.
Сеть <-> мост <-> хост - все хорошо.
Сеть <-> мост <-> гость - все плохо.
Хост <-> мост <-> гость - все хорошо.
т.е. с гостевой машины сеть не видна вообще.

Настройки хоста делал по https://wiki.debian.org/BridgeNetworkConnections#Configuring_bridging_in_.2Fetc.2Fnetwork.2Finterfaces
и по http://wiki.libvirt.org/page/Networking#Altering_the_interface_config
В итоге получилось

auto lo br0
iface lo inet loopback
iface eth0 inet manual
iface br0 inet static
        address 192.168.1.10
        netmask 255.255.252.0
        network 192.168.0.0
        broadcast 192.168.3.255
        gateway 192.168.0.253
        bridge_ports eth0
        bridge_stp off
        bridge_waitport 0
        bridge_fd 0


sysctl -p

net.bridge.bridge-nf-filter-pppoe-tagged = 0
net.bridge.bridge-nf-filter-vlan-tagged = 0
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0


Настройки гостя

auto lo eth0
iface lo inet loopback
iface eth0 inet static
        address 192.168.3.100
        netmask 255.255.252.0
        network 192.168.0.0
        broadcast 192.168.3.255
        gateway 192.168.0.253


При запуске гостя в br0 добавляется vnet0.
brctl show

bridge name     bridge id               STP enabled     interfaces
br0             8000.842b2b5cf43f       no                  eth0
                                                                         vnet0

brctl showmacs br0 показывает что MAC гостя есть и он правильный.
Вроде как все есть, но гость не видит сеть. Что я еще не сделал? Куда копать?
Правильно заданный вопрос - половина ответа!

LinuxID

Привет народ! Помогите. Не получается решить проблему. Крутил настройки сетевух в BIOS. Поигрался с ACPI. Пробовал прописывать маршруты. Вкл/Выкл firwarding. Создавал bridge скриптом при загрузке. А воз и ныне там.
Правильно заданный вопрос - половина ответа!

DM

#2
бридж обязателен?
есть ещё 2 варианта: macvtap и openvswitch

вообще для меня тоже актуально, тем же занимаюсь и те же грабли...

Сообщение объединено: 03 декабря 2013, 01:23:53

достиг: 1 виртуалка - видит сетку, включаю вторую на тот же бридж и обе не видят сети

LinuxID

Нет, не обязателен, просто его настроить просто ЫЫ.
За macvtap ни чего сказать не могу ибо не юзал, а вот OpenVSwitch говорят крут но все же немного сыроват. Знаком по инету с людьми у которых он уже в продакшене. Собственно они мне посоветовали посмотреть на свичи, цицски или что там у меня в сторону BPDU.

ЗЫ Ради эксперимента завел все тоже самое на CentOS 6.5 (стаб). Убило. У них ядро до сих пор 2.6.32. За то завелось все можно сказать "из коробки". Debian по старше будет а "из коробки" простые вещи не умеет. Пичалька блин.
Правильно заданный вопрос - половина ответа!

DM

#4
я тебе больше скажу, на убунте это работает из каробки... но там другая для меня проблема - недавно сломали проброс усб в виртуалку... мне это оч критично. в дебе работает, поэтому его и пинаю...
перехожу к openvswitch, посмотрим что с ним будет, на убунте он работает тоже без проблем.

Сообщение объединено: 03 декабря 2013, 11:18:22

openvswitch работает как надо, пока в тесте гоняю, 2 виртуалки уже вообще без проблем
кстати настраивается не сложнее бриджа :) если в примитиве то:
ovs-vsctl add-br br0
ovs-vsctl add-port br0 eth0

и потом сам хранит уже конфигурацию, тебе ток указать IPшники в interfaces к br0 остается как с простой сетевой.
в общем все просто.
есть правда нюанс - старт этих бриджей может происходить только после старта сервиса. я добавил им allow-ovs вместо auto и после старта сервиса прописал ifup --allow=ovs -a в скрипте старта сервиса
в общем пока без нареканий.

LinuxID

Ну собственно я победил.
На свиче изменил настройки BPDU c flooding на filtering и выключил STP. Все сразу заработало.
Правильно заданный вопрос - половина ответа!

DM

погуглил:не совсем понимаю чем отличается
"изменил настройки BPDU c flooding на filtering"
от
"выключил STP"

вообще всегда создаю с stp off, может просмотрел...