Maceraya hazır mısın! bir BSD almaz mısın?

Bu konuya katılanlar

Duyuru
* Forum tasarımımız yenilendi.
* FreeBSD 10.4 - RELEASE Final çıktı.
* FreeBSD 11.1 - RELEASE Final çıktı.
Son Mesajlar
Çevrimiçi (0)

adhoc Tarzında Kurulan Kablosuz Ağlarda NFS ile Dosya Paylaşımı

Freebsd NFS(Network File System=Ağ Dosya Sistemi) sistemini desteklemektedir. NFS sistemi bir ağ üzerinde diğer kullanıcılarla dosya ve dizinleri paylaşmaya olanak sağlar.
NFS sisteminin sağlayacağı faydalardan bazıları şunlardır:
--Yerel iş istasyonlarında(freebsd yüklü makinalarda) daha az disk alanı kullanılır.Çünkü yaygın  olarak kullanılan  veriler tek bir makinada saklanabilir. Diğerleri bu verilere  ağdan erişebilirler.
--Kullanıcıların her ağ makinasında ayrı ayrı ev dizini ayırmasına gerek yoktur. Ev dizinleri NFS sunucusu makina üzerine kurulup tüm ağa sunulabilir.Böylece kullanıcılar her   zaman hangi iş istasyonuna giriş yaptıklarından bağımsız olarak aynı ev dizinine erişebilir.
--CD-DVDROM gibi diğer medyalar,depolama aygıtları tek makinaya kurulup diğerleri bunlara ağdan erişebilir.Bu birden fazla makine üzerinde yazılım yüklemek için ucuz ve uygun bir   yöntemdir.
--Çeşitli makinelerin ortak bir /usr/ports/distfiles dizini olabilir.Bu şekilde,her makinede bir port kurmak gerektiğinde, onu her makinaya indirmeksizin tek bir makinaya indirip  diğerlerinin bu kaynağa hızlı bir şekilde erişmelerini sağlayabiliriz.
NFS sisteminin çalışması için öncelikle bir ağ kurmamız gerekiyor. Bu yazımızda kablosuz ağdan söz edeceğiz. Öncelikle makinaların kablosuz ağ kartlarının yongalarını öğrenip burdan freebsd tarafından desteklenip desteklenmediğini, destekleniyorsa sürücüsünü öğrenebilirsiniz.Sonra /kök/sys/amd64/GENERIC kernel yapılandırma dosyamızda sürücülerimiz ile ilgili satırları bulup önlerinde # işaretinin olmadığından emin olmamız gerekiyor.Bu işaret yoksa aygıt sürücümüz kernel içinde derlenmiş demektir.Bu makalede freebsd 9.1 yüklü 2 makina(dizüstü bilgisayar) kullanacağız. 1.makinamızın kablosuz ağ kartının sürücüsü urtw, 2.makinamızınki ise run.
/kök/sys/amd64/GENERIC dosyamız:
device urtw # Realtek RTL8187B/L wireless NICs
device run # Ralink Technology RT2700/RT2800/RT3000 NICs
.

Her iki sürücüde kernel içinde derlenmiş olduğundan bilgisayarların açılışında ilgili sürücüler yüklenip doğal kablosuz ağ arayüzleri de oluşturulmaktadır:
--urtw sürücüsünün doğal arayüzü: urtw0
--run sürücüsünün doğal arayüzü : run0
Eğer /kök/sys/amd64/GENERIC kernel yapılandırma dosyamızda sürücülerimiz ile ilgili satırların önünde # işareti varsa sürücümüzü elle yüklememiz gerekiyor. /boot/loader.conf dosyamıza aşağıdaki satırları ekliyoruz:
if_wi_load="YES"
***wi--->ağ kartı sürücümüzün adı
Ağ kartlarımızın güvenlik protokolleriyle ilgili modüllerinde kernel içinde derlenmiş olup olmadığını da kontrol edelim. /kök/sys/amd64/GENERIC dosyamızda aşağıdaki satırlar varsa:
device wlan              # 802.11 support
device wlan_wep          # 802.11 WEP support
device wlan_ccmp         # 802.11 CCMP support
device wlan_tkip         # 802.11 TKIP support
device wlan_amrr         # AMRR transmit rate control algorithm
device ath               # Atheros pci/cardbus NIC's
device ath_hal           # pci/cardbus chip support
options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors
device ath_rate_sample   # SampleRate tx rate control for ath_hal

