Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Первое, что мне бросилось в глаза в описании, – это была фраза: «Support Port-Base Trunking», интуитивно поняв, что это то, что мне нужно, я залез на веб-страницу настройки и выставил одну транкинговую группу из 1-го и 9-го портов.
Рисунок 2. Порты 1 и 9 находятся в режиме port trunking
(По непонятным для меня причинам, настройку транкинга портов с помощью протокола telnet разработчики почему-то не сделали.) Далее я установил вторую карточку на компьютер, подключаемый к коммутатору в качестве сервера, соединил всё хозяйство патчкордами, и в результате у меня получилась следующая схема соединений.
Рисунок 3. Схема соединений
Понимая, что само по себе железо работать не будет, я занялся поисками литературы и настройкой программного обеспечения. Основным документом, который частично помог мне разобраться с проблемой, оказался Linux Ethernet Bonding Driver mini-howto из комплектации ядра(v.2.4.27), находящийся по следующему пути: /usr/src/linux/Documentation/networking/bonding.txt. В сети этот документ можно найти по адресу [2]. Желая иметь монолитное ядро, я отказался от рекомендаций компилировать Linux bonding в виде модуля. Всё бы хорошо, но объединение каналов почему-то не работало как надо. При отключении кабелей от сетевых интерфейсов ядро Linux продолжало думать, что всё в порядке. Убедившись в правильности совета, я скомпилировал ядро повторно, выбрав «Bonding driver support» в качестве модуля в разделе «Network device support».
Рисунок 4. Выбор «Bonding driver support» в качестве модуля
После компиляции ядра я зашёл в директорию, где находится исходный файл ifenslave.с:
# cd /usr/src/linux/Documentation/networking
и скомпилировал из него утилиту ifenslave (которая «подключает» к общему интерфейсу bond0(bond1, ...) другие подчинённые интерфейсы) командой:
# gcc -Wall -Wstrict-prototypes -O -I/usr/src/linux/include ifenslave.c -o ifenslave
Получившийся файл я скопировал в директорию /sbin:
# cp ifenslave /sbin/ifenslave
Для организации работы с модулем и передачи ему параметров необходимо добавить следующие строчки в файл /etc/modules.conf:
alias bond0 bonding
options bond0 miimon=100 mode=0 downdelay=2000 updelay=5000
Параметры, естественно, можно задать другие, но об этом чуть позже. Чтобы было удобно воспользоваться стандартной командой:
/etc/rc.d/init.d/network (start|stop|restart...)
а не вводить каждый раз параметры вручную через ifconfig, следует создать следующие файлы (либо внести в них изменения, если файлы уже имеются):