shipboard89 (shipboard89) wrote,
shipboard89
shipboard89

Categories:

Link Aggregation

Задача: Настроить агрегацию каналов для получения максимальной пропускной способности. Сеть ethernet, топология двойная звезда.

Схема сети:


Оборудование:
1) Обычные неуправляемые гигабитные длинковские свичи (2 штуки)
2) Хосты с двумя гигабитными сетевыми интерфейсами. Ось Debian Linux 5.0


Что и Как:

Агрегация каналов на втором уровне используется для повышения отказоустойчивости сети и для повышения ее пропускной способности. Реализовать избыточность можно различными способами, и в каждом конкретном случае можно решить какой из вариантов будет оптимальным.
Моя задача состояла в том, чтобы сделать сеть ВЫСОКОЙ пропускной способности для вычислительного кластера из 5 узлов на базе Debian Linux 5.0. Взвесив все возможные варианты, решили сделать все на топологии двойная звезда с двумя обычными свичами. Можно было было взять 1 умный свич, который держит какую-нибудь технологию для агрегации каналов (etherchannel например). Но экономически, более выгодно было взять 2 тупых свича. Кроме того, повышается отказоустойчивость и масштабируемость сети ( за счет количества портов) Да и просто напросто не нужен там умный свич.
А дальше все просто: на каждом компьютере настраиваем модуль ядра, который связывает физические интерфейсы в один логический. Режимы бондинга бывают разные, для нас подходит самый простой и очевидный: Round-robin - пакеты шлются по очереди: на первый интерфейс, на второй, на первый, на второй и т.д. аналогично, если связывать не 2 интерфейса а больше. Для повышения отказоустойчивости существуют две системы мониторинга состояния каналов. ARP Monitor и MII Monitor. Работать вместе они не могут, нужно выбрать что-то одно. ARP монитор периодически посылает ARP запросы одному или нескольким хостам, и в зависимости от того, получает он ответ или нет, делает вывод о состоянии канала. MII Monitor полагается только на состояние локального интерфейса, информацию о котором он получает от драйвера, либо делая запрос через ethtool, либо опрашивая device's MII register. Если система мониторинга узнает, что какой-то из каналов полег, то пакеты перестают посылаться через этот интерфейс, а идут через оставшиеся.


Конфигурирование:
1)Загружаем модуль ядра  bonding с соответствующими параметрами:
#modprobe bonding mode=balance-rr miimon=100 downdelay=200 updelay=200

mode=balance-rr - режим бондинга Round-robin
miimon=100 - состояние каналов будет определяться через каждые 100 милисекунд
downdelay=200 - через 200 милисекунд, после того, как MII Monitor зарегистрировал падение канала, интерфейс вырубается.
updelay=200 - через 200 милисекунд, после того как MII Monitor заригистрирует что канал поднялся, интерфей врубится.


2)Ставим ifenslave - утилита для добавления/удаления устройст в виртуальный канал
#apt-get install ifenslave

3)Поднимаем bond0
#ifconfig bond0 up

4)Скрепляем eth0 и eth1 в bond0
#ifenslave bond0 eth0 eth1

5)Назначаем сетевые настройки bond0
#ifconfig bond0 192.168.0.1/24

 В дебиане удобно, все эти параметры внести в одном файле /etc/network/interfaces


auto bond0
allow-hotplug bond0
iface bond0 inet static
                address 192.168.50.85
                netmask 255.255.255.240
        slaves eth0 eth1
        bond_mode balance-rr
        bond_miimon 100
        bond_downdelay 200
        bond_updelay 200


 Спасибо:

www.linuxfoundation.org/en/Net:Bonding - на этом сайте можно найти очень много подробной информации по этой теме.
Subscribe

  • Desktop

    Интересно, что подумают инопланетяне, пролетая мимо Земли?))) Люблю ночь...и электрический свет

  • Dynamic Host Configuration Protocol

    Задача: Настроить DHCP сервер, обслуживающий несколько локальных сетей. Схема сети: DHCP сервер находится в сети LAN2 и обслуживает клиентов…

  • NTP

    Задача: настроить синхронизацию часов компьютеров локальной сети под управлением Linux, с помощью NTP. Оборудование: Сервер:…

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic
  • 2 comments