от Kalin Sabevski(23-01-2010)

рейтинг (12)   [ добре ]  [ зле ]

Printer Friendly Вариант за отпечатване



Как да обединим няколко мрежови интерфейса в един под FreeBSD 8.0

Замисляли ли сте се как може да обедините няколко мрежови интерфейса в един виртуален, за да постигнете по-голям капацитет на трафика, и по-голяма мрежова ефективност към вашият сървър. Или колко добре бихте се почувствали ако имате няколко мрежови интерфейса, и въобще не ви пука дали един, два или три са отпаднали, защото вашата машина продължава да е „жива” и всичките ви клиенти са доволни. Ако това е така тази статия е точно за вас:

В настоящата статия ще предположим че разполагаме с пет мрежови интерфейса от em0 до em4 по 1000 Мбт. всеки. Самия принцип на работа с повече или по-малко интерфейси е идентичен. Първоначално ще разгледаме случая в който искаме да обединим всичките пет интерфейса в един (Link Aggregation), след което ще разгледаме и случая в който искаме всички интерфейси да работят заедно и когато един отпадне, автоматично следващия интерфейс да поеме трафика на отпадналия (Failover).

Да престъпим към работа:

1.FreeBSD има така наречения „lagg” интерфейс. Lagg интерфейса позволява на FreeBSD да обедини няколко физически интерфейса в един виртуален. За да го активираме е необходимо да заредим модула „if_lagg” по следния начин:

# kldload if_lagg

За да се запази зареждането на модула и след като рестартираме системата е необходимо да добавим малък запис в /boot/loader.conf, по следния начин.

# echo 'if_lagg_load="YES"' >> /boot/loader.conf

Ако мислите да прекомпилирате свой собствен кърнъл добавете следващата линия в конфигурационния файл на кърнъла.

device lagg

2.Следващата стъпка е да създадем така наречения „lagg” интерфейс. Тук е момента да отбележим, че не е необходимо да задаваме IP адрес на нито един от интерфейсите, а само да ги вдигнем. И накрая създаваме нов виртуалния интерфейс и в него добавяме интерфейсите които желаем, както и му назначаваме IP адрес.

а.) вдигаме интерфейсите

# ifconfig em0 up
# ifconfig em1 up
# ifconfig em2 up
# ifconfig em3 up
# ifconfig em4 up

б.)създаваме нов виртуален интерфейс

# ifconfig lagg0 create

в.)добавяме интерфейси и IP на виртуалния интерфейс

# ifconfig lagg0 laggproto lacp laggport em0 laggport em1 laggport em2 laggport em3 laggport em4 192.168.0.2 netmask 255.255.255.0

Нека разгледаме по-подробно горния ред , кое какво значи във него.

* lagg0: Виртуален интерфейс
* laggproto lacp: Протокол на интерфейса и неговата опция по- надолу са описани възможните опции и тяхното значение.


failover
Изпраща и приема трафика през главния порт на виртуалния интерфейс (в нашия случай интерфейс em0), ако главния порт отпадне следващия активен порт става главен и трафика се пренасочва през него. Първия добавен порт е винаги и главен порт (в нашия случай отново интерфейс em0). Всеки порт добавен след това се използва за поддържащ порт ( в нашия случай интерфейси от em1 до em4)
lacp
Поддържа IEEE 802.3ad (Link Aggregation Control Protocol LACP) и Marker Protocol (MP). Тази опция на протокола обединява няколко порта с една и съща скорост установени във фул дуплекс мод в една обща група (Link Aggregation Group). Трафика в тази група ще се балансира между портовете в нея, и по този начин ще се постигне капацитет на трафика който е сбор от общият капацитета на всички портове в групата. В повечето случаи групата е една за всички портове. Когато се получи физическо прекъсване на един от портовете, групата автоматично се установява в новата конфигурация.
fec
Поддържа Cisco EtherChannel
loadbalance
Балансира изходящият трафик през активните портове като използва „hashed protocol header information” и приема входящ трафик от всеки активен порт.
roundrobin
Разпределя изходящ трафик през всички активни портове като изрежда кръгово всеки порт в групата и приема входящ трафик от всеки активен порт.


* laggport em0: Вашия първи интерфейс.
* laggport em1: Вашия втори интерфейс.
* laggport em2: Вашия трети интерфейс.
* laggport em3: Вашия четвърти интерфейс.
* laggport em4: Вашия пети интерфейс.
* 192.168.0.2: IP адрес на виртуалният интерфейс lagg0.
* netmask 255.255.255.192: Мрежова маска на виртуалният интерфейс lagg0.

г.) ако желаете виртуалния интерфейс да поддържа така наречения “Failover Mode” (както по горе споменахме това е ситуацията в която главният порт отпада и следващия активен порт поема неговите задължения) е необходимо да изпълним следната команда.

# ifconfig lagg0 up laggproto failover laggport em0 laggport em1 laggport em2 laggport em3 laggport em4 192.168.0.2 netmask 255.255.255.0

3. Как да запазим всичко това след рестартиране на системата. Просто добавяме следния запис в /etc/rc.conf:

# vi /etc/rc.conf

ifconfig_em0="up"
ifconfig_em1="up"
ifconfig_em2="up"
ifconfig_em3="up"
ifconfig_em4="up"
cloned_interfaces="lagg0"
ifconfig_lagg0="laggproto failover laggport em0 laggport em1 laggport em2 laggport em3 laggport em4"
ipv4_addrs_lagg0="192.168.0.2/24"
defaultrouter="192.168.0.1"

P.S Не забравяйте да замените стойностите на ipv4_addrs_lagg0 и defaultrouter, с вашите лични мрежови настройки ( IP адрес и гейтуей).



<< FreeBSD 8.0 Обединение на няколко мрежови интерфейса в един | RAID0 под FreeBSD 8.0 за начинаещи. >>