LINUX.ORG.RU
решено ФорумAdmin

Траффик из бриджа

 ,


0

1

Новенький Centos7, на нём бриджи и виртуалки.
Машины в бридже пингуются меж собой и с хостом, хост видит сеть вокруг, а если с виртуалки пинговать, то:

[yustas@myhost ~]$ sudo tcpdump host vm1 and host gateway
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on br0, link-type EN10MB (Ethernet), capture size 65535 bytes
17:41:23.946019 ARP, Request who-has gateway tell vm1, length 28
17:41:23.946117 ARP, Request who-has gateway tell vm1, length 28
17:41:23.946413 ARP, Reply gateway is-at 52:54:00:7c:0b:41 (oui Unknown), length 42
17:41:24.947862 ARP, Request who-has gateway tell vm1, length 28
17:41:24.947968 ARP, Request who-has gateway tell vm1, length 28
17:41:24.948421 ARP, Reply gateway is-at 52:54:00:7c:0b:41 (oui Unknown), length 42
17:41:25.949847 ARP, Request who-has gateway tell vm1, length 28
17:41:25.949957 ARP, Request who-has gateway tell vm1, length 28
17:41:25.950219 ARP, Reply gateway is-at 52:54:00:7c:0b:41 (oui Unknown), length 42
...
и до vm1 ответы не доходят.
Один хост удалось пропинговать, когда на хосте запустил вырубленный firewalld, и он тоже доступен из бриджа.

PS. виртулки в KVM, сетевушки - virtio, смена драйвера реузльтата не даёт

★★★★

на хосте «brctl show br0 && brctl showmacs br0 && arp -ani br0», на виртуалках «arp -an»

Если у всех есть mac-и, значит что-то с netfilter, иначе проблемы с мостом.

Бридж можно сломать через netfilter (если включено /proc/sys/net/bridge/bridge-nf-call-iptables) и/или ebtables

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

ip_forward

Включил от отчаяния. Результатов не дало.

SNAT

