ozirus’

diary of a computer alchemist
  • rss
  • Ana sayfa
  • Hakkımda
  • Linux
  • Kısa Filmler

Pardus Ağ Yöneticisine Ad-hoc Desteği Eklemek

08 July 2008

GİRİŞ

Staj sonuçları açıklandığında Pardus’ta staj yapacağım için gerçekten çok sevinmiştim. Hatta bu sevinç yurtta bilgisayar odasındaki ” ‘Yaşasın!’ diyerek sandalyeden fırlayan genç gören insan” ‘larca da bizzat tasdik edilip onaylanmıştı. Proje tercihimi her ne kadar “İnternet Bağlantısı Paylaşım Projesi” için kullanmış olsam ve bu proje GSoC‘cu bir arkadaşımız olan ve projesinin hakkını gayet güzel veren Cihangir‘e gitse de yine de “güzel ve eğlenceli” şeyler yaşayacağımı biliyordum Eskişehir’den staj için Gebze’ye gelirken. Herkes birbiriyle tanışıp iş projelerin dağıtılması aşamasına gelince eğlenceli olabileceğini düşündüğümden ‘ağ yöneticisine ad-hoc desteği eklenmesi’ projesini seçtim. Proje danışmanım ise Bahadır oldu. İşte, bu yazı buraya kadar yazdıklarımla tamamen alakasız olarak projeyi nasıl yaptığımla ilgili bir takım teknik şeylerle alakalı olacak. (Ayrıca umarım içeriğine bağlı olarak staj defteri doldurma sancımı da değerli kopyala ve yapıştır arkadaşların yardımıyla bir nebze olsun azaltacak.)

AĞ YÖNETİCİSİ ile ÇOMAR’I ANLAMAK

İşe nasıl başlayacağımı kestirebilmek adına çalışmalarımın ilk aşamasına ağ yöneticisinin kodlarını inceleyerek başladım. Epey vakit alan bu süreç sonunda işimi bitirdiğimde bu sürecin neyin-nerden-nasıl geldiği ile alakalı olarak bana epey birşey kattığını farkettim. Tabii olarak bu okuma ve inceleme aşaması süresince başta ÇOMAR olmak üzere kimi başka konulara da girdim.

…ve ÜZERLERİNDE OYNAMAK

Ağ yöneticisinin işleyişini anladığımı düşündüğümde normalde/her hangi bir GUI olmadan bilgisayarları ad-hoc bağlamak için gerekli olan; kablosuz ağ arayüzü modunu ad-hoc’a ayarlamak, arayüze ip vermek, isteniyorsa arayüze şifre vermek, kanal ayarı yapmak gibi işleri ağ yöneticisinden yapılabilir hale getirebilmek için ÇOMAR’a ait Net_Link_wireless_tools.py betiğini düzenlemeye başladım. Bu betiğin özellikle Dev sınıfına ait up metoduna bağlantı moduna göre değişen bir işlerlik kazandırmam gerekiyordu. Bu sebeple ağ yöneticisine ait connection.py dosyasından gelen mod bilgisine -ki kendileri Net_Link_wireless_tools.py betiğinde bir Python listesinin içinde ikamet ediyorlar- göre (bir erişim noktası ile internete çıkılan kablosuz bağlantılarda managed, ad-hoc bağlantılarda ad-hoc) up metodunda bir dallanma gerçekledim ve geriye sadece Wireless sınıfına ait metodlarla yada standart bir metodu yok ise eğer subprocess modülü yardımıyla up metodunun ad-hoc dallanmasının içini doldurmak kaldı.

Buraya kadar yaptıklarımla ve connection.py‘yi düzenleyerek yaptığım kimi GUI değişiklikleri ile ağ yöneticisini bilgisayarları ad-hoc bağlayabilir hale getirebildim. Fakat projenin buraya kadar yaptığım kadarı ad-hoc modda birbirlerine bağlanacak olan bilgisayarlara el ile ip verme zorunluluğu getiriyordu. Bu noktada bir takım RFC okuma çabalarına daldım ve bir-iki günümü bu hevese harcadım.

Okumaya çalıştığım RFC’lerden öğrendiğim şey yapmaya çalıştığım şeyin (ad-hoc bağlananan makinelere otomatik ip vermek ve ip çakışmasının önüne geçmek) makineler arası Link-Local bağlantı yapmak olduğunu öğrenmem oldu. Bu tipteki bir bağlantı (ki kendisi RFC 3927 ile efendi gibi anlatılmış) ad-hoc bağlı makinelere 169.254.0.0/16 aralığından bir ip tahsis ediyor ve çakışma olduğunda çakışmaya sebep olan makinelerden birine farklı bir ip atıyor.

Bu bağlantı şeklini projeme uygulayabilmek amacıyla birtakım kütüphane arayışlarına girdim. Arayışlarım sırasında avahi-autoipd adlı bir uygulamanın var olduğunu gördüm ve teknik ayrıntılar için freenode’un #avahi kanalında biraz vakit geçirdim. Daha sonra bunu yine up metodunun ilgili kısmına ekleyerek bağlanırken üzerinde mod, şifre vb… ayarları yaptığım ağ arayüzüne ip adresi vermede kullandım. Burda avahi-autoipd‘ye ip adresi verdirirken getirilecek sınırlandırma ve özelleştirmelerin ayarlandığı avahi-autoipd.action dosyası üzerinde de bir takım düzenlemeler yapmam gerekti. Bu işlemle birlikte artık ad-hoc bağlantı yapılan makinelere elle ip verme zorunluluğu ortadan kalkmış ve ağ yöneticisinin ad-hoc desteği projesi testler hariç tamamlanmış olmuştu.

