LANGUAGE TRANSLATE

English French German Spain Italian Dutch Russian Portuguese Japanese Korean Arabic Chinese Simplified

5 Mart 2012 Pazartesi

LİNUX'DA AĞ BİLEŞENLERİ VE AĞ AYARLARI


TCP/IP ve Protokoller
İnternet protokollerinin temeli Internet Protocol (IP)'dir. İnternet üzerinde yönlendirme(routing) gibi temel ağ işlemlerinin gerçekleştirildiği protokol katmanıdır. IP paketlerinin her biri kendi başlarına aradaki ağ cihazları tarafından yönlendirilen paket içinde belirtilen adrese ulaştırılır.
IP bağlantı temelli(connection oriented) bir ağ protokolü değildir. Bunun yanı sıra IP paketlerin içeriklerinin doğruluğunu da garanti etmez. IP katmanı sadece başlık kısmında oluşan hataları bulur ve düzeltir. İnternet üzerinde yönlendirme, yukarıda sözü edilen adreslerden yararlanılarak yapılır.
IP ve uygulama programları arasındaki bağlantıyı sağlayan iki protokol vardır: Transmission Control Protocol (TCP ) ve User Datagram Protocol (UDP ). TCP, İnternet protokolleri arasındaki en önemli protokollerden biridir (İnternet protokol ailesi bu nedenle TCP/IP diye adlandırılır.). TCP kullanarak ağ üzerinden veri aktaran programlar, bir dosyadan okuyormuş ya da yazıyormuş gibi güvenle ağ bağlantısını kullanabilirler. Arada oluşan hatalar TCP tarafından onarılır.
Hata kontrolü ve bağlantı gerektirmeyen ya da bu işlemleri kendileri gerçekleştirmek isteyen uygulamalar UDP kullanarak ağ üzerinden iletişim sağlarlar.
Yukarıdaki protokollerin yanı sıra İnternet standardı olmuş birçok uygulama protokolü de vardır. Bunlar arasında, TELNET, FTP, SMTP ve HTTP gösterilebilir.
Internet üzerinde paketler son makinaya ulaştıktan sonra, ilgili uygulama programına ulaşabilmesi için port adı verilen sanal numaralar kullanılır. Servis veren uygulamalar, önceden belirlenmiş standart port numraları kullanırlar. Örnek olarak SMTP servisi 25 numaralı TCP portunu kullanır.

Not: Sisteminizin kullandığı port numaraları ve bunların isimlerini /etc/services dosyasından görebilirsiniz.


 Ağ ayar dosyaları

Linux işletim sisteminde tüm ayarlar metin dosyalarında saklanmaktadır. Bu sayede yapılması gereken ayarlar belirli dosyaların düzenlenmesi ile kolayca yapılmaktadır.
Linux işletim sisteminde ağ ayarları da dosyalarda tutulmaktadır. İstenildiği takdirde bu dosyalar düzenlenerek, istenildiği takdirde ise grafik arayüzlü programlar kullanılarak ağ ayarlarının yapılamsı mümkündür.
Linux'ta ağ ayarları ile ilgili dosyalar ve dizinler aşağıdaki gibidir :
  • /etc/sysconfig/network dosyası
  • /etc/sysconfig/network-scripts dizini
  • /etc/hosts
  • /etc/resolv.conf
  • /etc/nsswitch.conf
  • /etc/services

 /etc/sysconfig/network Dosyası

Bu dosya genel ağ ayarları için kullanılan dosyadır. Bu dosya içinde sistemin ağ desteği olup olmadığı, gateway tanımı, makine ismi gibi bilgiler bulunur. Bu dosyada çoğunlukla kullanılan terimler aşağıdaki gibidir :
· NETWORKING : Sistemin ağ desteği olup olmadığını belirtir. Bu parametre "yes" olarak tanımlanmamış ise sistemde ağ ayarları yapılmaz.
· HOSTNAME : Sistemin ismini belirtir.
· GATEWAY : Sistemin gateway'ini belirtir

 /etc/sysconfig/network-scripts Dizini

