Часовой пояс: UTC + 3 часа




Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 6 
  Пред. тема | След. тема 
В случае проблем с отображением форума, отключите блокировщик рекламы
Автор Сообщение
 

Member
Статус: Не в сети
Регистрация: 06.07.2004
Откуда: РФ
Фото: 6
Всем привет.
Итак, имеется в наличии:
ББ - большой брат, игровая система на винде 7/8. Сетевуха на ББ имеет поддержку JF.
СБ - средний брат, система на debian, которая содержит в себе дисковый массив и систему виртуализации. Сетевуха на СБ имеет поддержку JF.
Гейт - система на дебиан, которая работает гейтом между локалкой и сетью Интернет, а также держит точку доступа для подключения к локалке по wi-fi. Сетевуха на гейте имеет поддержку JF, у wi-fi нет поддержки JF.
свитч с поддержкой jumbo frame

Задача - попробовать задействовать в локалке jumbo frame.

Если я правильно понимаю, то в цепочке
система - свитч - система
каждый из компонентов должен поддерживать jf. В противном случае кадр просто не дойдёт до получателя. То есть, например, при схеме
система MTU 9000 - свитч MTU 1500 - система MTU 9000
кадр размером более 1500, посланный любой из систем, дойдёт до свитча и там, грубо говоря, и останется. В смысле, будет отброшен.

Стало быть, начинаем включать поддержку jf по-порядку на каждом участнике локальной сети. Поехали.
В случае ББ всё просто. Идём в свойства драйвера сетевухи и включаем. Работает.
В случае свитча у меня было включено сразу.

Переходим к СБ и начинается самое интересное. Я использую qemu/kvm для виртуализации и linux bridge для обеспечения работы сети в виртуалках. То есть, я создаю бридж на этапе загрузки хост-системы и даю его виртуалкам для работы. Что такое бридж? Это просто виртуальный свитч. То есть, при включении виртуалки создается виртуальный сетевой интерфейс и включается в состав указанного бриджа. И вот здесь есть тонкость:
Цитата:
The bridge itself just seems to take the smallest MTU from it's set of hosted devices and uses that

На текущий момент мне удалось сделать так, что и физический интерфейс на СБ и бридж и интерфейсы виртуалок имеют MTU 9000. Сделано очень просто:
в файле /etc/network/interfaces указываем
Код:
auto      lo   eth0 eth1 br_lan
allow-hotplug      eth0 eth1

iface lo inet loopback

iface eth0 inet manual

iface eth1 inet manual

iface wlan0 inet manual

iface br_lan inet dhcp
   bridge_ports eth1
   bridge_stp on
   bridge_fd 0
   pre-up ifconfig eth1 mtu 9000

Интерфейсы eth0 и wlan0 на СБ пока не задействованы. Я выключил автозагрузку у виртуалок и отправил систему в ребут. По факту загрузки системы с таким конфигом я получил следующее:
Код:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether a0:36:9f:02:e1:22 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq master br_lan state UP mode DEFAULT qlen 1000
    link/ether a0:36:9f:02:e1:23 brd ff:ff:ff:ff:ff:ff
4: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether 24:0a:64:0f:4a:66 brd ff:ff:ff:ff:ff:ff
5: br_lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP mode DEFAULT
    link/ether a0:36:9f:02:e1:23 brd ff:ff:ff:ff:ff:ff

Далее, запуск виртуалок дал такую картину:
Код:
7: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast master br_lan state UNKNOWN mode DEFAULT qlen 500
    link/ether fe:54:00:26:6b:8e brd ff:ff:ff:ff:ff:ff
8: vnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast master br_lan state UNKNOWN mode DEFAULT qlen 500
    link/ether fe:54:00:59:bb:8e brd ff:ff:ff:ff:ff:ff
9: vnet2: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast master br_lan state UNKNOWN mode DEFAULT qlen 500
    link/ether fe:54:00:de:fb:81 brd ff:ff:ff:ff:ff:ff

И это клёво. Они сами получили MTU 9000, без дополнительных манипуляций с конфигами. Среди виртуалок есть debian и windows 8. Проверяем пинг из одной виртуалки в другую:
Код:
root@tarh-dlna:~# ping -s 8972 windows8
PING windows8.tarh.local (192.168.78.48) 8972(9000) bytes of data.
8980 bytes from windows8.tarh.local (192.168.78.48): icmp_req=1 ttl=128 time=0.407 ms
8980 bytes from windows8.tarh.local (192.168.78.48): icmp_req=2 ttl=128 time=0.433 ms
8980 bytes from windows8.tarh.local (192.168.78.48): icmp_req=3 ttl=128 time=0.486 ms
8980 bytes from windows8.tarh.local (192.168.78.48): icmp_req=4 ttl=128 time=0.441 ms
8980 bytes from windows8.tarh.local (192.168.78.48): icmp_req=5 ttl=128 time=0.513 ms
8980 bytes from windows8.tarh.local (192.168.78.48): icmp_req=6 ttl=128 time=0.538 ms
8980 bytes from windows8.tarh.local (192.168.78.48): icmp_req=7 ttl=128 time=0.505 ms

