İSTANBUL TEKNİK ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM FAKÜLTESİ LİNUX ÜZERİNDE ÇOKLU PROTOKOL ETİKET ANAHTARLAMANIN GERÇEKLENMESİ Bitirme Ödevi Damla Dönderdi 040080219 Bölüm : Bilgisayar Mühendisliği Anabilim Dalı: Bilgisayar Bilimleri Danışman : Yrd. Doç. Dr. Feza BUZLUCA Ocak 2014
İSTANBUL TEKNİK ÜNİVERSİTESİ BİLGİSAYAR VE BİLİŞİM FAKÜLTESİ LİNUX ÜZERİNDE ÇOKLU PROTOKOL ETİKET ANAHTARLAMANIN GERÇEKLENMESİ Bitirme Ödevi Damla Dönderdi 040080219 Bölüm : Bilgisayar Mühendisliği Anabilim Dalı : Bilgisayar Bilimleri Danışman : Yrd. Doç. Dr. Feza BUZLUCA Ocak 2014
I Özgünlük Bildirisi 1. Bu çalışmada, başka kaynaklardan yapılan tüm alıntıların, ilgili kaynaklar referans gösterilerek açıkça belirtildiğini, 2. Alıntılar dışındaki bölümlerin, özellikle projenin ana konusunu oluşturan teorik çalışmaların ve yazılım/donanımın benim tarafımdan yapıldığını bildiririm. İstanbul, 13.01.2014 Damla Dönderdi
LİNUX ÜZERİNDE ÇOKLU PROTOKOL ETİKET ANAHTARLAMANIN GERÇEKLENMESİ ( ÖZET ) Çoklu protokol etiket anahtarlama (MPLS) teknolojisi bilgisayar ağlarında bir düğümden diğerine yapılan yönlendirmenin uzun ağ adresleri veya karmaşık tablolar yerine 20 bitlik etiket değerine bakılarak yapılmasıdır. Bu sayede yönlendirme çok daha hızlı ve etkili bir şekilde gerçekleştirilebilir. Proje kapsamında MPLS, Linux işletim sistemi ile çalışan RG lerden (Residential Gateway) oluşan bir ağda benzer sistemlere uyarlanabilecek bir yapıda gerçeklenmiştir. Projede bu problem için daha önce gerçeklenen çözümler araştırılmış ve incelenmiş, mevcut sistem için en uygun olanı tespit edilmiş ve üzerinde çalışılan cihazda çalışır hale getirilmiştir. Ardından uygulanan çözüm detaylı olarak incelenmiş ve test edilmiştir. Yapılabilecek iyileştirmeler belirlenmiş ve uygulanmıştır. Etiket belirleme işleminin cihazın konsolunda komut satırında kullanıcı dostu bir arayüzle kolayca yapılabilmesi için kullanıcı uzayında gerçeklenmiş komut düzenini kullanan bir katman yazılmıştır. Farklı cihazlara, konsol bağlantısı gerekmeden yapılandırma yapılabilmesi için ethernet üzerinden TCP ile haberleşen bir masaüstü uygulaması yazılmıştır. Sistemde yapılan iyileştirmeler ve gerçeklenen yapılandırma yazılımları ayrı ayrı ve birlikte çalıştırılmış, test edilmiştir.
III IMPLEMENTING MULTI-PROTOCOL LABEL SWİTCHİNG ON LINUX ( SUMMARY ) Multiprotocol Label Switching (MPLS) technology is forwarding according to 20 bit labels instead of long network adresses or complex tables between nodes in a network. This way, routing becomes faster and effective. In this project, MPLS was implemented in a on a network with RGs (Residential Gateway) and will be able to implemented in similar systems. Previous solutions were researched and examined, best solution was chosen and implemented to the target device. Afterwards, this solution was analyzed and tested in detail. Improvements that can be applied were determined and applied. To be able to assign labels easily on command line of the device with a user-friendly user interface an application on userspace was implemented. To be able to configure different devices without need of serial connection, a desktop application which communicates the device with TCP was implemented. Improvements and applications were ran and tested separately and together.
IV İÇİNDEKİLER 1. GİRİŞ... 1 1.1. Konunun Tanıtımı... 1 1.2. Daha Önce Yapılmış Çalışmalar... 2 1.2.1. MPLS Yönlendirme... 2 1.2.2. Etiket Dağıtımı... 2 2. PROJENİN TANIMI VE PLANI... 3 2.1. PROJENİN TANIMI... 3 2.2. PROJE PLANI... 3 3. KURAMSAL BİLGİLER... 5 3.1. MPLS (MULTİ-PROTOCOL LABEL SWİTCHİNG) NEDİR?... 5 3.1.1. Kavramlar... 6 3.1.2. MPLS Etiketiyle Yönlendirme... 6 3.1.2.1. Etiket Ekleme... 6 3.1.2.2. Etiket Çıkarma... 7 3.1.2.3. Etiket Değiştirme... 7 3.1.3. Etiket Dağıtımı... 7 3.1.4. MPLS Ağındaki Cihazlar... 7 3.1.4.1. LER... 7 3.1.4.2. LSR... 7 3.1.5. MPLS Başlığı... 7 3.1.6. Etiket Yığını ve Tünel... 8 3.1.7. PHP (Penultimate Hop Popping)... 8 3.2. ÇALIŞMA ORTAMI... 8 3.2.1. Donanım... 8 3.2.2. Yazılım... 9 4. ANALİZ VE MODELLEME... 11 4.1. UYGUN GÖRÜLEN ÇÖZÜMLERİN ÇALIŞILAN SİSTEME UYARLANMASI... 11 4.1.1. MPLS... 11 4.1.2. LDP... 11 4.2. MPLS VE LDP NİN ANALİZİ... 11 4.2.1. MPLS için uygulanan testler... 11 4.2.1.1. Etiket Ekleme... 11 4.2.1.2. Etiket Çıkartma... 12 4.2.1.3. Etiket Değişimi... 12 4.2.1.4. Etiket Birleştirme... 13 4.2.1.5. Tünel... 14 4.2.1.6. PHP (Penultimate Hop Popping)... 14 4.2.2. LDP için uygulanan testler... 15 4.3. YAPILACAK İYİLEŞTİRMELERİN BELİRLENMESİ... 16 4.4. KONSOL UYGULAMASI... 16 4.5. MASAÜSTÜ UYGULAMASI... 18 5. TASARIM, GERÇEKLEME VE TEST... 19 5.1. RADİX AĞACI YAPISININ STATİK DİZİYE DÖNÜŞTÜRÜLMESİ... 19
V 5.2. KONSOL UYGULAMASI... 19 5.3. MASAÜSTÜ UYGULAMASI... 19 6. SONUÇ VE ÖNERİLER... 20 7. KAYNAKLAR... 21