ağ kartımızın güvenlik protokolleriyle ilgili moduller kernel içinde derlenmiş demektir. Bunlar kernel içinde derlenmediyse  elle kurmamız gerekiyor. /boot/loader.conf dosyamıza aşağıdaki satırları ekliyoruz:
wlan_wep_load="YES"
wlan_ccmp_load="YES"
wlan_tkip_load="YES"
Şimdi sıra geldi bilgisayarlarımız arasında kablosuz ağ kurmaya.İki bilgisayarımız arasında adhoc(=IBSS) tarzında kablosuz ağ kuracağız. Her iki bilgisayarda aşağıdaki komutu girerek:
ifconfig
kartlarımıza uygun olan doğal urtw0, run0 arayüzlerinin oluşturulmuş olduğundan emin oluyoruz.Önce ağ kartlarımızın adhoc tarzını destekleyip desteklemediğini kontrol edelim.
1.makinada wlan0 yalancı arayüzü oluştumek için:
# ifconfig wlan0 create wlandev urtw0
# ifconfig wlan0 list caps
drivercaps=6f85edc1<STA,FF,TURBOP,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,MBSS,WPA1,WPA2,BURST,WME,WDS,BGSCAN,TXFRAG>
cryptocaps=1f<WEP,TKIP,AES,AES_CCM,TKIPMIC>
bu çıktı kartımızın yeteneklerini görüntülemektedir.IBSS sözcüğü kartımızın adhoc tarzını desteklediğini göstermektedir. "cryptocaps" satırında da kartımızın desteklediği şifreler gösterilmektedir.
Aynı işlemleri 2.makinamızda da yapıyoruz:
# ifconfig wlan0 create wlandev run0
# ifconfig wlan0 list caps
drivercaps=6f85edc1<STA,FF,TURBOP,IBSS,HOSTAP,AHDEMO,TXPMGT,SHSLOT,SHPREAMBLE,MONITOR,MBSS,WPA1,WPA2,BURST,WME,WDS,BGSCAN,TXFRAG>
cryptocaps=1f<WEP,TKIP,AES,AES_CCM,TKIPMIC>
çıktıdan da anlaşılacağı gibi 2.kartımızda adhoc tarzını desteklemektedir.
2 makina arasında adhoc tarzında ağ kurmak için sadece 2 IP adresi ve bir ssid seçmemiz yeterlidir.
1.makinada:
# ifconfig wlan0 create wlandev urtw0 wlanmode adhoc
# ifconfig wlan0 inet 192.168.0.1 netmask 255.255.255.0 ssid freebsdaha
# ifconfig wlan0
  wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
   ether 00:11:95:c3:0d:ac
   inet 192.168.0.1 netmask 0xffffff00 broadcast 192.168.0.255
   media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>
   status: running
   ssid freebsdaha channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac
   country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
   protmode CTS wme burst
çıktıdaki  adhoc parametresi arayüzün(wlan0) IBSS(adhoc) tarzında çalıştığını göstermektedir.
Burada ssid için verdiğim isim "freebsdaha".Siz istediğiniz adı verebilirsiniz. 2.makinaya geçtiğimizde 1.makinayı görebiliriz:
# ifconfig wlan0 create wlandev run0 wlanmode adhoc
# ifconfig wlan0 up scan
  SSID/MESH ID    BSSID              CHAN RATE   S:N     INT CAPS
  freebsdaha      02:11:95:c3:0d:ac    2   54M -64:-96  100 IS   WME
 
Çıktıdaki IS sözcüğü 1. makinanın adhoc tarzında olduğunu doğrulamaktadır.2.makinayı farklı bir IP adresiyle yapılandırmalıyız:
# ifconfig wlan0 inet 192.168.0.2 netmask 255.255.255.0 ssid freebsdaha
# ifconfig wlan0
  wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
   ether 00:11:95:d5:43:62
   inet 192.168.0.2 netmask 0xffffff00 broadcast 192.168.0.255
   media: IEEE 802.11 Wireless Ethernet autoselect mode 11g <adhoc>
   status: running
   ssid freebsdaha channel 2 (2417 Mhz 11g) bssid 02:11:95:c3:0d:ac
   country US ecm authmode OPEN privacy OFF txpower 21.5 scanvalid 60
   protmode CTS wme burst