Работает. Включаем автозагрузку у пары виртуалок и отправляем хост-систему в ребут. После загрузки имеем:
Код:
root@tarh-cloud:~# ip link
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether a0:36:9f:02:e1:22 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq master br_lan state UP mode DEFAULT qlen 1000
    link/ether a0:36:9f:02:e1:23 brd ff:ff:ff:ff:ff:ff
4: wlan0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN mode DEFAULT qlen 1000
    link/ether 24:0a:64:0f:4a:66 brd ff:ff:ff:ff:ff:ff
5: br_lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP mode DEFAULT
    link/ether a0:36:9f:02:e1:23 brd ff:ff:ff:ff:ff:ff
6: vnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast master br_lan state UNKNOWN mode DEFAULT qlen 500
    link/ether fe:54:00:26:6b:8e brd ff:ff:ff:ff:ff:ff
7: vnet1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc pfifo_fast master br_lan state UNKNOWN mode DEFAULT qlen 500
    link/ether fe:54:00:59:bb:8e brd ff:ff:ff:ff:ff:ff
root@tarh-cloud:~#

Вроде работает.

Остался один только гейт. Сейчас на гейте пока нет JF. Пока что есть отдельно стоящий интерфейс, смотрящий в WAN, и есть бридж, в который включены интерфейс wi-fi адаптера и интерфейс ethernet, смотрящий в локалку. То есть, клиенты wi-fi включены в локалку скозняком. Они ипользует dhcp из локалки, в том числе. Поскольку у wi-fi нет JF, то возникает вопрос, как это всё реорганизовать. Еще раз напомню, бридж берет себе значение MTU по интерфейсу, включенному в бридж, с минимальным MTU. Смотрящий в WAN интерфейс трогать не нужно. С mtu на wi-fi сделать ничего нельзя.

И здесь, внимание, вопрос.
Стало быть, что делать-то? Отрывать интерфейс wi-fi от бриджа и разруливать связь между проводной сетью и беспроводной с помощью маршрутизации? Или есть еще варианты? Подскажите, кто в курсе.

_________________
It's dolomite, baby! (c)



Партнер
 

Member
Статус: Не в сети
Регистрация: 06.07.2004
Откуда: РФ
Фото: 6
targitaj писал(а):
В случае свитча у меня было включено сразу.

Наврал. У меня SLM2008T из серии Cisco SG200-08 8-Port Gigabit Smart Switch и потребовалось руками выставить MTU для каждого порта.

Добавлено спустя 1 час 3 минуты 40 секунд:
Пришел к мысли, что надо wlan интерфейс отрывать от бриджа с проводными подключениями и делать для него отдельный бридж. А потом уже рулить. Например, виртуальную машину с ролью "сетевой шлюз" включать в оба этих бриджа и форвардить трафик через неё. Похоже, что это самый правильный способ.

Добавлено спустя 5 часов 13 минут 40 секунд:
Надо уточнить несколько моментов.
Гейт внедрен и работает уже пару лет. Вай-фай на нем реализован на простой PCI карте. Главная особенность гейта заключается в том, что оно не поддерживает аппаратную виртуализацию. По этой причине. Зато низкое энергопотребление и сетевуха Intel на борту.
СБ был собран недавно и на нём тоже есть wi-fi. По этой причине. Машинка изначально бралась под виртуализацию. По идее, СБ заменит собой машину Гейт, в том числе.

В общем, получилось мне запустить отдельный бридж на СБ для работы wi-fi.
/etc/network/interfaces
Код:
auto      lo   eth0 eth1 br_lan br_wlan
allow-hotplug      eth0 eth1

iface lo inet loopback

iface eth0 inet manual

iface eth1 inet manual

iface wlan0 inet manual

iface br_lan inet dhcp
   bridge_ports eth1
   bridge_stp on
   bridge_fd 0
   pre-up ifconfig eth1 mtu 9000

iface br_wlan inet manual
   bridge_ports wlan0
#   bridge_stp on
#   bridge_fd 0
   up /usr/sbin/brctl setageing br_wlan 0
   up /usr/sbin/brctl stp br_wlan off

/etc/hostapd/hostapd.conf
Код:
interface=wlan0
bridge=br_wlan

