Debian Quagga ile BGP, OSPF, ISIS, RIP Routing
CLI Guru - Cisco Eğitim ve Danışmanlık Merkezi |

2007 yılından bu yana aktif olan ciscotr.com, kısa bir süre sonra " www.bilisim.pro " olarak devam edecektir.  
Mevcut mesajlarınız ve kullanıcı bilgilerinizle yenilenen sitemizde katılıma devam edebileceksiniz.

+ Konuyu Cevapla
Toplam 5 sonuçtan 1 ile 5 arasındakiler gösteriliyor.
Like Tree6Likes
  • 5 Post By Nexus
  • 1 Post By trunkmode
Debian Quagga ile BGP, OSPF, ISIS, RIP Routing

Merhabalar. Bu kısa sayılmayan yazıda unix tabanlı bir makinada dinamik yönlendirme protokollerinin nasıl yapılandırıldığına kısaca değineceğim. Unix tarafında cisco komutlarını görünce belki şaşıracaksınız. Bu yazıda sadece OSPF'i anlatacağım ve zamanla

  1. #1
    Nexus isimli Üye şimdilik offline konumundadır Administrator - Founder
    Üyelik tarihi
    May 2012
    Mesajlar
    1,995

    Standart Debian Quagga ile BGP, OSPF, ISIS, RIP Routing

    Merhabalar. Bu kısa sayılmayan yazıda unix tabanlı bir makinada dinamik yönlendirme protokollerinin nasıl yapılandırıldığına kısaca değineceğim. Unix tarafında cisco komutlarını görünce belki şaşıracaksınız. Bu yazıda sadece OSPF'i anlatacağım ve zamanla buraya BGP ve Rip'e ait configleri'de eklemeyi planlıyorum.

    Unix makinalarda dinamik yönlendirme protokollerini bir router'daki gibi çalıştırabiliyoruz. Orta ölçekli işletmelerde bu tip cihazlar ile voip pbx (iyi optimize edilmiş bir asterisk) , NAS , Web Sunucu (lighthttp),mini bir veritabanı, firewall+routing .... görevleri tek bir makina üzerinde birleştirilebilir.

    Bizim konumuz olan routing işlemi aynen routerlarda olduğu gibi kendisine ayrılan kaynak oranında bize performans verir. Yani ne kadar iyi donanım olursa o kadar routing performansı elde edilir.

    Çok da uzatmadan nasıl yapıldığını anlatmaya başlayalım :

    Unix tabanlı platform olarak yakın zamanda stabil sürümü duyurulan debian 7.0 wheezy'i seçtim. Çünkü kurulumu çok kolay. İnternetten 150 Mb civarı bir netinstall paketini indirip boot ettiğizde geri kalanını kendi netten çekip kuruyor.

    Bize bu çalışmayı yapabilmek için base sistem bir debian yeterli olacaktır .

    Kısaca topoloji :



    Cisco tarafında fa 0/0'a 192.168.0.200/24 ip adresini veriyoruz. İlave olarak Ospf domain'e redist edilecek 2 subneti temsil etmesi amacı ile 172.16.1.1/24 ve 10.10.10.1/24 ip adresli 2 adet loopback interface yapılandırıyoruz.

    Ciscoda son olarak basit OSPF yapılandırıyoruz :

    Kod:
    #Router ospf 10
       #network 192.168.1.0 0.0.0.255 area 0
       #router-id 2.2.2.2
       #redist connected subnets
       #passive-interface default
       #no passive-interface fa 0/0
    Gelelim unix tarafına :


    Base olarak kurulumu yapılmış olan makinaya ilave olarak telnet ve quagga paketlerini yüklememiz işimizi görüyor.

    Kod:
    ~#apt-get install telnet
    ~#apt-get install quagga  (kurulum  başlamazsa /etc/apt/sources.list dosyasındaki mirror'lara göz atın)

    Sonra topolojide cisco router'a Gns üzerinden bridge edilmiş olan eth1 interface'ini 192.168.0.11/24 ip adresi ile yapılandırıyoruz. Quagga'nın işini yapabilmesi için ipv4 forwarding'i enable etmemiz gerekiyor. (quagga ile ripng,ospfv3 vb. ipv6 protokoller çalıştırılacak ise ipv6 forwarding enable edilmelidir.)

    Biz her reboot işleminden sonra da kalıcı olacak şekilde ip forwardingi aktif hale getirelim.

    nano /etc/sysctl.conf ile konfigürasyon dosyasını açarak #net.ipv4.ip_forward=1 olan satırın başından # işaretini kaldıralım. Eğer bu satır yoksa oraya ekleyip kaydedip çıkalım.

    Sonra networking servisini restart edelim. ( Sanal pc'de arayüzler göçebilir , bu durumda makinayı reboot ediniz)

    Sıra geldi kurmuş olduğumuz quaggayı yapılandırmaya. Son derece basit...

    Quagga daemons ( /etc/quagga/daemons) dosyasında zebra ile birlikte kullanmak istediğimiz yönlendirme protokolü belirtiyoruz. Biz bu yazıda ospf'i seçtik...

    Olması gereken :

    Kod:
    zebra=yes
    bgpd=no
    ospfd=yes
    ospf6d=no
    ripd=yes
    ripngd=no
    isisd=no
    Sırada zebra ve ospf için config dosyası oluşturup editlemek var. Ancak bununla bile uğraşmaya gerek yok .

    /usr/share/doc/quagga/example/ dizininde zebra ve ospf için default conf dosyaları mevcut bunları alıp olması gereken dizine kopyalamamız ve sonrasında içlerinde bir kaç küçük değişiklik yapmamız yeterli olacaktır.

    Kod:
    [email protected]# cd /usr/share/doc/quagga/examples/
    Kod:
    [email protected]:/usr/share/doc/quagga/examples#ls -l 
    
    -rw-r--r-- 1 root root  655 Apr 28 16:58 babeld.conf.sample
    -rw-r--r-- 1 root root  582 Apr 28 16:58 bgpd.conf.sample
    -rw-r--r-- 1 root root 2801 Apr 28 16:58 bgpd.conf.sample2
    -rw-r--r-- 1 root root  805 Apr 28 16:58 isisd.conf.sample
    -rw-r--r-- 1 root root 1110 Apr 28 16:58 ospf6d.conf.sample
    -rw-r--r-- 1 root root  182 Apr 28 16:58 ospfd.conf.sample
    -rw-r--r-- 1 root root  422 Apr 28 16:58 ripd.conf.sample
    -rw-r--r-- 1 root root  390 Apr 28 16:58 ripngd.conf.sample
    -rw-r--r-- 1 root root  126 Apr 28 16:58 vtysh.conf.sample
    -rw-r--r-- 1 root root  385 Apr 28 16:58 zebra.conf.sample
    Kod:
    [email protected]:/usr/share/doc/quagga/examples# cp ospfd.conf.sample /etc/quagga/ospfd.conf
    [email protected]:/usr/share/doc/quagga/examples# cp zebra.conf.sample /etc/quagga/zebra.conf

    Kod:
    [email protected]:/usr/share/doc/quagga/examples# cd /etc/quagga/
    [email protected]:/etc/quagga# chmod -R 777  *.conf    ( isteğe bağlı olarak dosyalara tek tek yetkide verebiliriz biz burada dizindeki tüm conf dosyalarına yetki verdik)
    Quaggayı restart edelim ve cihazı reboot edelim:

    Kod:
    [email protected]:/etc/quagga# service quagga restart
    
    [email protected]:~# reboot now

    Cihaz açıldığında :

    [email protected]:~# telnet localhost zebra komutundan sonra karşınızda artık bir cisco router var. (Default telnet ve enable şifresi : zebra ) Ve yeterli olan yapılandırmaya ait running config dosyası aşağıdaki gibi.


    Kod:
    [email protected]:~# telnet localhost zebra
    Trying ::1...
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    
    Hello, this is Quagga (version 0.99.21).
    Copyright 1996-2005 Kunihiro Ishiguro, et al.
    
    
    User Access Verification
    
    Password:
    Router> en
    Password:
    
    Router# show run
    
    Current configuration:
    !
    hostname Router
    password zebra
    enable password zebra
    !
    debug zebra events
    debug zebra packet
    !
    interface eth0
     ipv6 nd suppress-ra
    !
    interface eth1
     ipv6 nd suppress-ra
    !
    interface eth2
     ipv6 nd suppress-ra
    !
    interface lo
    !
    ip forwarding   ( yukarıdaki herşey default durumda tek yapmanız gereken bu routerda ip forwardingi enable etmek ve varsa default route'i kaldırmak debugları enable etmek ise kurulum esnasında yardımcı olacaktır)
    !
    !
    line vty
    !
    end

    Zebra yapılandırması sadece bu kadar ... Yapılandırmayı kaydedip zebradan exit ile çıkıyoruz. Ospf'i yapılandırmak için kısa işlem adımları :
    Kod:
    [email protected]:~# telnet localhost ospfd ( başka protokol kullanılıyorsa telnet localhost <protokolün adı> komutu ile protokolü cisco routerdaki gibi yapılandırabiliriz)
    Trying ::1...
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    Hello, this is Quagga (version 0.99.21).
    Copyright 1996-2005 Kunihiro Ishiguro, et al.
    
    
    User Access Verification
    
    Password:zebra
    ospfd> enable
    Password:zebra
    
    ospfd# conf t
    ospfd(config)# debug ip ospf packet all
    ospfd(config)# debug ip ospf events
    ospfd(config)# int eth1
    ospfd(config-if)# ip ospf network broadcast
    ospfd(config)# router ospf
    ospfd(config-router)# network 192.168.1.0/24 area 0
    ospfd(config-router)# router-id 1.1.1.1
    ospfd(config-router)# do wr
    ospfd(config-router)# end
    ospfd#exit
    Hepsi bu kadar ancak burada route map veya prefix list ile route filtering işlemleride yapılabilmekte...

    Şimdi quaggayı restart ettiğimizde ospf processi başlayacak...

    Kod:
    [email protected]:~# service quagga restart
    Stopping Quagga monitor daemon: (waiting) .. watchquagga.
    Stopping Quagga daemons (prio:0): (waiting) .. ospfd (waiting) .. zebra (bgpd) (ripd) (ripngd) (ospf6d) (isisd) (babeld).
    Removing all routes made by zebra.
    Loading capability module if not yet done.
    Starting Quagga daemons (prio:10): zebra ospfd2013/06/05 16:43:50 OSPF: Router-ID[OLD:0.0.0.0]: Update
    2013/06/05 16:43:50 OSPF: Router-ID[NEW:0.0.0.0]: Update
    2013/06/05 16:43:50 OSPF: ospf_check_abr_status(): Start
    2013/06/05 16:43:50 OSPF: ospf_check_abr_status(): looked through areas
    2013/06/05 16:43:50 OSPF: ospf_check_abr_status(): bb_configured: 0
    2013/06/05 16:43:50 OSPF: ospf_check_abr_status(): bb_act_attached: 0
    2013/06/05 16:43:50 OSPF: ospf_check_abr_status(): areas_configured: 0
    2013/06/05 16:43:50 OSPF: ospf_check_abr_status(): areas_act_attached: 0
    2013/06/05 16:43:50 OSPF: Router-ID[OLD:0.0.0.0]: Update
    2013/06/05 16:43:50 OSPF: Router-ID[NEW:0.0.0.0]: Update
    .
    Starting Quagga monitor daemon: watchquagga.
    [email protected]:~#


    Hemen cisco router'a bakıyoruz :
    Kod:
    R1#show ip ospf neighbor
    
    Neighbor ID     Pri   State           Dead Time   Address            Interface
    1.1.1.1           1    FULL/BDR       00:00:35    192.168.0.11     FastEthernet0/0
    
    
    
    R1#show ip ospf database
    
                OSPF Router with ID (2.2.2.2) (Process ID 10)
    
                    Router Link States (Area 0)
    
    Link ID         ADV Router      Age         Seq#          Checksum  Link count
    2.2.2.2         2.2.2.2           84          0x80000008  0x006F04   1
    1.1.1.1         1.1.1.1           91          0x8000000D  0x002AF4   1
    
                    Net Link States (Area 0)
    
    Link ID             ADV Router      Age         Seq#          Checksum
    192.168.0.11    1.1.1.1            91          0x80000001  0x00F1B5
    
                    Type-5 AS External Link States
    
    Link ID         ADV Router      Age         Seq#          Checksum  Tag
    10.10.10.0      2.2.2.2         85          0x80000004   0x003C3B  0
    172.16.1.0      2.2.2.2         85          0x80000004   0x0015C2  0
    Görüldüğü üzere komşuluk kurulmuş update exchange işlemleri tamamlanmış. Ve connected subnetler redist edilmiş...

    Debian tarafına baktığımız da :
    Kod:
    [email protected]:~# ip route show
    default via 10.0.2.2 dev eth0
    10.0.2.0/24 dev eth0  proto kernel  scope link  src 10.0.2.15
    10.10.10.0/24 via 192.168.0.200 dev eth1  proto zebra  metric 20
    172.16.1.0/24 via 192.168.0.200 dev eth1  proto zebra  metric 20
    192.168.0.0/24 dev eth1  proto kernel  scope link  src 192.168.0.11

    Burada ise komşuluğun kurulduğunu , ve cisco tarafındaki connected subnetlerin metric 2 type olarak redist edildiğini görüyoruz.

    Kod:
    [email protected]:~# telnet localhost ospfd
    Trying ::1...
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    
    Hello, this is Quagga (version 0.99.21).
    Copyright 1996-2005 Kunihiro Ishiguro, et al.
    
    
    User Access Verification
    
    Password:
    ospfd> en
    ospfd# show ip ospf route
    ============ OSPF network routing table ============
    N    192.168.0.0/24        [10] area: 0.0.0.0
                               directly attached to eth1
    
    ============ OSPF router routing table =============
    R    2.2.2.2               [10] area: 0.0.0.0, ASBR
                               via 192.168.0.200, eth1
    
    ============ OSPF external routing table ===========
    N E2 10.10.10.0/24         [10/20] tag: 0
                               via 192.168.0.200, eth1
    N E2 172.16.1.0/24         [10/20] tag: 0
                               via 192.168.0.200, eth1
    
    ospfd# show ip ospf neighbor
    
        Neighbor ID Pri State           Dead Time Address         Interface            RXmtL RqstL DBsmL
    2.2.2.2           1 Full/DR       37.683s 192.168.0.200   eth1:192.168.0.11        0     0     0
    
    
    ospfd# exit
    Connection closed by foreign host.

    Kod:
    [email protected]:~# telnet localhost zebra
    Trying ::1...
    Trying 127.0.0.1...
    Connected to localhost.
    Escape character is '^]'.
    
    Hello, this is Quagga (version 0.99.21).
    Copyright 1996-2005 Kunihiro Ishiguro, et al.
    
    
    User Access Verification
    
    Password:
    Router> en
    Password:
    Router# show ip route
    Codes: K - kernel route, C - connected, S - static, R - RIP,
           O - OSPF, I - IS-IS, B - BGP, A - Babel,
           > - selected route, * - FIB route
    
    K>* 0.0.0.0/0 via 10.0.2.2, eth0
    C>* 10.0.2.0/24 is directly connected, eth0
    O>* 10.10.10.0/24 [110/20] via 192.168.0.200, eth1, 00:07:17
    C>* 127.0.0.0/8 is directly connected, lo 
    O>* 172.16.1.0/24 [110/20] via 192.168.0.200, eth1, 00:07:17
    O   192.168.0.0/24 [110/10] is directly connected, eth1, 00:11:39 ( burasıda connected muhabbetinden redist edilmiş  ancak problem yok debianın route table'a gitmez) 
    C>* 192.168.0.0/24 is directly connected, eth1


    Hepsi bu kadar ....Hızlı bir çalışma oldu imla hataları varsa kusura bakmayınız , umarım faydalı olur...

    Burada EIGRP protokolü'de çalıştırılabilir. Yani eigrp için illa cisco marka cihazlar olması şart değil sadece cisco ios olması şarttır. Unix based cisco ios'un unix bir makınada sanal çalıştırılması ile eigrp protokolü çatır çatır çalışıyor. Buna kısa bir örnek CCIE IOU labları ^^

    İyi çalışmalar.

    Murat KAYAPINAR
    Comm. Eng. & Elect. Eng.

  2. #2
    trunkmode isimli Üye şimdilik offline konumundadır Administrator
    Üyelik tarihi
    Jun 2008
    Mesajlar
    1,332

    Standart

    emeğine sağlık
    Nexus likes this.

  3. #3
    root isimli Üye şimdilik offline konumundadır Moderator
    Üyelik tarihi
    Jun 2007
    Bulunduğu yer
    Ankara
    Mesajlar
    1,409

    Standart

    Bazen quaqqa cisco router'dan daha iyi çalışıyor

  4. #4
    Nexus isimli Üye şimdilik offline konumundadır Administrator - Founder
    Üyelik tarihi
    May 2012
    Mesajlar
    1,995

    Standart

    Bgp full destekliyo.

    BGP multiple-instance + route-policy desteği var .

    BGP-view modda route'lar kernel route table'a gitmemesine rağmen path selection'a etki edecek şekilde diğer routerlar ile prefix alışverişi devam edebiliyor . Bu özellik DDOS vs'ye karşı etkili olabilir.
    “Bir kez kaçar uçurtman, sonra gökyüzüne küser insan…”

  5. #5
    Viking isimli Üye şimdilik offline konumundadır Member
    Üyelik tarihi
    Nov 2010
    Mesajlar
    32

    Standart

    eline sağlık hocam.

+ Konuyu Cevapla

Bu Konuyu Paylaşın !

Bu Konuyu Paylaşın !

Yetkileriniz

  • Konu Acma Yetkiniz Yok
  • Cevap Yazma Yetkiniz Yok
  • Eklenti Yükleme Yetkiniz Yok
  • Mesajınızı Değiştirme Yetkiniz Yok