BAND GENİŞLİĞİ YÖNETİMİ Hakan KUTUCU İzmir Yüksek Teknoloji Enstitüsü Akademik Bilişim 2006 4. Bilgi Teknolojileri Kongresi 9-11 Şubat 2006 / Pamukkale Üniversitesi / Denizli
GİRİŞ Band genişliği nedir? Band genişliği, bir iletişim ortamının taşıyabileceği veri miktarını gösteren bir ölçüdür. Bilgisayar ağlarındaki haberleşme için band genişliği, saniyede iletilen bit sayısı ile verilir.
GİRİŞ 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. 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.
Neden Band Genişliği Yönetimi? 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. Çözüm ise internet trafiğini kontrol altına almak ve internet band genişliğini kısıtlamaktır. Bu kısıtlamayı yapan bazı donanımsal ve yazılımsal çözümler mevcuttur. Cisco, 3Com, Nortel, Allot, MS ISA Server, Smooth Traffic bu alanda hizmet vermektedir.
Neden Band Genişliği Yönetimi? Kampüs ağında mevcut band genişliğinin büyük bir miktarı yazılım, mp3, video, vb. dosya indirme işlemleri ile meşgul edilmektedir. Bu durumda mevcut band genişliğinin daha etkili kullanımını sağlamak için Band Genişliği Yönetim aracı geliştirilmiştir.
Band Genişliği Yönetimi için Sınıf Tabanlı Kuyruk Oluşturma Kullanımı Trafik kontrolü için iki temel birim vardır. Bunlar filtreleme ve kuyruklamadır. Filtreler trafiği kuyruğa yerleştirirler, bu kuyruklar trafiği toplayıp hangisinin önce, hangisinin sonra gönderileceğine ya da paketin gönderilmeyip kesileceğine (drop) karar verirler. Linux'un desteklediği bir çok kuyruklama disiplini vardır Token Bucket Filter (TBF) Hierarchical Token Bucket (HTB) Class Based Queue (CBQ) First in First Out (FIFO) Random Early Detection (RED) Stochastic Fairness Queuing (SFQ)
HTB (Hierarchical Token Bucket) HTB Martin Devera tarafından yazılmıştır. Basit parametler kümesine sahiptir. Konfigürasyonu kullanıcıyı sınırlamaz ve zorlamaz. HTB verilen bir hat üzerindeki giden trafiğin kontrolünü sağlar. Fiziksel bir hattın birçok daha yavaş hatmış gibi görünmesine (simulated link) ve farklı trafiklerin bu hatlardan gönderilmesine izin verir. HTB her sınıfa verilmiş olan servis kaynaklarının minimumunun verildiğinden emin olur. Eğer bir sınıf atanmış kaynaklardan daha azını kullanıyorsa ya da hiç birini kullanmıyorsa kalan band genişliği diğer sınıflar tarafından paylaşılır. Buna ödünç alma (borrowing) diyoruz.
HİYERARŞİK AĞAÇ İnternet trafiği şekillendirilmek isteniyorsa önce trafik ağacı iyice şekillendirilmelidir. Ağacın gövdesi maksimum band genişliğini temsil eder. Sınıf (class) adı verilen her dal babasının (parent) kullanılabilir band genişliğinin bir kısmını kullanır.
FİLTRELEME Filtreler sınıfların hangi paketleri değerlendirileceğinin belirlendiği bilgilerdir. U32 filtresi uygulamalarda en sık kullanılan filtredir. U32 paketleri başlığına (header) bakarak sınıflara ayırabilir. Temelde tüm filtreler içinde ; match ip src x.x.x.x/x : kaynak ip bu gruptan olursa match ip dest x.x.x.x/x : hedef ip bu gruptan olursa match ip sport xx : kaynak port bu porttan olursa match ip dport xx : hedef port bu porttan olursa şeklinde anahtarlar kullanılabilir.
ÖRNEK BİR UYGULAMA Aşağıdaki uygulama HTB kullanılarak yapılan basit bir trafik kontrol mekanızmasıdır. Öncelikle 256 Kbit lik bir internet çıkışının var olduğu varsayılmıştır. # tc qdisc add dev eth0 root handle 1: htb default 30 # tc class add dev eth0 parent 1: classid 1:1 htb rate 256Kbit burst 15K # tc class add dev eth0 parent 1: classid 1:10 htb rate 150Kbit ceil 256Kbit burst 15K # tc class add dev eth0 parent 1: classid 1:20 htb rate 50Kbit ceil 256Kbit burst 15K # tc class add dev eth0 parent 1: classid 1:30 htb rate 56Kbit ceil 256Kbit burst 15K
ÖRNEK BİR UYGULAMA # tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 80 0xffff flowid 1:10 # tc filter add dev eth0 protocol ip parent 1:0 prio 1 u32 match ip dport 21 0xffff flowid 1:20 Bu tanımlamalarla 1:10 sınıfının www (80) 1:20 sınıfının ise ftp (21) tarafından kullanacağı belirlenmiştir. Görüldüğü üzere sınıfın neyi işleyeceğini belirlemek için filtre kavramı kullanılmaktadır. Filtreler sınıf kurallarının neye uygulanacağının belirlendiği bilgilerdir.
BAND GENİŞLİĞİ YÖNETİM ARACI Program bir çok modülden oluşmaktadır. Kullanıcıların “download&upload” hızlarının hesaplanması (C kodu ile yapıldı). Ağ yöneticisinin kullanacağı bir arayüz (GUI java ile yapıldı). Band genişliği sınırlaması getiren karar verme mekanizması (Perl ile yapıldı). Kullanıcıların hangi servisleri kullandığı (Snort ile bulundu). Kullanıcı bilgilerini tutan bir veritabanı (MySql kullanıldı).
BAND GENİŞLİĞİ YÖNETİM ARACI
BAND GENİŞLİĞİ YÖNETİM ARACI VERİ AKIŞ ŞEMASI
BAND GENİŞLİĞİ YÖNETİM ARACI VERİ AKIŞ ŞEMASI
BAND GENİŞLİĞİ YÖNETİM ARACI VERİ AKIŞ ŞEMASI
BAND GENİŞLİĞİ YÖNETİM ARACI VERİ AKIŞ ŞEMASI
BAND GENİŞLİĞİ YÖNETİM ARACI VERİ AKIŞ ŞEMASI
BAND GENİŞLİĞİ YÖNETİM ARACI VERİ AKIŞ ŞEMASI
PROGRAM EKRAN GÖRÜNTÜLERİ
PROGRAM EKRAN GÖRÜNTÜLERİ
PROGRAM EKRAN GÖRÜNTÜLERİ Şekil 13:Ağdaki Toplam Bandgenişliği Kullanım Grafiği
SONUÇ Band genişliği yönetiminin basit bir arayüzle gerçekleşmesi sağlanmıştır. Ağa bağlı tüm istemcilerin interneti kullanma miktarı gerçek zamanlı olarak gözlenebilmiştir. Kullanıcı sayısı ve kullanılan servisler sürekli büyürken, band genişliği yönetiminin optimum çözümü getireceği düşünülmektedir. Geliştirilen band genişliği mekanizması sayesinde toplam band genişliği kullanımının belirli bir değerde tutulması ve trafik tiplerini önceliklendirmek suretiyle band 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.
TEŞEKKÜRLER. KAYNAKLAR Andrew S. Tanenbaum, 1996, Computer Networks, Prentice Hall Inc., New Jersey, 814p. Linux Advanced Routing& Traffik Control. http://lartc.org “The Need for QoS” White Paper. http://www.qosforum.com/ TEŞEKKÜRLER.