Маршрутизиране с Quagga, Linuxoid
OpenSource завинаги
Днешните мрежи често са сложни, с множество шлюзове и точки за връзка с Интернет. Използването на Quagga ще помогне за решаването на проблемите с маршрутизирането на IP пакети в разклонени мрежи.
Както знаете в Unix системите, настройките за статично маршрутизиране се правят с помощта на помощни програми iproute2 или route/ifconfig, включени в стандартната доставка на всеки разпределителен комплект. За мрежи с относително проста топология, в които маршрутната таблица е постоянна или рядко се променя, техните възможности са напълно достатъчни.
Ако маршрутът е променен (например маршрутизаторът не работи), необходимите промени в маршрутизиращите таблици на шлюзовете ще трябва да бъдат направени ръчно.
Разбира се, можете да напишете прост скрипт, който ще провери наличието на определен възел и, ако е необходимо, ще промени маршрута, но този метод не винаги работи и е много неудобен.
В същото време днес са налични редица протоколи за динамично маршрутизиране - RIP, OSPF, BGP, IGRP, EIRGP, IS-IS и други, чието използване освобождава администратора от необходимостта от постоянно ръчно регулиране на маршрутите и наблюдение на техните уместност. Тези протоколи позволяват на маршрутизаторите да си предават информация за текущата топология на мрежата, позволявайки на рутера да изчисли най-добрия маршрут. Като критерий се използват разнообразни параметри, които зависят от избрания протокол - брой междинни възли, честотна лента на канала, MTU, латентност и цена. Ако един от маршрутизаторите е недостъпен, протоколите за динамично маршрутизиране ви позволяват автоматично да коригирате таблиците на маршрутите.
Днес изборът на приложения, поддържащи протоколи за динамично маршрутизиране за Unix системи, е както следва:
- nx-маршрутизиран (Nexus Routing Daemon) - Поддържа протокол RIPv2;
- OpenBGPD/OpenOSPFD - внедряване на протоколи BGPv4 и OSPF за OpenBSD;
- BIRD (BIRD Internet Routing Daemon) - Поддържа статично маршрутизиране и протоколи BGPv4, RIPv2, OSPFv2/v3;
- Куага - Поддържа статична маршрутизация и протоколи BGPv4 и v4 +, RIP v1/v2/v3, OSPF v2/v3, IS-IS и MIB маршрутизация (ако демонът SNMP поддържа SMUX RFC1227).
Използвайки някое от тези решения, можете да превърнете обикновения компютър в напълно функционален рутер. Тъй като в моя случай инсталацията беше планирана на Ubuntu Linux, OpenBGPD веднага беше изхвърлен. Вариант nx-маршрутизиран малко функционален и освен това проектът е практически изоставен. Остава ПТИЦА и Куага. Само второто е налично в хранилището на Ubuntu Linux, но разработчиците на BIRD предлагат хранилища и пакети за Ubuntu/Debian (разбира се, не изключваме изграждането от източници). Например за Ubuntu 9.10 той може да бъде активиран чрез писане в /etc/apt/source.list:
Но по-нататък ще говорим за Quagga.
Инсталиране на Quagga на Ubuntu Linux
Проектът Quagga се основава на код от друг подобен проект на GNU Zebra, който престава да съществува през 2005 г. Необходимият пакет е достъпен в хранилищата на повечето дистрибуции на Linux, както и в портовете на FreeBSD, OpenBSD, NetBSD. Интегрирани Quagga и OpenSolaris. За да инсталирате Quagga на Ubuntu, просто въведете:
След изпълнение на командата в директорията / и т.н./quagga ще се появят два конфигурационни файла. Тук трябва да се отбележи, че характеристика на Quagga е да стартира отделен демон за всеки поддържан протокол, като основният контрол се извършва от зебра демона (ядрен демон), който представя необходимите API на други демони и възстановява маршрутната таблица. Статичните маршрути също се създават с помощта на зебра демона. Тази схема ви позволява лесно да добавите поддръжка за друг протокол, ако е необходимо, но наличието на няколко процеса и конфигурационни файлове го прави по-малко удобен за управление, тъй като първоначално командите се изпращат на демони, използвайки telnet. Този проблем се решава с помощта на терминала vtysh, който, свързвайки се към сокета на всеки работещ процес Quagga, действа като прокси за потребителски команди.