Bu dizin sistemde bulunan ağ arayüzleri için gerekli tanımların bulunduğu dizindir. Her arayüz için bir adet konfigürasyon dosyası bulunmaktadır. Konfigürasyon dosyalarının dışında arayüzlerin aktif ve pasif hale getirilmeleri için gerekli program parçalarını da içeren dosyalar da bu dizin içinde bulunmaktadır.
Arayüzlerin konfigürasyon dosyları ifcfg-arayüz isimine sahiptir. Bu dosyalar düzenlenerek her arayüz için gerekli ayarlar yapılmaktadır. Konfigürasyon dosyalarında kullanılan temel terimler aşağıdaki gibidir :
· DEVICE : Arayüzün sahip olduğu aygıt ismini belirtir.
· ONBOOT : Sistem açılırken arayüzün aktif hale getirilip getirilmeyeceğini belirtir. Sistem açılırken arayüzün aktif hale geçirilmesi için bu parametrenin değeri "yes"olmalıdır.
· BOOTPROTO : Arayüzün ağ ayarlarının yapılması için kullanılan protokolü belirtir.Eğer ağ ayarları ağ ayarları bir DHCP sunucusu üzerinden alınacak ise "dhcp" , ağ ayarları bir bootp sunucusu üzerinden alınacak ise "bootp" değerini içermelidir.
· IPADDR : Arayüzün sahip olduğu IP adresini belirtir.
· NETMASK : Arayüzün sahip olduğu alt ağ maskesini belirtir.
· BROADCAST : Arayüzün broadcast adresini belirtir.

Bir linux makinasına network-script ile IP adresi verilmesi
RedHat Linux’a /etc/sysconfig/network-scripts dizinindeki ifcfg-eth0 ile eth0 için, ifcfg-eth1 ile eth1 … şeklinde Ethernet kartları için IP verilir. Aşağıda bunun için iki adet örnek konfigurasyon görülmektedir. Bunlardan ilki Sabit IP adresi verme, diğeri ise DHCP aracılığı ile otomatik IP adresi verdirmek içidir.
Sabit IP Adresi verme
[root@bigboy tmp]#  cd /etc/sysconfig/network-scripts
[root@bigboy network-scripts]# more ifcfg-eth0

DEVICE=eth0
BOOTPROTO=static
IPADDR=192.168.1.100
NETMASK=255.255.255.0
ONBOOT=yes
#
# The following settings are optional
#
BROADCAST=192.168.1.255
NETWORK=192.168.1.0
GATEWAY=192.168.1.1

DHCP ile IP adresi almak
[root@bigboy tmp]# cd /etc/sysconfig/network-scripts
[root@bigboy network-scripts]# more ifcfg-eth0
DEVICE=eth0
BOOTPROTO=dhcp
ONBOOT=yes


  /etc/hosts Dosyası
/etc/hosts dosyası DNS servisi kullanılmadan önce geçerli olan metotur. Bu dosya içinde makineler ile ilgili olarak makine ismi , makinenin IP adresi ve makine için kısaltma bulunmaktadır. Her makine için ayrı bir kayıt olmak zorundadır. Ağ üzerindeki bilgisayarların artmasıyla birlikte bu dosyanın kullanılması imkansız hale gelmiş ve DNS servisi geliştirilmiştir.
/etc/hosts dosyasındaki satırlar aşağıdaki formata sahiptir :
127.0.0.1 localhost.localdomain localhost
10.0.0.2 laptop.linuxegitim.com laptop
İlk satırda loopback IP numarası ve buna karşılık gelen makina ismi vardır. Bu satırı silmemelisiniz. İkinci satırda ise laptop.linuxegitim.com makinasının IP numarasını 10.0.0.2 olarak belirtilmiş ve bu bilgisayara laptop ismi ile de ulaşılabilmesi sağlanmıştır.

  DNS Sunucu ayarları (/etc/resolv.conf )