TESTLER, CİHAZ UYUMSUZLUKLARI vs…

Proje bittikten sonra testleri yaparken karşılaştığım en büyük sorun kimi kablosuz cihazların geriye dönük uyumsuzlukları oldu. Intel PRO/Wireless 2200BG chipset’e sahip dizüstümde yazdığım ve düzgün çalışan bir kodun mod değiştirme kısmı Intel PRO/Wireless 3945ABG‘lı bir başka dizüstünde “Device is busy” hatası verebiliyordu örneğin. Bu sorun biraz vaktimi aldı ama olay sonuçta Ubuntu forumlarında gördüğüm ve “Neden daha önce aklıma gelmedi ki?” şaşkınlığıyla karşıladığım; arayüzü önce pasif et, değişiklikleri yap, sonra aktif et tandansında çözümlendi.

Yorumlar
Henüz yorum yok
Kategori
Gezegen, Pardus, Python, Staj, Öğrenelim
RSS Yorumlar RSS Yorumlar
Trackback Trackback

Pardus’ta Staj

08 May 2008

Pardus Staj

Pardus‘ta staja kabul edilmişim. Bu yaz oldukça güzel geçeceğe benziyor… :)

Yorumlar
Henüz yorum yok
Kategori
Pardus, Seratonin, Staj
RSS Yorumlar RSS Yorumlar
Trackback Trackback

Staj da biter…

29 July 2007

Cuma günü itibariyle yirmi iş günlük stajım sona erdi. Epey verimli bir dönem oldu benim için bu staj dönemi. Linux sistem yöneticiliği/sunucu yazılımları konusunda merak ettiğim epey şeyi öğrendiğimi düşünüyorum bu yirmi günde. Ayrıca yine boş zamanlarımda Python ile şirkette bulunan kitaplar yardımıyla yaptığım çalışmalar da gerçekten çok verimli geçti. Darısı diğer stajlarımın başına artık…

Yorumlar
Henüz yorum yok
Kategori
Staj
RSS Yorumlar RSS Yorumlar
Trackback Trackback

CentOS 5 üzerine Trac kurulumu

26 July 2007

Trac proje yönetim programını bilenler bilir. Kurulumu tam bir işkence olan ama kullanımı ve yaptığı işler son derece şahane olan python ile yazılmış güzel bir yazılımdır. Bu hafta staj yaptığım şirkette verilen görev gereği kurmam gerekti bu programı ve ben de oturup araştırıp epeyce saçımı kurban vererek kurulumu yaptım. Şu an sorunsuz çalışıyor. CentOS 5 kullanıp yeni kurulum yapacakların benim gibi işkence çekmemeleri için oturup güzelce de bir belge hazırladım.

Bu da linki

İyi eğlenceler.

Yorumlar
Henüz yorum yok
Kategori
Gnu/Linux, Python, Staj
RSS Yorumlar RSS Yorumlar
Trackback Trackback

Squid, Dansguardian, Webmin, Iptables belgesi

11 July 2007

Staj için hazırlamış olduğum belgede temel anlamda şunları anlatmaya çalıştım;

  • Squid proxy server’ın kurulumu ve basit konfigürasyonu
  • Dansguardian içerik filtreleme yazılımı kurulumu, konfigürasyonu ve squid ile entegre çalıştırılması
  • Webmin kurulum ve kullanımı
  • iptables’ın temel kullanımı

Belgeyi danışmanımın isteği üzerine CentOS 5 dağıtımını göz önüne alarak hazırladım.

İndirmek için şurayı tıklayınız.

Konulara yeni olduğum için her türlü yorumu bekliyorum.

Not: Bu LaTeX şahane birşeymiş.

Yorumlar
Henüz yorum yok
Kategori
CentOS, Gezegen, Gnu/Linux, Makaleler, Staj
RSS Yorumlar RSS Yorumlar
Trackback Trackback

Kategori

  • .Net
  • Asabiyet
  • Aşk
  • Çok dertliyim be blog
  • Özgür yazılım
  • Öğrenelim
  • CentOS
  • Debian / Ubuntu
  • Dizi
  • Django
  • Efkar
  • Eğlencelik
  • Fotoğraf
  • Gezegen
  • Gnu/Linux
  • Kategorilenmemiş
  • Kendime not
  • Kitap İnceleme
  • Kişisel düşünceler
  • Komiklik içerebilir
  • Makaleler
  • Müzik
  • Okul falan
  • Pardus
  • Php
  • Python
  • Seratonin
  • Sinema
  • Siyaset
  • Staj
  • Tutunamayanlar
  • Windows
  • Yazılım mühendisliği
  • Şiir

Twitter


follow ozirus at http://twitter.com

Son okuduklarım


Reklamlar


Ohloh

Ohloh profile for Furkan ÇALIŞKAN
rss RSS Yorumlar valid xhtml 1.1 design by jide powered by Wordpress get firefox