Artık her iki makinada bilgi alışverişi için hazırdır.Kablosuz ağımızı kurduktan sonra şimdi NFS sistemini çalıştıracağız.NFS en az iki ana bölümden oluşmaktadır:Bir sunucu ve bir veya daha fazla istemci.Istemci uzaktan sunucu makinede depolanan verilere erişir.Bunun düzgün çalışması için birkaç süreçi yapılandırıp çalıştırmak gerekiyor.Sunucu aşağıdaki daemonları çalıştırıyor olmalıdır:
-nfsd


>NFS istemcilerinden gelen isteklere hizmet eden NFS daemonu
-mountd---->nfsd nin üzerine geçirdiği istekleri yürüten NFS bağlama daemonu
-rpcbind--->Bu daemon NFS istemcilerinin NFS sunucusunun hangi portu kullandığını keşfetmesine izin verir.
Bu çalışmada NFS sunucusu olarak 1.makinayı seçtim. NFS sunucusunda çalışması gereken süreçlerin önyükleme sırasında başlatılabilmesi için 1.makinada /etc/rc.conf dosyasına aşağıdaki satırları giriyoruz:
rpcbind_enable="YES"
nfs_server_enable="YES"
mountd_flags="-r"
NFS sunucusu etkin olduğunda mountd otomatik olarak çalışır.
NFS sunucusunda (1.makina) /etc/exports dosyasını oluşturuyoruz. Bu dosya NFS sisteminin hangi dosya ve dizinleri paylaşıma açacağını belirtir. Bu dosya içindeki her satır paylaşılacak dosya ve dizinleri ve hangi makinaların bu dosya ve dizinlere erişebileceğini ve yanı sıra erişim seçeneklerini belirtir.Bu dosyada kullanabilecek pekçok seçenek vardır.Burada bunların hepsini ele almayacağız.Daha ayrıntılı bilgi için buradaki klavuz sayfasından yararlanabilirsiniz. Bu yazımızda planımız 1.makinada (NFS sunucusu) /usr/home dizinini paylaşmak olacak. Bunun için /etc/exports dosyasına aşağıdaki satırları ekliyoruz:
_________________________________________________________
/usr/home  -alldirs  -maproot=root istemci-1 istemci-2 istemci-3
_________________________________________________________

-alldirs bayrağı(flag) alt dizinlerin istemciye bağlanmasına izin verir.
-maproot=root bayrağı istemcinin root haklarıyla dosyaları ve dizinleri değiştirmesine izin verir. Eğer bu bayrak yerine -ro bayrağını kullanırsak paylaşılan dosyalar istemci  için salt okunur olur.
/etc/exports dosyasında bir istemci sadece tek bir satırda gösterilebilir. Bu nedenle aşağıdaki kullanım şekli yanlıştır:

/usr/ports istemci-1
/usr/src   istemci-1

Doğru kullanım şekli:
/usr/ports /usr/src istemci-1

olmalıdır.Başka bir deyişle aynı satırda birden fazla dosya ve birden fazla istemci sıralanabilir.Ben ağımız basit bir ev ağı olduğu için /etc/exports dosyamı aşağıdaki şekilde düzenledim:
/usr/home  -alldirs  -maproot=root 192.168.0.2
192.168.0.2 istemciye(2.makina) atadığım IP numarasıdır. IP numaralarıyla uğraşmak istemiyorsanız /etc/hosts dosyasını düzenleyerek istemciye isim atayabiliriz:

/etc/hosts





192.168.0.2      istemcim




