bilgiz.org

Bir Ağ Yönetim Sistemi : Guardilan

  • 7. KAYNAKÇA



  • Tarih26.12.2017
    Büyüklüğü53.33 Kb.

    Indir 53.33 Kb.

    AKILLI BANT GENİŞLİĞİ YÖNETİMİ


    1. ÖZET

    Bilgisayar ağlarındaki hızlı gelişime rağmen ağ yönetim sistemleri bu gelişimin gerisinde kalmaktadır. Ağların hızla gelişmesi, ağda oluşan trafik tiplerindeki çeşitlilik, ve kaynaklardaki kısıtlılık Servis Kalitesi konusunu daha önemli hale getirmiştir. Bu bildiride, İzmir Yüksek Teknoloji Enstitüsü’nün yerel bilgisayar ağı için Servis Kalitesi(QoS) mekanizmaları kullanılarak geliştirilen akıllı bant genişliği yönetim aracı sunulacaktır.



    2. GİRİŞ
    Internet’in kullanımı genişlerken, uzaktan öğrenim, video konferans, e-ticaret gibi yeni uygulamaların da geliştirilmesiyle daha yüksek bant genişliklerine ihtiyaç duyulmaktadır. Her yazılımın, bant genişliği, gecikme, gecikme sürelerindeki değişim ve bulunabilirlik açısından kendine özgü gereksinimleri olmaktadır.
    Internet Protokol (IP) tabanlı ağlar en uygun eforda servis sağlamaktadır. IP, paketlerin hedefe zamanında veya belli bir gecikme süresi içerisinde ulaşma garantisi vermez. Bazı paketler sıkışma nedeniyle kaybolabilir. Bütün paketler farklı ihtiyaçlar duyabilmekle beraber, eşit olarak ele alınmaktadır. Çoğu uyguluma için bu kabul edilebilir değildir. Servis Kalitesi kullanıcıların temel olarak servis kullanımlarının garantilenmesi ve daha iyi hizmet verilmesidir. Bu da ancak, veri akışının sınıflandırılarak belli kurallara göre öncelik verilmesiyle olabilmektedir. Geçmişte, bu sorunun en kolay çözümü mevcut bant genişliği kapasitesinin artırılmasıydı. Fakat bant genişliğini sürekli artırmak mümkün değildir. Bugüne kadar bant genişliklerinin kullanıcı ve trafik bazında ayarlanmasını sağlayan bir çok mekanizma geliştirilmiştir. Ancak kullanıcıların kullandıkları bant genişliğini el ile ayarlamak çok zor ve çok zaman gerektiren bir işlemdir. Bu nedenlerden dolayı ağ üzerinde Servis Kalitesini sağlamak için akıllı bir yönetime gereksinim duyulmaktadır.
    Bu projenin geliştirilme amacı yerel bilgisayar ağı üzerindeki trafiğin en iyi şekilde kullanımını sağlamaktır.

    3. SERVİS KALİTESİ NEDİR?
    Servis Kalitesi (QoS) birçok farklı teknolojiyi kullanan ve ağ üzerinde kabul edilebilir bir trafik kullanımı sağlayan bir tekniktir. Servis Kalitesi, bant genişliği, gecikme, paket kaybı gibi parametrelere sahiptir. Normalde, ilk gelen ilk servis edilir mantığı geçerlidir. Fakat Servis Kalitesi bir trafik polisi gibidir. Trafik polisi önceliği olmayan araçları bekletir, ambulansa ise yola devam etme izni verir. Dikkat edilmesi gereken nokta; Servis Kalitesi sıkışmaları önlemez veya düşürmez, trafikteki sıkışma anlarında sadece trafiğin önceliklere göre akışını sağlar.
    3.1 İki temel Servis Kalitesi tipi mevcuttur:

    Kaynak Rezervasyonu : Ağ kaynakları, bant genişliği kontrol politikasına bağlı olarak, uygulamaların Servis Kalitesi isteklerine göre ayrılmaktadır.

    Önceliklendirme : Ağ trafiği, bant genişliği politikasına bağlı olarak sınıflandırılmaktadır. Daha çok gereksinimi olan uygulamalara, bu sınıflandırma metoduyla öncelikli haklar tanınmaktadır.
    3.2 ‘tc’ Komutu ve SNORT
    Son zamanlardaki Linux çekirdeklerinde (2.4.20 ve üzeri), önceliklendirme mekanizmasının uygulanmasını sağlayan komutun adı ‘tc’ (traffic control) dir. ‘tc’ komutu başlıca kuyruk mekanizmalarıyla (qdiscs), sınıflarla (classes) ve filtreleme mekanizmalarıyla (filters) uğraşmaktadır. Bütün bunlar sisteme sırayla tc qdisc… , tc class… ve tc filter… şeklinde bildirilmektedir.
    Snort ise bir “Ağ Temelli Saldırı Tespit Sistemi” dır . GPL lisanslı olarak dağıtılmaktadır. Farklı platformlarda (UNIX, MS-Windows) çalışabilmekte olup modüler bir mimariye sahiptir [1]. Snort belirlenmiş kurallara göre ağ üzerindeki her paketi inceler ve belirlenmiş kural meydana geldiğinde gerekli uyarıyı ‘Snort uyarı’ (/var/log/snort/alert) dosyasına yazar [2].

    4. AKILLI BANT GENİŞLİĞİ YÖNETİM ARACININ GELİŞTİRİLMESİ
    İzmir Yüksek Teknoloji Enstitüsü yerel ağında 1000’e yakın kişisel bilgisayar kullanıcısı bulunmaktadır. Toplam bant genişliğinin 8Mbps olduğu düşünülürse, her kullanıcıya ortalama 8kbps bant genişliği düşmektedir. Ayrıca, mevcut bant genişliğinin büyük bir miktarı mp3, video, divx, vb. dosya download işlemleri ile tüketilmektedir. Bu durumda mevcut bant genişliğinin daha etkili kullanımını sağlamak için akıllı bant genişliği yönetim aracı geliştirilmiştir.
    Akıllı bant genişliği yönetim aracı şu görevleri yerine getirmektedir:


    • Kullanıcı bilgilerini ve kullanım politakılarını tutmak için basit bir veritabanı

    • Kullanıcı bant genişliği kullanımlarının hesaplanması

    • Kullanım kuralları

    • Bant genişliğini paylaştırmak için karar verme mekanizması

    • Bant genişliği kullanımlarını izlemek ve değiştirmek için yönetici ara yüzü


    Şekil-1. Bilgisayar Ağının Genel Görünümü



    5. MODÜLLER
    5.1 VERİTABANI
    Veritabanı Servis Kullanım Bulma Modülü, Java RMI Server ve Yönetici Arayüz Modülü ve Bant Genişliği Hesaplama ve Atama Modülü tarafından ortak olarak kullanılmaktadır.
    Veritabanı İsmi : Bandctl

    Tablo İsmi : Users

    Alanlar

    Özellikler

    uid:int

    ip: varchar

    up_min: int

    up_max: int

    down_min: int

    down_max: int

    prio: int

    serv1: boolean

    serv2: boolean

    serv3: boolean

    serv4: boolean serv5: boolean speed_down:int

    speed_up:int

    Manual: boolean


    Kullanıcı No

    Kullanıcı Ip Adresi

    Garantilenmiş upload bant genişliği

    Maksimum upload bant genişliği

    Garantilenmiş download bant genişliği

    Maksimum download bant genişliği

    Kullanıcı önceliği ( 1-5 )

    Servis 1 Kullanımı

    Servis 2 Kullanımı

    Servis 3 Kullanımı

    Servis 4 Kullanımı

    Servis 5 Kullanımı

    atanan download bant genişliği

    atanan upload bant genişliği

    atanan hızın türü, otomatik/el ile


    Tablo 1. Ortak veritabanı yapısı
    serv{1,2,3,4,5} alanlarında kullanıcının bu trafiği kullanıp kullanmadığını anlık olarak saklanır.
    5.2 SERVİS TİPİ TESPİT MODÜLÜ
    İlk olarak en çok kullanılan servisler belirlendikten sonra, bunlara kendi aralarında Tablo 2’ de görülen öncelikler verilmiştir. Bu öncelik değerleri bant genişliği paylaştırma algoritması tarafından kullanılacak olup ileride açıklanacaktır.


    Servisler ve öncelik katsayıları

    Servis1

    Servis2

    Servis3

    Servis4

    Servis5

    Yasak Site Ziyaretleri

    HTTP & FTP Kullanımı

    POP3 & SMTP

    .zip .rar vb. dosya transferleri

    .divx .mpeg vb büyük dosya transferleri


    0.05

    0.3

    0.3

    0.2

    0.15

    Tablo 2: Servisler ve öncelik katsayıları
    Ağ üzerindeki servis kullanımlarını izlemek içinse Snort kullanılmıştır. Tablo 2’ de görülen 5 farklı servis kullanımı için Snort programı ayarları şu şekilde yapılmıştır:

    Servis 1 : Yasak Site Ziyaretleri

    alert tcp any any->any any (content-list:"rule1.txt";msg:"rule1";)



    Servis 2 : HTTP ve FTP Kullanımı

    alert tcp any any -> any 80 (msg:"rule2";)



    Servis 3 : POP3 & SMTP

    alert tcp any any -> any 110 (msg:"rule3";)



    Servis 4 : .zip .rar vb. dosya transferleri

    alert tcp any any -> any any (content-list:"rule4.txt";msg:"rule4";)



    Servis 5 : .divx .mpeg vb büyük dosya transferleri

    alert tcp any any -> any any (content-list:"rule5.txt";msg:"rule5";)


    Kural1, kural4 ve kural5 yazı dosyasına kaydedilmiş kelime izlerini içeren paketler içindir. Kural2 ve kural3 ise çok kullanılan servis portlarını izlemek içindir. Belirlenen servislere göre Snort ağı izlemekte ve uyarı mesajları vermektedir. Tablo 3’ de yerel ağa bağlı olan 193.140.250.65 IP adresli istemci makinenin servis3 kullanımı için verilen uyarı mesajı görülmektedir.


    [**] [1:0:0] rule3 [**] [Priority: 0]

    05/27-14:25:39.705667 193.140.250.65:1150 -> 199.237.72.126:80

    TCP TTL:128 TOS:0x0 ID:3903 IpLen:20 DgmLen:40 DF ***A**** Seq: 0x89F2C9A9 Ack: 0xA3E619B1 Win: 0x42C8 TcpLen: 20

    Tablo3. Örnek Snort uyarı mesajı


    Tablo 3’ deki Snort uyarı mesajlarından gerekli kısımlar bir perl programı yardımıyla alınır ve veritabanına yazılır.
    5.3 JAVA RMI SERVER ve YÖNETİCİ ARAYÜZ MODÜLÜ
    Java Server veritabanındaki verileri göstermek ve bant genişliği ayarlarını sistem yöneticisinden almak için kullanılır. Java Applet ve RMI teknolojisi kullanılarak web desteği sağlanmıştır.
    Java Server, kullanıcıların bant genişliği kullanımlarını Hız Tespit Modülü’nden düzenli olarak alır ve bu verileri yönetici arayüzünde anlık olarak gösterir. Böylece kullanıcıların bant genişliği kullanımlarını ve ayrıca servis kullanım bilgilerini izlemek mümkündür. İstenilirse kullanıcı bant genişliği kullanım kısıtlamaları el ile de ayarlanabilir.

    Şekil-2. Java RMI Server ve Yönetici Arayüzü Veri Akış Şeması




    Şekil-3.Yönetici Arayüzü


    5.4. HIZ TESPİT MODÜLÜ
    Hız tespit modülü ağ üzerinde geçen her paketi inceler, her paketin boyutunu alarak download / upload türüne göre her kullanıcı için kaydeder. Hızdaki ani değişimler için alçak geçiren filtreleme kullanılmakadır [3]. Buna göre hız değeri en son on değerin ortalaması alınarak elde edilir.
    Her bir makine için bit/s cinsinden hesaplanan hız değerleri, Hız Tespit Modülünden Java RMI Server’a gönderilir.

    Şekil-4. Java RMI Server ve Hız tespit Modülü için Veri Akış şeması


    5.5 BANT GENİŞLİĞİ HESAPLAMA VE ATAMA MODÜLÜ
    Bant genişliği hesaplama modülü veritabanından gerekli bilgileri alarak, aşağıda açıklanan algoritma yardımıyla her kullanıcı için bir bant genişliği değeri hesaplar.
    5.5.1 ALGORİTMA

    Terimler ve kullanılan değişkenler:

    Toplam upload bant genişliği : total_up_bw

    Toplam download bant genişliği : total_dw_bw

    Üniversite kullanıcıları: C1, C2,..,Cn

    Her kullanıcı için servis kullanım değişkenleri:

    s1, s2, s3, s4, s5 }

    Her kullanıcı için öncelik değerleri :

    C1p, C2p,..., Cnp

    Servis toplam upload bant genişliği kullanımları :

    S1up, S2up, S3up, S4up, S5up

    Servis toplam download bant genişliği kullanımları :

    S1dw, S2dw, S3dw, S4dw, S5dw

    Servis öncelik değerleri: S1p, S2p, S3p, S4p, S5p

    Öncelik değerleri toplamı: Sp_total

    Kullanıcı öncelik değerleri toplamı: Cp_total

    Her servis için toplam kullanım değerleri:

    S1k, S2k, S3k, S4k, S5k

    Her kullanıcı için istenildiğinde el ile atanan maksimum upload hızı: C1m_up, C2m_up,...,Cnm_up

    El ile atanan upload hızların toplamı: M_up

    El ile atanan download hızların toplamı: M_dw

    El ile atama ayarlarını tutan alan: m, eğer m 0 değerini alırsa hız atama otomatik, 1 olursa el ile olacaktır.

    Otomatik atanan upload hızlarının toplamı: O_up

    Otomatik atanan download hızlarının toplamı: O_dw

    Her kullanıcı için istenildiğinde atanan maksimum download hızı: C1m_dw,C2m_dw,…,Cnm_dw

    Her kullanıcı için otomatik olarak atanan maksimum upload hızı: C1up, C2up,...,Cnup

    Her kullanıcı için otomatik olarak atanan maksimum download hızı:C1dw,C2dw,…,Cndw


    Hız Tespit Modülü Çalışma Algoritması:

    1. Manuel atamalar için toplam upload ve download bant genişliği değerleri hesaplanır.

    M_up =

    M_dw =




    1. Elde edilen toplamlar genel toplamdan çıkarılır, geriye kalan değer diğer kullanıcılar arasında otomatik olarak paylaştırılır.

    O_up = total_up_bw – M_up

    O_dw= total_dw_bw – M_dw




    1. Toplam servis kullanımları hesaplanır.

    S1k=,

    S2k =,

    S5k =



    Kullanılan servislerin öncelik değerleri toplanır.

    Sp_total =


    1. Servis kullanımlarına göre mevcut bant genişliği, kullanımdaki servisler arasında paylaştırılır.

    S1up = S1p / Sp_total * O_up

    S1dw= S1p / Sp_total * O_dw

    Her bir servis için bu tekrarlanır.





    1. Kullanıcı öncelik değerlerinin toplamı bulunur. Her bir kullanıcıya kullandığı servis için mevcut o servis kapatasitesinden kullanıcı önceliği ve toplam servis kullanımına göre bant genişliği atanır, atanan değerler toplanarak kullanıcı için toplam bant genişliği değeri bulunur.

    Cp_total =
    =[ (/ S1k ) +…+ (/ S1k ) ] * (S1up*/ Cp_total )

    =[ (/ S1k )+ …+ (/ S1k ) ] * (S1dw*/ Cp_total )


    1. Her kullanıcı için hesaplanan Ciup, Cidw değerleri veritabanına kaydedilir.

    2. Bant genişliği atama modülü ile otomatik ve el ile atanan değerler veritabanından alınarak tc komutu yardımıyla sistem yeni değerlerle konfigüre edilir.


    5.5.2 ALGORİTMANIN ÇALIŞMASINA ÖRNEK

    Sistemi kullanan aktif 3 kullanıcımız olsun (C1,C2,C3), birinci kullanıcı (C1), servis1 (C1s1), servis2 (C1s2), servis5 (C1s5) kullansın, ikinci kullanıcı (C2), servis2 (C2s2), servis3 (C2s3), servis4 (C2s4), üçüncü kullanıcı (C3), servis2 (C3s2), servis3 (C1s2), servis5 (C1s5) kullansın. Bu kullanıcıların öncelik değerleri sırasıyla 4, 5, 4 ve toplam bant genişliği de 500Kb (Upload), 1000Kb (Download) olsun.


    Tablo 1’e göre, her servisin öncelik değerleri sırasıyla 0.05, 0.3, 0.3 ve 0.15 tir. Toplam servis kullanım değeri 0.8, dolayısıyla servis1’in bant genişliği kullanım değeri 0.05/0.8*500 = 31.25Kb upload ve 0.05/0.8*1000 = 62.5Kb download’tur.
    Servis toplam kullanımları ise: servis1:1, servis2:3, servis3:2, servis4:0, servis5:2 dir. Bu durumda,
    Servis 1 = 31.25 kb (upload), 62.5 kb (download),

    Servis 2 = 187.5 kb (upload), 375 kb (download),

    Servis 3 = 187.5 kb (upload), 375 kb (download),

    Servis 4 = 0 kb (upload), 0 kb (download),

    Servis 5 = 93.75 kb (upload), 187.5 kb (download),
    Kullanıcı öncelik değerlerinin toplamı: 4+5+4 = 13

    Birinci kullanıcı için toplam upload bant genişliği=1/1*31.25+1/3*187.5+0+0+1/2*93.75 = 140,63

    Birinci kullanıcı için toplam download bant genişliği=1/1*62.5+1/3*375+0+0+1/2*187.5 = 281,26

    Görüldüğü gibi, servis1’i kullanan sadece 1 kullanıcı olduğundan servis1’e ayrılan bant genişliğinin tümünü kullanmaktadır.



    6. SONUÇ
    Bant genişliği yönetiminin otomatik ve manuel olarak yapılabilmesi sağlanmıştır. Kullanıcı sayısı ve kullanılan servisler sürekli büyürken, akıllı bant genişliği yönetiminin optimum çözümü getireceği düşünülmektedir. Geliştirilen akıllı bant genişliği mekanizması sayesinde toplam bant genişliği kullanımının belirli bir değerde tutulması ve trafik tiplerini önceliklendirmek suretiyle bant genişliğinin paylaştırılması sayesinde geniş alan ağı çıkışının kurum politikasına uygun olarak kullanılması sağlanmıştır.


    7. KAYNAKÇA

    [1] “The Need for QoS” White Paper. http://www.qosforum.com/
    [2] Gaur, N., “Snort: Planning IDS for Your Enterprise”, Temmuz 2001. http://www.linux.org/
    [3] Çağrıcı Gökhan, “QoS in IP Networks”, Mayıs 2002.








        Ana sayfa


    Bir Ağ Yönetim Sistemi : Guardilan

    Indir 53.33 Kb.