Инструменты пользователя

Инструменты сайта


ru:software:freebsd:lagg_on_netgraph

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
ru:software:freebsd:lagg_on_netgraph [2015/07/19 00:19]
root [Этапы создания lagg на простом примере]
ru:software:freebsd:lagg_on_netgraph [2015/07/19 23:17] (текущий)
root [ng_lagg - if_lagg on netgraph]
Строка 1: Строка 1:
 ====== ng_lagg - if_lagg on netgraph ====== ====== ng_lagg - if_lagg on netgraph ======
-По неизвестной причине использование if_lagg и двух сетевых адаптеров igb на FreeBSD 10.1 amd64 приводило к большой нагрузке на CPU, потере пакетов и потере связи.\\+По неизвестной причине использование ​**if_lagg** и двух сетевых адаптеров igb на FreeBSD 10.1 amd64 приводило к большой нагрузке на CPU, потере пакетов и потере связи ​при приёме мультикаста с битрейтом свыше 100 мегабит.\\
 Реализация объединения сетевых адаптеров средствами netgraph не подвержена подобной проблеме.\\ Реализация объединения сетевых адаптеров средствами netgraph не подвержена подобной проблеме.\\
 +Результат совместим с **if_vlan** и по сути мало чем отличается от других интерфейсов в системе.\\
 **Cкрипт**:​ [[http://​netlab.linkpc.net/​download/​software/​FreeBSD/​ng_lagg/​ng_lagg.sh|ng_lagg.sh]]\\ **Cкрипт**:​ [[http://​netlab.linkpc.net/​download/​software/​FreeBSD/​ng_lagg/​ng_lagg.sh|ng_lagg.sh]]\\
 +**rc.d скрипт**:​ [[http://​netlab.linkpc.net/​download/​software/​FreeBSD/​ng_lagg/​ng_lagg|ng_lagg]]\\
  
  
Строка 16: Строка 18:
  
 == ВАЖНО! == == ВАЖНО! ==
-1. Имя интерфейса не должно содержать:​ "​."​ и ":"​.\\ +  - Имя интерфейса не должно содержать:​ "​."​ и ":"​. Это ограничение netgraph, подробнее:​ [[https://​www.freebsd.org/​cgi/​man.cgi?​query=netgraph&​sektion=4&​apropos=0&​manpath=FreeBSD+10.1-stable|man 4 netgraph]] 
-Это ограничение netgraph.\\ +  - Максимальное количество интерфейсов в LAGG - 64Это ограничение обусловлено константой **NG_ONE2MANY_MAX_LINKS** в файле /​usr/​src/​sys/​netgraph/​ng_one2many.h. Если вам требуется больше,​ то измените значение константы и пересоберите **ng_one2many**. 
-Подробнее:​ [[https://​www.freebsd.org/​cgi/​man.cgi?​query=netgraph&​sektion=4&​apropos=0&​manpath=FreeBSD+10.1-stable|man 4 netgraph]]\\ +  - В LAGG на базе netgraph можно добавлять только сетевые интерфейсы к которые работают с нодой **ng_ether**. Список доступных интерфейсов можно увидеть так:
- +
-2. В LAGG на базе netgraph можно добавлять только сетевые интерфейсы к которые работают с нодой **ng_ether**.\\ +
-Список доступных интерфейсов можно увидеть так:+
 <​code>​ngctl list | grep ether</​code>​ <​code>​ngctl list | grep ether</​code>​
 Если ничего нет, то убедитесь что нода **ng_ether** загружена,​ или загрузите:​ Если ничего нет, то убедитесь что нода **ng_ether** загружена,​ или загрузите:​
Строка 44: Строка 43:
 Проверки на принадлежность интерфейса к какому либо lagg на базе netgrapf не производится.\\ Проверки на принадлежность интерфейса к какому либо lagg на базе netgrapf не производится.\\
 Код просто отключает lower хук интерфейса не производя никаких проверок.\\ Код просто отключает lower хук интерфейса не производя никаких проверок.\\
 +
 +
 +==== rc.d скрипт ====
 +Для того чтобы интерфейс создавался при загрузке автоматически нужно:
 +  - сохранить rc.d скрипт [[http://​netlab.linkpc.net/​download/​software/​FreeBSD/​ng_lagg/​ng_lagg|ng_lagg]] в /​usr/​local/​etc/​rc.d/​
 +  - сохранить скрипт [[http://​netlab.linkpc.net/​download/​software/​FreeBSD/​ng_lagg/​ng_lagg.sh|ng_lagg.sh]] в /​usr/​local/​sbin/​
 +  - разрешить выполнение обоих скриптов (chmod +x)
 +  - добавить в /​etc/​rc.conf или /​etc/​rc.conf.local разрешение на его запуск и настройки:​
 +<​code>​ng_lagg_enable="​YES"​
 +ng_lagg_interfaces="​lagg0 xyzlagg"​
 +ng_lagg_lagg0="​em0 em1"
 +ng_lagg_xyzlagg="​xl0 igb1"
 +ifconfig_lagg0="​inet 192.168.11.77 netmask 255.255.255.0"​
 +ifconfig_xyzlagg="​inet 192.168.22.77 netmask 255.255.255.0"​
 +
 +vlans_lagg0="​vlan1234"​
 +create_args_vlan1234="​vlan 1234"
 +ifconfig_vlan1234="​inet 192.168.0.77 netmask 255.255.255.0"​
 +</​code>​
 +
 +
 +=== Замечания ===
 +  - Можно создавать сколько угодно интерфейсов,​ в каждом из них должен быть хотя бы один сетевой адаптер
 +  - Нельзя давать имена интерфейсам "​auto",​ так можно создать не более одного интерфейса,​ но по команде **stop** такой интерфейс не будет уничтожен.
  
  
Строка 63: Строка 86:
  
 ==== Замечания ==== ==== Замечания ====
-  * Настройка one2many отсутствует потому что после создания нода работает в режиме NG_ONE2MANY_XMIT_ROUNDROBIN для исходящего трафика,​ других приемлемых для lagg режимов у ноды нет. +  * Настройка ​**one2many** отсутствует потому что после создания нода работает в режиме NG_ONE2MANY_XMIT_ROUNDROBIN для исходящего трафика,​ других приемлемых для ​**lagg** режимов у ноды нет. 
-  * ng_one2many можно заменить на ng_bpf, и с помощью ассемблера BPF реализовать распределение исходящих пакетов по L2/L3/L4 адресам. Пример использования ng_bpf: [[ru:​software:​freebsd:​igmpproxy_on_netgraph|Замена igmpproxy на netgraph]]+  ​* **ng_one2many** можно заменить на **ng_bpf**, и с помощью ассемблера BPF реализовать распределение исходящих пакетов по L2/L3/L4 адресам. Пример использования ​**ng_bpf**: [[ru:​software:​freebsd:​igmpproxy_on_netgraph|Замена igmpproxy на netgraph]]
  
  
ru/software/freebsd/lagg_on_netgraph.1437265174.txt.gz · Последние изменения: 2015/07/19 00:19 — root