Перейти к содержимому
Калькуляторы

Как пробросить vlan к роутеру на гостевой ОС KVM

Информация к размышлению.. (с)"Семнадцать мгновений весны" :)

Вариант -

Еще как вариант, если очень не хочется использовать стороннее железное решение, то можно под каждый влан делать бридж, в который включать тегированный интерфейс в хост-машине и _отдельный_ физический интерфейс в гостевой машине.

работает. Но.. Как уже и говорил, не есть гут. Хотя... Очень похоже на хотелку. :)

 

P.S. Остался вариант с Q-in-Q; ещё не проверял..

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1) Покажите xml с <interface .....

2) nwfilter юзаете ?

3) ebtables -t nat -Lv

4) состояние reodering на влан фейсе в бридже ;)

 

П.С в станд. правилах nwfilter схема как мне помнится не работала

Изменено пользователем slepnoga

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

1) Покажите xml с <interface .....

В первом сообщении.

2) nwfilter юзаете ?

А вот и не знаю.. Скорее всего что нет.

Папка /etc/libvirt/nwfilter существует, файлы фильтров в ней есть, в конфигурации виртуалок фильтры не определены.

3) ebtables -t nat -Lv

Пусто..

[root@kvm1 qemu]# ebtables -t nat -Lv
Bridge table: nat

Bridge chain: PREROUTING, entries: 0, policy: ACCEPT

Bridge chain: OUTPUT, entries: 0, policy: ACCEPT

Bridge chain: POSTROUTING, entries: 0, policy: ACCEPT

4) состояние reodering на влан фейсе в бридже ;)

Как проверить?

П.С в станд. правилах nwfilter схема как мне помнится не работала

А по дефолту они применяются?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

4) cat /proc/net/vlan/xxxx

 

По дефолту - нет

 

П.С

Или меня глючит, или вы vconfig на бридж делаете .

 

Я не в курсе, что там в центосе ( не лучший выбор под квм платформу) и есть ли там ovs

но я бы сделал для начала тупо по мануалу либвирта :

 


<network>
 <name>ovs-net</name>
 <forward mode='bridge'/>
 <bridge name='ovsbr0'/>
 <virtualport type='openvswitch'>
   <parameters interfaceid='09b11c53-8b5c-4eeb-8f00-d84eaa0aaa4f'/>
 </virtualport>
 <vlan trunk='yes'>
   <tag id='42' nativeMode='untagged'/>
   <tag id='47'/>
 </vlan>
 <portgroup name='dontpanic'>
   <vlan>
     <tag id='42'/>
   </vlan>
 </portgroup>
</network>

Изменено пользователем slepnoga

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

П.С

Или меня глючит, или вы vconfig на бридж делаете .

В описанном случае, да. Что только и не пробовал, но начинал с "классики" - vlan на физ. интерфейс, с последующим добавлением в бридж.

Не работало ни одно. Рабочий вариант, как писал выше, предложенный agr (с кучей бриджей и интерфейсов на виртуалке).

Я не в курсе, что там в центосе ( не лучший выбор под квм платформу) и есть ли там ovs

В пакетах нет. Только "самосборный". Нет желания заморачиваться..

Да и пугают насчёт него - http://habrahabr.ru/company/webzilla/blog/124310/

Тем более, что "до того как" (до необходимости проброса vlan) работала куча виртуалок без проблем.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

История продолжается или же был найден некий солюшн?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

set_flag [vlan-device] 0 | 1

When 1 (the default since 2.6.18), ethernet header reorders are turned on. Dumping the device will appear as a common ethernet device without vlans. When 0 however, ethernet headers are not reordered, which results in

vlan tagged packets when dumping the device. Usually the default gives no problems, but some packet filtering programs might have problems with it.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На счет свежего ядра для CentOS - я особых пролем не наблюдал http://rpm.pbone.net/index.php3/stat/11/vendor/8163/com/CentOS%20Devel.html, когда юзал CentOS свежие ядра брал http://elrepo.org/tiki/kernel-ml.

 

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

Присматриваюсь к OVS.

Изменено пользователем tokra

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

у OVS есть одна закавыка - openflow - вменяемый openflow kонтроллер и избыточность для 1-го хоста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

вменяемый openflow kонтроллер и избыточность для 1-го хоста.

Потому и присматриваюсь)

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

На счет свежего ядра для CentOS - я особых пролем не наблюдал http://rpm.pbone.net/index.php3/stat/11/vendor/8163/com/CentOS%20Devel.html, когда юзал CentOS свежие ядра брал http://elrepo.org/tiki/kernel-ml

Гм..

Known Issues

(1) As of kernel-ml-3.10.5-1.el6.elrepo, kernel-ml installed as a KVM guest will panic upon booting. This is because virtio_blk is not in the initramfs.

Правда, ядро мне не в гостевой машине обновлять, но всё равно - настораживает, на машинке крутится продакшен биллинг..

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

Это на CentOS и после обновления ядра хост-машины?

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Из вашего же:

This is because virtio_blk is not in the initramfs.

Смело забейте болт.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Это на CentOS и после обновления ядра хост-машины?

 

