Açık kaynak kodlu router (Quagga)

Özgür yazılımlar gerek açık kaynak kodlu olması gerekse güvenlik açısından kolay geliştirilebilir olması ve ayrıca tabiki adından dolayı ücretsiz olması, onlara olan ilginin artmasını ve kısa sürede adının duyulmasını sağlamıştır. 400-500 mbit’lik Kampüs networklerde dahi bu tür yazılımların uygulanabilir olması,popularitesini daha da arttırarak yaygınlaşmasına neden olmuştur.Bununla beraber bu açık kaynak kod piyasasının network ayağında, router pazarında bulunan farklı marka ve modellerin yanında, açık kaynak kodlu yazılımlara duyulan ilgilinin artması ve bu yazılımların kullanıma özel yazılmış sürümlerinin üretilmeye başlamasıyla, yönlendirme sistemlerinde de UNİX tabanlı sistemler ön plana çıkmıştır.

Bunlardan biri olan “Quagga” açık kaynak kodlu hizmet veren bir yönlendirme protokolüdür. Ayrıca bu uygulama OSPF,IS-IS, BGP ve RIPgibi temel routing protokollerini desteklemektedir. Quagga, gerek uygulama ortamında gerekse laboratuvar ortamında GNU lisansıyla istenildigi kadar ve istenilen yönlerde router eklemeye olanak tanır.

Gelelim bu yazılımın kurulumuna:
Bahsettiğim yazılım açık kaynak kodlu bir uygulama olduğu için kurulumunda diğer linux paketlerinden farklı bir aşamaya gerek duyulmamaktadır. Fakat yine de kurulumun yeterince açıklayıcı olması için -standart linux paketlerinde olduğu gibi- birkaç farklı şeklinde anlatmaya çalışacağım.

Birinci yol;
Stable bir quagga yazılımı kurabilmek için, öncelikle “wget” komutuyla quagga’nın stable çalışan sürümü linux makinaya indirilir. (yazılımın şuanki güncel stable versiyonu 0.99.16 sürümüdür) Daha sonra indirilen paket “tar zxvf quagga-0.99.16.tar.gz” komutuyla sıkıştırılımış dosya halinden çıkartılır. Çıkartılan bu dosyaların bulunduğu dizine gidilerek standart bir linux paket kurulumunda olduğu gibi sırasıyla;
cd quagga-0.99.16
./configure
make
make install
Komutlarıyla önce derlenir daha sonra en son yazılan make install komutuyla dosyalar çalışır hale getirilir.
Bu aşamalardan önce eğer sisteminiz pakedin kuruluma hazır değilse; update edilebilen Linux işletim sistemine geçerli bir gcc compiler yüklenir ardından, bulunan C derleyici kütüphanesi en son güncelleştirmesi geçerli “yum update” komutlarıyla yapılmalıdır.

İkinci Yol:
yum search quagga” komutuyla update edilebilen Linux işletim sistemi, güncelleştirme depolarından var olan quagga yazılımının sürümlerini arar.(eğer istenilen quagga hakkında daha ayrıntılı bilgi elde etmek istenirse “yum info quagga” komutuyla yazılımın daha detaylı bilgilerine erişilebilir.) En son olarak ise “ yum install quagga” komutu ile depoda bulunan quagga sürümü bilgisayara indirilerek yüklenmeye başlanır. Yüklenen yazılım standart yazılım yüklenmesi gibi  “/etc/quagga “ dizinini oluşturarak içine gerekli  *.conf uzantılı (çoğu sample.conf) uzantılı dosyalarını oluşturur.(Yapılandırma kısmında gerektiği zaman bu örnek dosyalardan da yardım alınabilir.) Ayrıca linux sistemlerin bilindik yardım arayüzü olan MANsayfaları da istenilen *.conf dosyasının, * kısmı yerindeki kelime man sayfasına sorularak gerekli ve ayrıntılı yapılandırma komutlarına ve kullanım şekillerine ulaşılabilir.

Paketimiz kurulduktan sonra ” vim /etc/services” komutuyla elde edilen çıktıda;
zebrasrv      2600/tcp            # zebra service
zebra            2601/tcp            # zebra vty
ripd               2602/tcp            # RIPd vty
ripngd          2603/tcp            # RIPngd vty
ospfd            2604/tcp            # OSPFd vty
bgpd             2605/tcp            # BGPd vty
ospf6d         2606/tcp            # OSPF6d vty
ospfapi        2607/tcp            # ospfapi
isisd              2608/tcp            # ISISd vty

Quagga paketinin kurularak işletim sisteminin ilgili yerlerde farklı port numaralarıyla servislerini oluşturduğu görülebilir.
Kurulum kısmını bitirdikten sonra artık kurulan servislerin amacına uygun olarak çalışması için doğru şekilde yapılandırılması gerekmektedir.Bu yüzden öncelikle kurduğumuz paketin içinden çıkan ve servislerin çalışması için temel ayarların bulunduğu /etc/quagga/ dizinin altında bulunan “zebra.conf” dosyası yapılandırılır. Bu yapılandırmada standart bir network cihazını telnet’e açmak için şifre, ip adresi gibi temel bilgilerin yapılandırma(zebra) dosyasına girilmesi gerekir. Önemli bir aytıntı olarak ise; Unix sistemleri yönetenlerin çokça aşina olduğu; eğer bir servis konfigurasyon dosyasında bir değişiklik yapıldıysa mutlaka yapılanan servis yeniden başlatılmalıdır, aksi takdirde sistem yapılan değişiklikleri algılayamayacaktır.

Önümüzdeki yazılarda, Quagga yazılımı kullanılarak yapılan örnek bir routing topolojisi üzerinde gerekli konfigürasyonlarını ve temel routing kontrol komutlarıyla Quagga’mızın gerçek bir router gibi çalıştığını beraber göreceğiz.