Megas Posted November 14, 2015 · Report post Имеется довольно сложно запутанная архитектура одного небольшого сервера, выглядит так: debian, ночью подняли с 7.9 до последней jessi Linux windows 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u6 (2015-11-09) x86_64 GNU/Linux к нему от коммутатора подключенно 2 линка и обьеденены в bond0 root@windows:~# cat /proc/net/bonding/bond0 Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011) Bonding Mode: IEEE 802.3ad Dynamic link aggregation Transmit Hash Policy: layer3+4 (1) MII Status: up MII Polling Interval (ms): 100 Up Delay (ms): 200 Down Delay (ms): 200 802.3ad info LACP rate: fast Min links: 0 Aggregator selection policy (ad_select): stable Active Aggregator Info: Aggregator ID: 1 Number of ports: 2 Actor Key: 17 Partner Key: 51 Partner Mac Address: 84:34:97:d8:80:80 Slave Interface: eth1 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 3 Permanent HW addr: 00:15:17:dd:66:27 Aggregator ID: 1 Slave queue ID: 0 Slave Interface: eth2 MII Status: up Speed: 1000 Mbps Duplex: full Link Failure Count: 0 Permanent HW addr: 00:15:17:dd:66:26 Aggregator ID: 1 Slave queue ID: 0 root@windows:~# Поверх этого bond передаются вланы, auto eth1 iface eth1 inet manual bond-master bond0 auto eth2 iface eth2 inet manual bond-master bond0 auto bond0 iface bond0 inet manual bond-mode 802.3ad bond-miimon 100 bond-downdelay 200 bond-updelay 200 bond-lacp-rate 1 bond-slaves none auto vmbr10 iface vmbr10 inet static bridge_ports bond0.10 bridge_stp off bridge_fb 0 address 10.10.10.1 netmask 255.255.255.0 gateway 10.10.10.254 dns-nameservers 8.8.8.8 dns-search local.loc up ip route add default via 10.10.10.254 table vlan10 up ip rule add from 10.10.10.254 table vlan10 pref 110 down ip rule del pref 110 интерфейс vmbr10 имеет внешний ip адрес который подключен к миру, мир с виртуального роутера пингается и все без проблем. следующий этап, поднимаем тестовую виртуальную машину, подключаем её к интерфейсу vmbr141 к виртуальному роутеру, вещаем внутрение адреса и т.д., пингаем мир, все с виртуальной машины работает вроде как. Переходим к тестам: Пинг с виртуальной машины в мир нормально Трасировка мира с виртуальной машины: умирает после роутера Телнет на ресурсы в мире: умирает Начинаем диагностировать: tcpdump -nei bond0 host 178.2.1.2 and icmp (здесь надо обратить внимание, что трафик снимается с bond0, а не с vmbr и прочего) 12:28:30.555430 52:54:00:0d:38:24 > 88:62:7b:fd:be:90, ethertype 802.1Q (0x8100), length 102: vlan 10, p 0, ethertype IPv4, 178.2.1.2 > 176.3.3.10: ICMP echo request, id 2698, seq 1, length 64 12:28:30.556178 88:62:7b:fd:be:90 > 52:54:00:0d:38:24, ethertype 802.1Q (0x8100), length 102: vlan 10, p 0, ethertype IPv4, 176.3.3.10 > 178.2.1.2: ICMP echo reply, id 2698, seq 1, length 64 telnet: tcpdump пусто. Вешаем tcpdump на бридж: tcpdump -nei vmbr10 host 178.2.1.2 and port 80 12:57:15.153301 52:54:00:0d:38:24 > 88:62:7b:fd:be:90, ethertype IPv4 (0x0800), length 74: 178.2.1.2.35213 > 176.3.3.10.80: Flags , seq 2556358102, win 14600, options [mss 1460,sackOK,TS val 9956629 ecr 0,nop,wscale 4], length 0 Таким образом получается по сути, трафик не уходит дальше vmbr10, попытка поснифать трафик на bond0.10 дает пустой результат, хотя: vmbr10 8000.001517dd6627 no bond0.10 vnet1 интерфейсы в бриджах, все с виду нормально, думал может трафик уходит куда-то в другой интерфейс, а нету его там, все заканчивается на самом бридже. Может у кого-то будут идеи что может быть в такой схеме? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Megas Posted November 14, 2015 · Report post Жить становится круче, жить становится веселей, при debian в качестве виртуального роутера, все работает на ура. Получается проблема во фряхе. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Megas Posted November 14, 2015 · Report post В общем в конечном итоге: как только на сетевых ставишь e1000, все работает, проблема в virtio сетевых. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted November 15, 2015 · Report post У меня на virtio все работало. Вы на хост машине не докрутили сеть. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Megas Posted November 15, 2015 · Report post непонятно чот надо докрутить на хост машине, если как только меняешь вариант сетевого драйвера то все гуд. к стати в рассылке freebsd о таких проблемах куча топиков. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted November 15, 2015 · Report post непонятно чот надо докрутить на хост машине, если как только меняешь вариант сетевого драйвера то все гуд. Это проблема документирования Linux TCP|IP стека и моста в частности. к стати в рассылке freebsd о таких проблемах куча топиков. В какой из? Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
kayot Posted November 15, 2015 · Report post непонятно чот надо докрутить на хост машине, если как только меняешь вариант сетевого драйвера то все гуд. Это проблема документирования Linux TCP|IP стека и моста в частности. Да? Кривая работа BSD в качестве гостя с virtio это кривое документирование linux? :) Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
Megas Posted November 15, 2015 · Report post vlad11 , вы используете виртуального клиента с соединенем через бридж и виртуальный роутер на фре поверх квм на одной машине? если вы используете просто тупую виртуалку то там проблем нету. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted November 16, 2015 · Report post непонятно чот надо докрутить на хост машине, если как только меняешь вариант сетевого драйвера то все гуд. Это проблема документирования Linux TCP|IP стека и моста в частности. Да? Кривая работа BSD в качестве гостя с virtio это кривое документирование linux? :) Кривая работа моста и lagg в Линукс погуглите. Вы услышите много стонов, как внезапно со стороны линукса перестают ходить arp запросы и соответственно пинговаться удаленные хосты. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...
vlad11 Posted November 16, 2015 · Report post vlad11 , вы используете виртуального клиента с соединенем через бридж и виртуальный роутер на фре поверх квм на одной машине? если вы используете просто тупую виртуалку то там проблем нету. Я использовал Проксмокс 3.1. Bond из нескольких физических интерфейсов. Затем расщеплял bond-вланы из общего bond. И потом из них делал интерфейсы. Дальше подключал их в виртуалку: net0: virtio=D6:D9:B3:D7:B7:E3,bridge=vmbr98 net1: virtio=2E:D5:21:90:51:70,bridge=vmbr99 net2: virtio=9A:66:7F:0A:4F:CC,bridge=vmbr100 net3: virtio=AE:03:5F:99:86:B3,bridge=vmbr95 В виртуалках - Винда и Фряха, с драйверами virtio. На винде отказы сетевых карточек были больше всего заметнее. После примерно 10ГБ траффика интерфейс переставал пинговаться. Ребут виртуалки не помогал. Помогал ребут со сменой маков всех сетевых адресов. Сейчас использую jail во FreeBSD. Вставить ник Quote Ответить с цитированием Share this post Link to post Share on other sites More sharing options...