В результате имеем
Код:
root@tarh-cloud:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether a0:36:9f:02:e1:22 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq master br_lan state UP qlen 1000
    link/ether a0:36:9f:02:e1:23 brd ff:ff:ff:ff:ff:ff
4: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br_wlan state UP qlen 1000
    link/ether 24:0a:64:0f:4a:66 brd ff:ff:ff:ff:ff:ff
5: br_lan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc noqueue state UP
    link/ether a0:36:9f:02:e1:23 brd ff:ff:ff:ff:ff:ff
    inet 192.168.78.35/24 brd 192.168.78.255 scope global br_lan
6: br_wlan: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
    link/ether 24:0a:64:0f:4a:66 brd ff:ff:ff:ff:ff:ff
7: mon.wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UNKNOWN qlen 1000
    link/ieee802.11/radiotap 24:0a:64:0f:4a:66 brd ff:ff:ff:ff:ff:ff

Обращаю ваше внимание на отсутствие ip адреса у wi-fi интерфейса/бриджа. Это ключевой момент.

Добавлено спустя 1 час 38 минут 31 секунду:
Выяснился любопытный момент в работе JF на виртуалках. Напомню, на бридже в хост-системе выставлено MTU 9000
Код:
root@tarh-core:~# ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:6b:9e:63 brd ff:ff:ff:ff:ff:ff
    inet 192.168.78.41/24 brd 192.168.78.255 scope global eth0
3: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 52:54:00:76:51:b8 brd ff:ff:ff:ff:ff:ff


root@tarh-core:~# ping -s 65507 tarh-dlna
PING tarh-dlna.tarh.local (192.168.78.46) 65507(65535) bytes of data.
65515 bytes from tarh-dlna.tarh.local (192.168.78.46): icmp_req=1 ttl=64 time=0.599 ms
65515 bytes from tarh-dlna.tarh.local (192.168.78.46): icmp_req=2 ttl=64 time=0.906 ms
65515 bytes from tarh-dlna.tarh.local (192.168.78.46): icmp_req=3 ttl=64 time=0.652 ms
^C
--- tarh-dlna.tarh.local ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.599/0.719/0.906/0.133 ms


root@tarh-core:~# ping -s 65508 tarh-dlna
WARNING: packet size 65508 is too large. Maximum is 65507
PING tarh-dlna.tarh.local (192.168.78.46) 65508(65536) bytes of data.
ping: local error: Message too long, mtu=1500
ping: local error: Message too long, mtu=1500
^C
--- tarh-dlna.tarh.local ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 999ms

root@tarh-core:~#

_________________
It's dolomite, baby! (c)


 

Member
Статус: Не в сети
Регистрация: 06.07.2004
Откуда: РФ
Фото: 6
Вчера копировал с ББ (винда 8.1) на СБ (samba на debian7) файл размером 30 гигабайт и обратил внимание на интересный момент. Скорость копирования стабильно держалась на отметке 116 мегабайт в секунду. Если я правильно помню, то до перевода на MTU 9000 скорость держалась обычно в диапазоне 80-90 мегабайт в секунду.

Теперь надо на ББ и СБ сделать бондинг. Свитч у меня поддерживает 802.3ad... Сейчас в СБ стоит Intel I350-T2, вторая такая карта лежит пока, поставлю в ББ. Интересно, сколько можно выжать из аггрегации 2 линков по гигабиту при MTU 9000.

ЗЫ. Второй интересный момент. Вчера же перевел СБ на mtu 1500, для эксперимента, и скорость копирования этого же файла упала до 11 мегабайт в секунду. То есть, где-то линк срезало до 100 мегабит.

_________________
It's dolomite, baby! (c)


 

Member
Статус: Не в сети
Регистрация: 20.05.2007
Откуда: Россия
targitaj писал(а):
Интересно, сколько можно выжать из аггрегации 2 линков по гигабиту при MTU 9000.

x2 от того, что есть (230 мегабайт в секунду). Если дисковая система конечно позволит.


 

Member
Статус: Не в сети
Регистрация: 06.07.2004
Откуда: РФ
Фото: 6
yorka писал(а):
x2 от того, что есть (230 мегабайт в секунду). Если дисковая система конечно позволит.

Одна беда - баг не позволяет нормально работать бондингу в бридже. Точнее, на хост-системе оно работает, в виртуалках на этом бридже сети нет. И это пичалька...

_________________
It's dolomite, baby! (c)


 

Member
Статус: Не в сети
Регистрация: 06.07.2004
Откуда: РФ
Фото: 6
Надо будет попробовать продвинуться дальше в этом направлении.

_________________
It's dolomite, baby! (c)


Показать сообщения за:  Поле сортировки  
Начать новую тему Новая тема / Ответить на тему Ответить  Сообщений: 6 
-

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB | Kolobok smiles © Aiwan