# iptables -L -v -t nat
Chain PREROUTING (policy ACCEPT 43522 packets, 2773K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain INPUT (policy ACCEPT 43515 packets, 2772K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 42001 packets, 2731K bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain POSTROUTING (policy ACCEPT 42001 packets, 2731K bytes)
 pkts bytes target     prot opt in     out     source               destination
Yustas ★★★★
() автор топика
Ответ на: комментарий от vel

на хосте

Маки все есть

на виртуалках

Бляццкий C7Minimal не включает arp! А сети нет. Щас пока туда пакет запихаю.

значит что-то с netfilter

Подозреваю что так, я когда дёрнул firewalld, вот просто

# firewalld
пинг до виртуалки пошел на несколько секунд, потом опять тишина.
После ребута и запуска вируталки, прорывается один echo, дальше опять глухо.

$ cat /proc/sys/net/bridge/bridge-nf-call-iptables

0

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

А сейчас вообще атЪ:
Запуслил yum search и оно обновило кэши!
Т.е. с виртуалки пинг не идёт, http-сервера и иное в локальной сети не доступны, но curl'ом из интернета я странички получаю!

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

на виртуалках «arp -an»

Маков на ip, которые не пингуются в виртуалке нет.

$ arp -an
? (other-host) at <incomplete> [ether] on eth0
? (host) at e8:39:35:2d:b8:f4 [ether] on eth0
? (gateway) at <incomplete> [ether] on eth0
? (vm2) at 52:54:00:16:36:70 [ether] on eth0
? (vm1) at 52:54:00:5c:99:32 [ether] on eth0

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

на хосте «brctl showmacs br0» показывает наличие mac-ов из виртуалок ?

«brctl show» все правильно показывает ?

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

значит arp шлюза доступен.

Кстати, есть замечательна утиль arping.

Я бы начал с отключения stp на мосте и setfd 0

PS в ebtables ничего нет?

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

на хосте «brctl showmacs br0» показывает наличие mac-ов из виртуалок ?

Да

«brctl show» все правильно показывает ?

Нууу, не вижу ничего необычного.

Попутно, раз машина стоит, сунул туда SD-карточку и накатал хостом Убунту 14.04, на пробу.

Картина та же самая.

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

PS в ebtables ничего нет?

Ни на хосте, ни на гестах не вижу ничего подобного.

Я бы начал с отключения stp на мосте и setfd 0

Уже. И ничего.

Кстати, есть замечательна утиль arping.

Да. Картина та же - хост доступен, остальное - нет.

Но! Из другой сети гест пингуется. и после этого из геста какое-то время пингуется гейтвей, но не хост-источник
Потом опять тишина.

Какая-то жуткая херня с ARP, я вообще ничего не понимаю.

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

Да! Есть такая буква... т.е. есть в dmesg.

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

Чей MAC на br0 - eth0 или tapX ?

eth0

eth0 в promisc режиме

Чего-то не не понял как посмотреть, врубил руками на бридже и интерфейсе хоста.
Пинга нет.
Ну, как нет... геста пингуют часть хостов, часть нет.
Гест пингует гейтвей, но не пингует гестов на других хостах.

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

eth0 в promisc режиме

«ip li | grep PROM»

Нужно отделить мух от котлет. Между хостом и хоть одной машиной в сети (та что подключена к eth0) есть проблемы ?

Хочется понять - это проблемы kvm/tap или что-то другое.

Можно ли померить скорость сети между kvm-хостом и виртуалкой через iperf3 ?

Есть еще мысль - нужно запустить «ip mon» и после этого запустить виртуалку. ip mon покажет события (появление интерфейсов, мак-ов и маршрутов)

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

Между хостом и хоть одной машиной в сети (та что подключена к eth0) есть проблемы ?

Нет

Хочется понять - это проблемы kvm/tap или что-то другое.

Подключил хост через MacVTap - всё норм

Можно ли померить скорость сети между kvm-хостом и виртуалкой через iperf3 ?
нужно запустить «ip mon» и после этого запустить виртуалку

Попробую завтра, по результатам сообщу.

Спасибо за помощь.

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

запустить «ip mon» и после этого запустить виртуалку

$ ip mon
11: vnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default 
    link/ether 9e:08:f7:01:81:88 brd ff:ff:ff:ff:ff:ff
11: vnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default 
    link/ether fe:54:00:77:9b:3a brd ff:ff:ff:ff:ff:ff
11: vnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master br1 state DOWN group default 
    link/ether fe:54:00:77:9b:3a brd ff:ff:ff:ff:ff:ff
11: vnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop master br1 state DOWN group default 
    link/ether fe:54:00:77:9b:3a brd ff:ff:ff:ff:ff:ff
7: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether e4:11:5b:0c:0a:78 brd ff:ff:ff:ff:ff:ff
dev vnet0 lladdr fe:54:00:77:9b:3a PERMANENT
dev vnet0 lladdr fe:54:00:77:9b:3a PERMANENT
11: vnet0: <BROADCAST,MULTICAST> mtu 1500 master br1 state DOWN 
    link/ether fe:54:00:77:9b:3a
11: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br1 state UNKNOWN group default 
    link/ether fe:54:00:77:9b:3a brd ff:ff:ff:ff:ff:ff
ff00::/8 dev vnet0  table local  metric 256 
fe80::/64 dev vnet0  proto kernel  metric 256 
11: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 
    link/ether fe:54:00:77:9b:3a
11: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br1 state UNKNOWN 
    link/ether fe:54:00:77:9b:3a
11: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br1 state UNKNOWN 
    link/ether fe:54:00:77:9b:3a
11: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 master br1 state UNKNOWN 
    link/ether fe:54:00:77:9b:3a
11: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br1 state UNKNOWN group default 
    link/ether fe:54:00:77:9b:3a brd ff:ff:ff:ff:ff:ff
7: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether e4:11:5b:0c:0a:78 brd ff:ff:ff:ff:ff:ff
11: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br1 state UNKNOWN group default 
    link/ether fe:54:00:77:9b:3a brd ff:ff:ff:ff:ff:ff
7: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether e4:11:5b:0c:0a:78 brd ff:ff:ff:ff:ff:ff
gateway dev br1 lladdr 52:54:00:7c:0b:41 PROBE
gateway dev br1 lladdr 52:54:00:7c:0b:41 REACHABLE
11: vnet0    inet6 fe80::fc54:ff:fe77:9b3a/64 scope link 
       valid_lft forever preferred_lft forever
local fe80::fc54:ff:fe77:9b3a dev lo  table local  proto none  metric 0 
11: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br1 state UNKNOWN group default 
    link/ether fe:54:00:77:9b:3a brd ff:ff:ff:ff:ff:ff
7: br1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default 
    link/ether e4:11:5b:0c:0a:78 brd ff:ff:ff:ff:ff:ff
dev vnet0 lladdr 52:54:00:77:9b:3a REACHABLE
dev em1 lladdr 52:54:00:77:9b:3a REACHABLE
dev vnet0 lladdr 52:54:00:77:9b:3a REACHABLE
dev em1 lladdr 52:54:00:77:9b:3a REACHABLE
dev vnet0 lladdr 52:54:00:77:9b:3a REACHABLE
dev em1 lladdr 52:54:00:77:9b:3a REACHABLE
dev vnet0 lladdr 52:54:00:77:9b:3a REACHABLE
dev em1 lladdr 52:54:00:77:9b:3a REACHABLE
dev vnet0 lladdr 52:54:00:77:9b:3a REACHABLE
dev em1 lladdr 52:54:00:77:9b:3a REACHABLE
dev vnet0 lladdr 52:54:00:77:9b:3a REACHABLE
dev em1 lladdr 52:54:00:77:9b:3a REACHABLE
dev vnet0 lladdr 52:54:00:77:9b:3a REACHABLE
dev em1 lladdr 52:54:00:77:9b:3a REACHABLE
dev vnet0 lladdr 52:54:00:77:9b:3a REACHABLE
dev em1 lladdr 52:54:00:77:9b:3a REACHABLE
dev vnet0 lladdr 52:54:00:77:9b:3a REACHABLE
dev em1 lladdr 52:54:00:77:9b:3a REACHABLE
dev vnet0 lladdr 52:54:00:77:9b:3a REACHABLE
dev em1 lladdr 52:54:00:77:9b:3a REACHABLE
gateway dev br1 lladdr 52:54:00:7c:0b:41 STALE
dev vnet0 lladdr 52:54:00:77:9b:3a REACHABLE
dev em1 lladdr 52:54:00:77:9b:3a REACHABLE
dev vnet0 lladdr 52:54:00:77:9b:3a REACHABLE
dev em1 lladdr 52:54:00:77:9b:3a REACHABLE
dev vnet0 lladdr 52:54:00:77:9b:3a REACHABLE
dev em1 lladdr 52:54:00:77:9b:3a REACHABLE
dev vnet0 lladdr 52:54:00:77:9b:3a REACHABLE
dev em1 lladdr 52:54:00:77:9b:3a REACHABLE
gateway dev br1 lladdr 52:54:00:7c:0b:41 PROBE
gateway dev br1 lladdr 52:54:00:7c:0b:41 REACHABLE
dev vnet0 lladdr 52:54:00:77:9b:3a REACHABLE
dev em1 lladdr 52:54:00:77:9b:3a REACHABLE
dev vnet0 lladdr 52:54:00:77:9b:3a REACHABLE
dev em1 lladdr 52:54:00:77:9b:3a REACHABLE
dev vnet0 lladdr 52:54:00:77:9b:3a REACHABLE
Yustas ★★★★
() автор топика
Ответ на: комментарий от vel

iperf

yustas@host:~$ iperf -s
------------------------------------------------------------
Server listening on TCP port 5001
TCP window size: 85.3 KByte (default)
------------------------------------------------------------
[  4] local host port 5001 connected with vm1 port 60732
[ ID] Interval       Transfer     Bandwidth
[  4]  0.0-10.0 sec  22.3 GBytes  19.1 Gbits/sec
Yustas ★★★★
() автор топика
Ответ на: комментарий от Yustas

со скоростью все хорошо, а вот «ip mon» есть интересный момент.

br1 & em1 это мост и реальный интерфейс ? а что за vmnet0 (macvtap?) ?

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

а что за vmnet0 (macvtap?)

В смысле vnet0? Это виртуальный интерфейс, который создаётся(в качестве физического) для виртуалки libvirt'ом.

Yustas ★★★★
() автор топика
Ответ на: комментарий от vel
12: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master br1 state UNKNOWN mode DEFAULT group default qlen 500
    link/ether fe:54:00:77:9b:3a brd ff:ff:ff:ff:ff:ff

fe:54:00:77:9b:3a - MAC eth0 на vm1

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

А где интерфейс типа macvtap ?

Ну, я переключился с него на бридж.

это с ней все нормально работает или с ней проблемы ?

Нет, это обычный бриджОвый вариант.
Работает, если подключать виртуалку через бридж/VEPA MacVTap

$ ip li
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: em1: <BROADCAST,MULTICAST,PROMISC,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether e4:11:5b:0c:0a:78 brd ff:ff:ff:ff:ff:ff
3: em2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP mode DEFAULT group default qlen 1000
    link/ether e4:11:5b:0c:0a:7c brd ff:ff:ff:ff:ff:ff
16: macvtap0@em1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN mode DEFAULT group default qlen 500
    link/ether 52:54:00:77:9b:3a brd ff:ff:ff:ff:ff:ff

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

Хмм. Даже не задумывался.
Щас почитаю, в чём разница и как поменять и переключу.

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

Сделал через tap, тот же результат.

      <mac address='52:54:00:77:9b:3a'/>
      <source bridge='br0'/>
      <target dev='tap1'/>
      <model type='virtio'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
Видимо, проблема с бриджОм.

Yustas ★★★★
() автор топика
29 февраля 2016 г.

И вот, спустя месяц работы через MACVTAP, я решил вернуться к вопросу.
Поднял на той же машине LXC, что бы окончательно исключить libvirt и всё с ним связаное. Результат тот же.
В итоге, упёрся в дравер be2net, сетевого адаптера Emulex 553i.
Вот тут и тут у пацанов те же проблемы. Сборка крайних версий драверов с сайта производителя и расшитие фирмварью оттуда же результата не дали.
Ну, как не дали... установленная на Centos6 RPM'ка, и драйвер стал нормально пропускать ARP, и всё было хорошо до ребута. Потом опять глушняк. Повторить тот же фокус на C7 уже не удалось. Равно как и на убунте разных версий.
По линкам выше пацаны утверждают что проблема аппаратная, дескать поменяли в сервери карточку на интел - всё завелось, воткнули другой такой же Emulex - всё работает.
У меня блейд-сервер, я пробовал втыкать USB-сетевушку, бридж на которой успешно поднимался и работал, USB-карточки на Emulex'е у меня не было, ни подтвердить ни опровергунть не могу.
В итоге, выяснилось что OpenVSwitch имеет свою реализацию бриджа, в то время как я был уверен что используется тот же «legacy-bridge»... и всё завелось.
Всем ещё раз спасибо за советы.
vel особенно.

Yustas ★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.