Внесу ясность, что на штатном ядре, что на ядре kernel-ml, когда начал использовать kvm для виртуализации, для проброса vlan в виртуалку, на хост системе разбирал тегированный влан, создавал бридж для этого влана и вешал на нее виртуалку, итого имел, для каждого влана по бридж интерфейсе, соответственно в виртуалке было столько сетевых интерфейсов, сколько влано туда надо было пробросить, этот вариант быстро не понравился, после этого я начал разбирать вланы уже внутри виртуалки, тем самым на хост системе избавился от кучи бриджей, а остался только один.

 

Короче было так раньше

 

Для каждого влана по бриджу

br90 8000.d4ae52b28375 no vlan90

br91 8000.d4ae52b28375 no vlan91

br92 8000.d4ae52b28375 no vlan92

br93 8000.d4ae52b28375 no vlan93

 

Соответственно в конфиге виртуалки

 

<interface type='bridge'>

<mac address='52:54:00:fa:f6:c9'/>

<source bridge='br2'/>

<model type='virtio'/>

</interface>

<interface type='bridge'>

<mac address='52:54:00:8a:33:66'/>

<source bridge='br90'/>

<model type='virtio'/>

</interface>

 

Ну и столько записей, сколько надо вланов, в виртуалке мы имели eth0, eth1 ... ethN. Любое добавление вланов была история.

 

Сейчас:

 

Один бридж на хост системе

brctl show

bridge name bridge id STP enabled interfaces

br0 8000.90b11c390e9c no eth4

vnet0

vnet1

vnet10

vnet2

vnet3

vnet4

vnet5

vnet6

vnet7

vnet8

vnet9

 

а в виртуалке

 

15: vlan5@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP

link/ether 52:54:01:07:12:40 brd ff:ff:ff:ff:ff:ff

inet 10.100.0.81/24 brd 10.60.0.255 scope global vlan5

valid_lft forever preferred_lft forever

inet6 fe80::5054:1ff:fe07:1240/64 scope link

valid_lft forever preferred_lft forever

16: vlan90@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP

link/ether 52:54:01:07:12:40 brd ff:ff:ff:ff:ff:ff

inet 10.100.10.70/24 brd 10.30.90.255 scope global vlan90

valid_lft forever preferred_lft forever

inet6 fe80::5054:1ff:fe07:1240/64 scope link

valid_lft forever preferred_lft forever

17: vlan91@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP

link/ether 52:54:01:07:12:40 brd ff:ff:ff:ff:ff:ff

inet 10.100.20.70/24 brd 10.30.91.255 scope global vlan91

valid_lft forever preferred_lft forever

inet6 fe80::5054:1ff:fe07:1240/64 scope link

valid_lft forever preferred_lft forever

 

как-то так, никакого netfilter на хост системе у меня нет, одно, что последние 3 года юзаю для всего gentoo, не спрашивайте почему, так исторически сложилось)

Изменено пользователем tokra

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ледние 3 года юзаю для всего gentoo, не спрашивайте почему, так исторически сложилось)

 

emerge --info, please ;) netifrc версия тоже интересна

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

ледние 3 года юзаю для всего gentoo, не спрашивайте почему, так исторически сложилось)

 

emerge --info, please ;) netifrc версия тоже интересна

emerge --info
Portage 2.2.7 (default/linux/amd64/13.0, gcc-4.7.3, glibc-2.15-r3, 3.10.32 x86_64)
=================================================================
System uname: Linux-3.10.32-x86_64-Intel-R-_Xeon-R-_CPU_E5-4620_0_@_2.20GHz-with-gentoo-2.2
KiB Mem:    98759400 total,   2534828 free
KiB Swap:   10485756 total,   5265780 free
Timestamp of tree: Mon, 24 Feb 2014 13:00:01 +0000
ld GNU ld (GNU Binutils) 2.23.1
app-shells/bash:          4.2_p45
dev-lang/python:          2.7.5-r3, 3.2.5-r3, 3.3.2-r2
dev-util/cmake:           2.8.11.2
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.12.4
sys-apps/sandbox:         2.6-r1
sys-devel/autoconf:       2.69
sys-devel/automake:       1.12.6, 1.13.4
sys-devel/binutils:       2.23.1
sys-devel/gcc:            4.7.3-r1
sys-devel/gcc-config:     1.7.3
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.9 (virtual/os-headers)
sys-libs/glibc:           2.15-r3
Repositories: gentoo
ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O2 -pipe"
DISTDIR="/usr/portage/distfiles"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://distfiles.gentoo.org"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j17"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
USE="acl amd64 berkdb bindist bzip2 cli cracklib crypt cxx dri fortran gdbm iconv ipv6 mmx modules multilib ncurses nls nptl openmp pam pcre readline session sse sse2 ssl tcpd unicode zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_3" RUBY_TARGETS="ruby19 ruby18" USERLAND="GNU" VIDEO_CARDS="fbdev glint intel mach64 mga nouveau nv r128 radeon savage sis tdfx trident vesa via vmware dummy v4l" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, SYNC, USE_PYTHON

 

net-misc/netifrc-0.1

 

Это одна из нод. Без какого-то либо тюнинга. Прерывания на карточке раскиданы, разве что

Изменено пользователем tokra

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.