Linux işletim sisteminde diğer Unix türevi işletim sistemlerinde olduğu gibi DNS ayarları için kullanılan dosya /etc/resolv.conf dosyasıdır. En basit şekilde DNS ayarlarının yapılması için /etc/resolv.conf dosyası aşağıdaki şekilde düzenlenmelidir.
nameserver DNS_sunucusunun_IP_Adresi
nameserver 160.75.2.20


  İsim çözümleme sırasını belirleme (/etc/nsswitch.conf)
Linux işletim sisteminde makine ismi - IP adresi , IP adresi - makine ismi dönüşümleri için birden fazla metot kullanılmaktadır. Bu metotlar aşağıdaki gibidir :
  • /etc/hosts dosyasının kullanımı
  • DNS sunucu kullanımı
  • NIS sunucu kullanımı
Yukardaki metotlardan hagilerinin , hangi sırada kullanılması gerektiği /etc/nsswitch.conf dosyasında tanımlanmaktadır. Bu dosyada hosts ile başlayan satırda bulunan bilgiler kullanılacak metotları ve sırayı belirler.
#hosts: files nis dns
Yukarıdaki satırda belirtilen 3 metodunda kullanılabileceği belirtilmiştir. Ilk olarak /Etc/hosts dosyası , eğer bulunamaz ise NIS sunucusu , yine bulunamaz ise DNS sunucusunun kullanılacağı belirtilmiştir.
 Servis portları (/etc/services)
Bu dosya her bir servis için port eşleştirmeleri bilgisini tutar. Bu dosyanın ilk birkaç satırı aşağıda görülmektedir, bu dosya yüzlerce satır içerebilir.





#
# This file contains port numbers for well-known services defined by IANA
#
# Format:
#
# <service name> <port number>/<protocol> [aliases...] [#<comment>]
#

echo 7/tcp
echo 7/udp
discard 9/tcp sink null
discard 9/udp sink null
systat 11/tcp users #Active users
systat 11/tcp users #Active users
daytime 13/tcp
daytime 13/udp
qotd 17/tcp quote #Quote of the day
qotd 17/udp quote #Quote of the day
chargen 19/tcp ttytst source #Character generator
chargen 19/udp ttytst source #Character generator
ftp-data 20/tcp #FTP, data
ftp 21/tcp #FTP. control
telnet 23/tcp
smtp 25/tcp mail #Simple Mail Transfer Protocol
time 37/tcp timserver
time 37/udp timserver


 Ağ Ayarlarının Etkin Kılınması
Linux işletim sisteminde ağ desteği de bir servis olarak çalışmaktadır. Red Hat Linux sistemlerde servislerin çalıştırılması ile ilgili scriptler /etc/rc.d/init.d dizini içinde bulunmaktadır. Ağ ayarlarının aktif hale getirilmesi veya ayarların aktif halden çıkarılması için bu dizin içinde bulunan network scripti kullanılmaktadır
 Bu scriptin temel kullanım şekli aşağıdaki gibidir :
service network {start|stop|restart|reload|status}
 Scripte start parametresi gönderildiği takdirde ağ servisi başlatılır. “Stop “ parametresi gönderilir ise ağ servisi kapatılır. “Restart” ve “reload” parametreleri ile değiştirilen ayarların aktif hale geçmesi sağlanabilir. Dikkat edilmesi gereken nokta bu işlem için ilk olarak ağ servisinin durdurulacağı ve yeniden aktif hale geçeceğidir. Bu yüzden tüm ağ bağlantıları kopacaktır. “status” parametresi ile ağ arayüzlerinin durumu kontrol edilmektedir. 
IP adresi bilgilerini öğrenme (ifconfig)
Network scriptinin temel de yaptığı iş ayar dosyalarını okuyup gerekli komutları çalıştırmaktır. Linux işletim sisteminde ağ ayarlarının yapılmasında kullanılan temel komut
# ifconfig
 Komutudur.