Şimdi /etc/exports dosyasını aşağıdaki gibi de düzenleyebiliriz:
/usr/home  -alldirs  -maproot=root istemcim
Sistemi yeniden başlatıp 1.makinada NFS sunucunun düzgün kurulmasını sağlayabiliriz.Sistemi yeniden başlatmadan NFS sunucusunun kurulması için 2.bir seçenek ise:
# rpcbind
# nfsd -u -t -n 4
# mountd -r
komutlarını girmektir. Eğer NFS sunucusu çalışırken /etc/exports dosyasında bir değişiklik yaparsak mountd daemonuna bu değişikliği bildirmek için:
# kill -HUP `cat /var/run/mountd.pid`
ya da:
# service mountd onereload
komutlarını giriyoruz.
İstemci makina olarak 2.makina seçilmiştir. İstemcide /etc/rc.conf dosyasına aşağıdaki satırları giriyoruz:
nfs_client_enable="YES"
Sistemi yeniden başlatıyoruz ya da aşağıdaki komutu giriyoruz:
# nfsiod -n 4
Artık istemci bilgisayarımız NFS sunucusundaki dosya sistemine bağlanmaya hazırdır.
# mount 192.168.0.1:/usr/home /mnt
Bu komut istemcide /mnt yi sunucu üzerinde /home dizinine bağlayacaktır.Her şey doğru şekilde ayarlanmışsa istemci üzerindeki /mnt dizinine girmeniz mümkün olabilmeli ve sunucu üzerindeki tüm dosyaları görebilmelisiniz.
 Bir diğer deyişle 2.makinada(istemcide) /mnt dizininde 1.makinanın /home dizinindeki dizinleri ve dosyaları görebilir, değiştirebilir, dosyaları ve dizinleri istemciye kopyalayabilir/taşıyabiliriz.İstersek istemciden istediğimiz dosyaları 1.makinaya kopyalayabilir/taşıyabiliriz.
192.168.0.1 sunucuya (1.makina) atadığımız IP numarısıdır. Bu numaralarla uğraşmak istemiyorsak istemci makinada /etc/hosts dosyasına aşağıdaki satırı ekleyelim:
192.168.0.1   sunucu
# mount sunucu:/usr/home /mnt
Bilgisayarın her açılışında sunucudaki dosya sistemini otomatik olarak bağlamak istiyorsanız  /etc/fstab dosyasına dosya sistemini ekliyoruz:
192.168.0.1:/usr/home /mnt nfs rw 0 0
ya da:
sunucu:/usr/home /mnt nfs rw 0 0
Faydalı olması dileğiyle....
Kaynaklar:
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-nfs.html
http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/network-wireless.html
http://linux-bsd-sharing.blogspot.com/2008/09/mount-nfs-shares-on-freebsd.html

