|
|
|
СЪВЕТИ
|
FreeBSD 8.0 Обединение на няколко мрежови интерфейса в един
|
|
|
|
|
|
от Kalin Sabevski(3-03-2010)
рейтинг (34)
[ добре ]
[ зле ]
Вариант за отпечатване
Как да обединим няколко мрежови интерфейса в един под 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.0: Мрежова маска на виртуалният интерфейс 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 адрес и гейтуей).
<< Електронен подпис за работа под Linux и OpenSSL | FreeBSD 8.0 Обединение на няколко мрежови интерфейса в един >>
|
|
|
|
|
Vlan ? От: FreeBSD На: 6-02-2010@22:32 GMT+2 Оценка: 1/НеутраленМного добро решение за port channel, въпроса ми е ако доставчика ти изпраща трафика по vlan, как ще го конфигурираш lagg интерфейса?
[Отговори на този коментар]
Към: Vlan ? От: shteryana На: 25-02-2010@12:58 GMT+2 Оценка: 1/Неутрален%ifconfig vlan create vlandev lagg0 vlan 5
[Отговори на този коментар]
OpenBSD От: SysAdmin На: 11-02-2010@15:39 GMT+2 Оценка: 1/НеутраленСъщото нещо го има в OpenBSD от години. Най-сетне го включиха и във FreeBSD. То доста неща приеха, няма лошо. Вижте следните команди и открийте седемте разлики :)
ifconfig em0 up
ifconfig em1 up
ifconfig trunk0 trunkport em0 up
ifconfig trunk0 trunkport em1 up
ifconfig trunk0 trunkproto roundrobin 10.14.15.27 netmask 255.255.255.0 up
Като че е по-четлив и ясен този формат на командите, не мислите ли?
[Отговори на този коментар]
Към: OpenBSD От: shteryana На: 25-02-2010@13:25 GMT+2 Оценка: 1/НеутраленАко трябва да бъдем точни lagg драйвера го има във FreeBSD от началото на 2007. :) Най-сетне публикуваха статия как се работи с него :) А защо се казва lagg, а не trunk, е накратко обяснено в комит логовете на OpenBSD, а по мейл листите я има и самата дискусия. Наистина е взет от OpenBSD, с изключение на LACP имплементацията, която беше взета във FreeBSD от NetBSD, и съответно портната, заедно с още някои добавки, от FreeBSD обратно в OpenBSD
[Отговори на този коментар]
Към: Към: OpenBSD От: bato_shmaizera На: 1-03-2010@16:25 GMT+2 Оценка: 1/Неутраленбрат...ти го закла... :-)
[Отговори на този коментар] Към: Към: Към: OpenBSD От: mpunov <misho< at >openbsd-bg__dot__org> На: 4-03-2010@16:05 GMT+2 Оценка: 1/Неутраленbato_shmaizera, тцтц :)
"брат...ти го закла... :-)"
само едно уточнение чисто формално, shteryana e девойка ;) и е права :)
[Отговори на този коментар] Към: Към: Към: Към: OpenBSD От: neo2shyalien <neo2shyalien< at >gmail< dot >com> На: 15-03-2010@7:24 GMT+2 Оценка: 1/Неутраленshteryana Respect
[Отговори на този коментар] Към: Към: OpenBSD От: SysAdmin На: 15-03-2010@11:21 GMT+2 Оценка: 1/НеутраленБраво! Чела си дискусиите по въпроса. Точно това исках да изтъкна, че първоначално се появява преди доста време в OpenBSD. Няма лошо, точно така трябва да работи Open Source обществото. А това, че нямало статии, не е вярно. Статии дал Господ, само че не на български. То какво ли има на български, а и не е нужно, след като по принцип цялата OS е на английски, включително и помощните страници.
А останалите тъпи коментари, че някой бил заклал някого, няма да коментирам. Тук не е викторина, или състезание, никой не "заколва" никого, нито дават награди. Нашите награди ги дават на 25-то (или на 15-то за някои) число от месеца :)
Единствено важното е, че има и други, които четат. Бях почнал да си мисля, че този сайт е поредния, който не си струва да се посещава, поради ниското качество на новините и многото пуберчета-тролчета, които хал хабер си нямат нито от системна администрация, нито от програмиране, нито даже от работа с OS с отворен код, но се пъхат навсякъде...
Аз лично ползвам trunk и lagg от 2008 и съм много доволен от идеята. Не е зле да се отбележи, че дори и презираната или прехвалената от много ламерчета Windows OS също има подобни възможности, реализирани с драйвери от производителя, наречена "network team" - такива драйвери и тулчета за конфигурирането им има от Intel, HP и др. производители, лошото е, че за разлика от свободната имплементация под *BSD са хардуерно зависими, не може да се прави network team между мрежови адаптери от различни производители, или каквито и да е.
[Отговори на този коментар] Към: Към: OpenBSD От: georgio <georgio__at__karnobat[ точка ]net> На: 5-04-2010@8:32 GMT+2 Оценка: 1/Неутраленкога ще го приемат и в линукс :)
[Отговори на този коментар] Към: Към: Към: OpenBSD От: shteryana <shteryana __@__ gmail__dot__com> На: 6-04-2010@11:04 GMT+2 Оценка: 1/НеутраленLinux-кия еквивалент се казва Ethernet bonding
[Отговори на този коментар] Към: Към: Към: OpenBSD От: dk На: 29-07-2010@3:01 GMT+2 Оценка: 1/НеутраленИзвинявам се много. Искам да защитя ламерчетата и т.н. Ако някой не си вре носа в нещо което не разбира, никога няма да го научи. В края на краищата училищата и курсовете дават само основите. Любознателните се учат цял живот. Вярно е, врат си носа, че даже и палави пръстчета, но бъдете снизходителни. Всички Рамбовци са били някога новобранци.
[Отговори на този коментар]
А дали се увеличава НАИСТИНА бандуита ??? От: BloodClot На: 25-05-2010@15:58 GMT+2 Оценка: 1/НеутраленА дали се увеличава НАИСТИНА бандуита ???
Един скриншот по време на трасфер на няколко ГБ файл би разсеял съмненията и доказал реално дали всичко по-горе работи...
С най-добри чуства,
Един невярваш
[Отговори на този коментар]
|
|
|
|
|
|
|
|