Ifconfig komutu ağ arayüzünün IP ayarlarını yapmakta kullanılmaktadır. Bu ayarlar arasında aşağıdaki parametreler bulunur :
  • IP adresi : IP ayarlarının temel öğesidir. Bu parametrenin mutlaka verilmesi gerekmektedir.
  • Ağ maskesi : Makinenin sahip olduğu alt ağı belirlemek için kullanılan maskedir.
  • Yayın Adresi : Gönderilen paketin ağ üzerinde bulunan tüm makinelere ulaşması gerektiğinde paketin gönderilmesi gereken IP adresidir. 
ifconfig komutuna hiç bir parametre gönderilmediği takdirde , aktif olan arayüzler ile ilgili bilgi gösterilecektir. 
[root@seawolf /root]# ifconfig

eth0 Link encap:Ethernet HWaddr 00:10:5A:AC:4F:66
inet addr:160.75.100.40 Bcast:160.75.100.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:669410 errors:0 dropped:0 overruns:0 frame:0
TX packets:141875 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
Interrupt:10 Base address:0xfc00  

 lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:13647 errors:0 dropped:0 overruns:0 frame:0
TX packets:13647 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
Ifconfig komutunun temel yapısı aşağıdaki gibidir : 
ifconfig arayüz_ismi IP_adresi [ netmask ağ_maskesi broadcast yayın_adresi]
* Bir Linux makinesına ifconfig komutu ile IP adresi verme
ifconfig eth0 192.168.2.33 netmask 255.255.255.0 up
* Bir linux makinasında ethernet kartını “disable(down)” konuma getirme
ifconfig eth0 down
* Bir linux makinasında ethernet kartını aktif hale getirme
ifconfig eth0 up

Not: ifconfig komutu ile verilen IP adresi bir yere kaydedilmez. sistem restart edince kaybolur




 Ağ geçiti adresi belirleme (route)
 route komutu makinenin yönlendirme ile ilgili ayarlarını yapmak için kullanılan komuttur. Bu komut sayesinde makinenin yönlendirme tablosu oluşturulur. Makinenin ağ üzerinde tam anlamıyla çalışabilmesi için yönlendirme tablosunun doğru olarak yapılandırılması şarttır. Yönlendirme tablosu giden paketlerin hangi arayüz üzerinden, hangi makineye gideceği bilgilerini içerir.  
route komutuna hiç bir parametre gönderilmez ise mevcut olan yönlendirme tablosu gösterilir.
[root@seawolf /root]# route
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
160.75.100.0 * 255.255.255.0 U 0 0 0 eth0
127.0.0.0 * 255.0.0.0 U 0 0 0 lo
default 160.75.100.254 0.0.0.0 UG 0 0 0 eth0
* Bir Linux makinasına Default Gateway (varsayılan ağ geçiti) adresi verme
route add default gw 192.168.2.1


 Bir Ağ kartına birden çok IP adresi verme
Bir network kartına birden fazla IP adresi ataması yapılabilmektedir. Örneğin birinci Ethernet kartı için ikinci bir IP numarası vermek gerektiğinde eth0:0 adı ile gösterilen ve eth0 cihazının alt-arayüzü (sub-interface) aygıtı (alias) olan sanal karta IP adresi verilir.
 Bu işlem için öncelikle:
  • öncelikle asıl arayüz aygıtının (eth0) çalıştığından emin olmalısınız.
  • eth0:0 için kullanacağınız IP adresinin başka bir aygıt tarafından kullanılmadığına emin olmalısınız.
  • ifconfig komutu ile sanal IP numarası verme işlemini aşağıdaki gibi yapabilirsiniz.
 

# ifconfig eth0:0 192.168.1.99 netmask 255.255.255.0 up
 

Not: Bu işlemleri system-config-network aracı ile daha kolay gerçekleştirebilirsiniz.

ALINTIDIR
KAYNAK:www.belgeler.org