Yorumlar

  • Selam doctur
    Öncelikle bu detaylı çalışma için ellerine sağlık, gayet güzel olmuş. ::D)
    Tabii bende ilk fırsatta hemen denedim, ifconfig wlan0 create wlandev ath0 wlanmode adhoc kısmında bad value deyince, aklıma bir şey geldi, denedim ve oldu.
    Öncelikle benim iki laptopta wlan0 zaten vardı, her iki cihazda aynı Wlan modem üzerinden nete çıkıyordu, modülleride ath idi ve her ikisinde modemden aldığı IP farklıydı.
    FeeBSD kurulu - 192.168.011
    PCBSD kurulu  - 192.168.014
    % ifconfig wlan0 
    wlan0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
     ether 1c:4b:d6:7b:9b:5c
     inet6 fe80::1e4b:d6ff:fe7b:9b5c%wlan0 prefixlen 64 scopeid 0xa 
     inet 192.168.0.11 netmask 0xffffff00 broadcast 192.168.0.255
     nd6 options=23<PERFORMNUD,ACCEPT_RTADV,AUTO_LINKLOCAL>
     media: IEEE 802.11 Wireless Ethernet OFDM/48Mbps mode 11g
     status: associated
     ssid Felasife channel 7 (2442 MHz 11g) bssid 00:1a:2b:94:09:0c
     regdomain 96 indoor ecm authmode WPA2/802.11i privacy ON
     deftxkey UNDEF AES-CCM 2:128-bit txpower 20 bmiss 7 scanvalid 450
     bgscan bgscanintvl 300 bgscanidle 250 roam:rssi 7 roam:rate 5
     protmode CTS wme burst roaming MANUAL
    
    Durum böyle olunca direk senin rehberde verdiğin NFS ayarı kısmına geçtim.
    1. makine 192.168.011 /etc/rc.conf
    rpcbind_enable="YES"
    nfs_server_enable="YES"
    mountd_flags="-r"
    
    /etc/exports
    /mnt/depo -alldirs -maproot=root 192.168.0.14
    
    Servisleri başlattım.
    # rpcbind
    # nfsd -u -t -n 4
    # mountd -r
    
    2. makine 192.168.014 /etc/rc.conf
    nfs_client_enable="YES"
    
    Servisi başlattım.
    # nfsiod -n 4
    
    Bağlanma komutunu verdim.
    # mount 192.168.0.11:/mnt/depo /mnt/asus-nfs
    
    Ve 1. makineye 2. makineden bağlanmış durumdayım.
    # mount
    .....
    192.168.0.11:/mnt/depo on /mnt/asus-nfs (nfs)
    
    Gerçekten kolay yöntemmiş, ama tabii bunu kolaylaştıran da senin rehberin oldu ki anlaşılan  ağı zaten varsa, modem üzerinden yöntemiyle de işlem kolayca hallolabiliyor.
    Tekrardan teşekkürler bu güzel rehber için. :)

    Maceraya hazır mısın?  Bir BSD almaz mısın!
  • Valla ne yalan söyleyeyim kalplerimiz birmiş. Senden yorum bekliyordum. Bende sizden bunu denemenizi isteyecektim.
    Onun için rehberi erken sundum. Çünkü bende ADSL modem yok. 3G modemle nete çıkyorum. Aynı wlan0 arayüzüyle
    hem nete bağlanmak hem de kablosuz ağ kurup dosya paylaşımını gerçekleştirmek mümkün olurmu diye merak ediyordum.Ellerine sağlık.Çok güzel oldu.
    Eğer,
    ifconfig wlan0 create wlandev ath0 wlanmode adhoc
    
    dan önce:
    # ifconfig wlan0 destroy
    
    komutunu kullanırsanız bad value hatasını almazsınız ve ağınızı adhoc modunda da kurabilirsiniz.
    Buradan çıkan sonuç wlan0 arayüzünü adhoc modunda oluşturmadan kablosuz modemlere bağlanmak için yapılandırdığımızda da kablosuz ağ kurup dosya paylaşabiliyoruz. Şimdi merak ettiğim başka bir şey var. Acaba kablosuz ağ kartımızın adhoc desteği yoksa yine aynı şekilde kablosuz ağ kurup dosya paylaşabilirmiyiz?
    Şimdi başka bir şey deneyeceğim. wlan0 arayüzünü HOSTAP tarzında oluşturup hem 3G internetimi hem de kablosuz ağ kurup dosya paylaşımını gerçekleştirmeye çalışacağım.
  • hem nete bağlanmak hem de kablosuz ağ kurup dosya paylaşımını gerçekleştirmek mümkün olurmu diye merak ediyordum.

    Yani oluyormuş, iyikide denemişim iyi oldu gerçekten.
    komutunu kullanırsanız bad value hatasını almazsınız ve ağınızı adhoc modunda da kurabilirsiniz.

    Benimde aklıma geldi önce wlan0 'ı silmek ama diğer yolu bir deneyeyim dedim, olmasaydı silip rehbere göre gidecektim.
    Buradan çıkan sonuç wlan0 arayüzünü adhoc modunda oluşturmadan kablosuz modemlere bağlanmak için yapılandırdığımızda da kablosuz ağ kurup dosya paylaşabiliyoruz.

    Aynen.
    Şimdi merak ettiğim başka bir şey var. Acaba kablosuz ağ kartımızın adhoc desteği yoksa yine aynı şekilde kablosuz ağ kurup dosya paylaşabilirmiyiz?

    Bilemiyorum ama sanki bana bağlanabilir gibi geldi.
    Şimdi başka bir şey deneyeceğim. wlan0 arayüzünü HOSTAP tarzında oluşturup hem 3G internetimi hem de kablosuz ağ kurup dosya paylaşımını gerçekleştirmeye çalışacağım.

    Kolay gelsin, umarım olur.

    Maceraya hazır mısın?  Bir BSD almaz mısın!
Yorum yapmak için Oturum Açın yada Kayıt Olun .