AĞ KONFİGURASYONU

Linux sürümlerinin hepsinde ağ arayüzleri ile ilgili öntanımlı bilgiler çeşitli dosyalarda saklanır ve açılış esnasında çalışan betiklerle aktif hale getirilirler. Bu betiklerin kabaca yaptığı iş birazdan örneklerini göreceğiniz şekilde ifconfig, route gibi komutları öntanımlı değerlerle kullanarak ağ arayüzlerini aktif hale getirmekten ibarettir. 

Öntanımlı değerler  dağıtımdan dağıtıma fark göstermekle birlikte genelde SuSE, Fedora gibi dağıtımlarda 

                        /etc/sysconfig/network(-scripts)/ifcfg-ethX 

(X=0,1,2 eth0, eth1, eth2) dosyasıdır 

debian tabanlı dağıtımlarda ise                        

/etc/network/interfaces  

dosyalarında saklanmaktadır. Bu dosyaları değiştirdikten sonra  

/etc/init.d/network restart  

komutu ile yeni ağ ayarlarının aktif olması sağlanmaktadır. Statik ve dhcp modunda ayar yapmak istediğinizde kullanabileceğiniz örnek konfigürasyon dosyalarını aşağıda görebilirsiniz 

/etc/sysconfig/network(-scripts)/ifcfg-eth0; 

Statik ip konfigürasyonu 

BOOTPROTO='static'

BROADCAST='160.75.90.255'

IPADDR='160.75.90.189'

MTU=''

NETMASK='255.255.255.0'

NETWORK='160.75.90.0'

REMOTE_IPADDR=''

STARTMODE='onboot'

UNIQUE='ZcKW.ijdEnB5Xfy7'

Dhcp konfigürasyonu 

BOOTPROTO='dhcp'

MTU=''

REMOTE_IPADDR=''

STARTMODE='onboot'

UNIQUE='1HdK.gMQgFXiJio1'

 

/etc/network/interfaces;

iface lo inet loopback

 

iface eth0 inet static

        address 160.75.90.195

        netmask 255.255.255.0

        broadcast 160.75.90.255

        gateway 160.75.90.254

 

iface eth1 inet dhcp

 

Bu konfigürasyonlardaki parametrelerin ne anlama geldiğine bakacak olursak; 

BOOTPROTO=<boot protokolü>;

Açılışta kullanılacak olan protokolü belirler. Seçenekler aşağıdaki gibidir. 

BROADCAST=<broadcast adresi>;

Broadcast adresi kısmına subnet maskesi gözönüne alınarak broadcast adresi yazılmalıdır.  örneğin;

IP Adresi                     :160.75.90.110

Subnet Maskesi            :255.255.255.0

Broadcast Adresi         :160.75.90.255 

DEVICE=<aygıt ismi>;

Aygıt ismi kısmına ağ aygıtının fiziksel ismi yazılmalıdır. Örneğin eth0, eth1 gibi. SuSE'de bu opsiyon kullanılmamaktadır. 

IPADDR=<ip adresi>;

Adres kısmına ip adresi yazılmalıdır. 

NETMASK=<subnet maskesi>;

Bu kısıma subnet maskesi yazılmalıdır. 

NETWORK=<ağ adresi>;

Bu kısma ağ adresi yazılmalıdır. Örneğin;

IP Adresi                     :160.75.90.110

Subnet Maskesi            :255.255.255.0

Ağ Adresi                     :160.75.90.0 

MTU=<>;

Her ip paketinin maksimum boyutunu belirler. Default değeri 1500'tür. 

STARTMODE=<mode>;

onboot, hotplug ve manual seçenekleri ile aygıtın açılışta aktive edilip edilmeyeceğini belirler. 

ONBOOT=<answer>;

Bu kısımda yes veya no parametresine göre aygıtın açılışta aktive edilip edilmeyeceği belirlenir. Bazı dağıtımlarda bulunmaktadır. 

UNIQUE=<>;

İşletim sisteminin aygıta verdiği unique id numarasıdır.

Daha öncede bahsedildiği gibi bu konfigürasyon dosyalarındaki değerleri network betiği tarafından ifconfig ve route gibi komutlarla kullanılarak aktif hale getirilirler. Konfigürasyon dosyalarında herhangi bir öntanımlı değere sahip olmayan veya bir sebepten dolayı aktif halde olmayan ağ arayüzlerini ifconfig komutu kullanılarak aktif hale getirilebilir. Bu komutla yapılacak olan konfigürasyonlar hafızada saklandığı için makine kapatıp açıldığında kaybedilir. 

Kullanılan her ağ kartının bir veya birden fazla internet adresi olabilir. Linux'a takılan birinci kart eth0 ismini alırken ikinci karta eth1, üçüncüye eth2 ... denir. Loopback cihazının ismi lo dur. ifconfig komutunu parametre vermeden kullanırsanız, Linux'a tanıtılan çevresel birimlerin listesi ekrana gelir. 

$ ifconfig

lo        Link encap:Local Loopback 

          inet addr:127.0.0.1  Bcast:127.255.255.255  Mask:255.0.0.0

          UP BROADCAST LOOPBACK RUNNING  MTU:3584  Metric:1

          RX packets:493 errors:0 dropped:0 overruns:0

          TX packets:493 errors:0 dropped:0 overruns:0

 

eth0      Link encap:10Mbps Ethernet  HWaddr 48:54:33:00:E8:3A

          inet addr:144.122.71.55  Bcast:144.122.71.255 Mask:255.255.255.0

          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1

          RX packets:171956 errors:0 dropped:0 overruns:0

          TX packets:113212 errors:3 dropped:0 overruns:0

          Interrupt:3 Base address:0x300

cclub.metu.edu.tr makinasının ifconfig bilgisi yukarıdaki şekildedir. Bu makina üzerinde tek ethernet kartı olup, ifconfig bilgisinde ikinci sırada yeralıyor. Kartla ilgili detaylı bilgi (her karta özgü donanım numarası, alınan ve verilen paket sayısı gibi) ifconfig çıktısında var. 

route komutunun genel kullanımı şu şekildedir: 

route [add|del] [-net|-host] varış_adresi [gw yönlendirici] seçenekler...

host                 : paketin gideceği yer başka bir makina
net                   : paketin gideceği yer başka bir ağ
varış_adresi     : paketin gideceği yer
yönlendirici     : bu paketin gidebilmesi için geçmesi gereken yönlendirici
add                  : tabloya ekle
del                   : tablodan sil 

Tablonun genel durumunu kontrol etmek için route komutuna parametre vermeden komut satırından yazın: 

cclub:~# route

Kernel IP routing table

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface

localnet        *               255.255.255.0   U     0      0       67 eth0

loopback        *               255.0.0.0       U     0      0        3 lo

default         router71.ceng.m 0.0.0.0         UG    1      0      404 eth0

Çıktıdaki kolonların ne ifade ettiğine bakacak olursak; 

Destination      : Paketin yönlendirileceği hedef ağ adresi

Gateway           : Paketin hedef ağa gidebilmesi için yönlendirildiği adres,* herhangi bir ağ     geçidi tanımı yapılmadığını gösterir

Genmask          : Hedef ağın alt ağ maskesi

Flags                : Yönlendirme kaydı için çeşitli manalar içerir. Örneğin;

·               U : yönlendirilen yol açık, ulaşılabilir(Up)

·               H : Hedef bir bilgisayar (Host)

·               G : Hedefe ağ geçidi  kullanarak ulaşılacak

·               !  :  Yasaklanmış ağ yönlendirmesi 

Metric                          : Hedefe olan uzaklık (Genellikle kaç router'dan geçerek hedefe ulaşıldığı). Güncel çekirdekler tarafından kullanılmazlar ama yönlendirme yapan daemon'ların ihtiyacı olabilir

Iface                : Yönlendirme sırasında kullanılacak ağ arayüzü 

Örnek tabloda üç ayrı yönlendirme girişi vardır. Birincisi, makinanın kendisi ile haberleşmesini sağlayacak olan loopback. İkinci satırda, yerel ağa gidecek olan tüm paketlerin yönlendiriciye verilmeden ağa yönlendirilmesi söylenmiş. Son sırada ise (default) paket ilk iki satırda yeralan varış adresinden farklı bir adrese gidecekse, önce yönlendiriciden geçip sonra dış dünyaya açılacağından yönlendiricinin IP adresi yazılmıştır. 

ifconfig, biraz karmaşık bir komuttur. Sistem yöneticisinden öğrenmeniz gereken subnet maskesi, broadcast adresi ve IP adresini kullanıp kartların konfigüre eder. 

ifconfig eth0 144.122.71.55 netmask 255.255.255.0 broadcast 144.122.71.255

Yukarıda ifconfig yardımıyla eth0 kartına hem bir IP adresi verilmiş, hem de bilgisayarın bulunduğu ağın özellikleri tanıtılmıştır.

Bu andan sonra istendiği kadar route komutu ile makinadan çıkacak paketler için yeni yollar tanımlanabilir. 

route add -net ...

route add -host ...

ifconfig ve route komutlarının yaptığı değişiklikler hemen gerçekleşirken konfigürasyon dosyalarında yapılan değişikliklerden sonra daha öncede bahsedildiği gibi aşağıdaki betik çalıştırılarak yeni konfigürasyon değerleri aktif hale getirilir. 

$ /etc/init.d/network restart

Bağlantıyı kontrol etmek İnternet adresini bilip çalıştığından emin olduğunuz bir makinaya telnet ile bağlantı yapmaya çalışın : 

$ telnet orca.cc.metu.edu.tr

Connected to orca.cc.metu.edu.tr

Escape character is ^]

 

Ethernet kartının bağlantısını yazılım yoluyla kesmenin yolu ifconfig 'in down seçeneğidir. Örneğin tek ethernet kartı üzerinden İnternet bağlantınız var ve bunu hemen kesmek için aşağıdaki komutlardan herhangi birisini yazın. 

# ifconfig eth0 down

# ifdown eth0

ethernet bağlantısını yeniden açmak için aşağıdaki komutlardan herhangi birisini kullanabilirsiniz 

# ifconfig eth0 up

# ifdown  eth0

 

Bu işlem sonrasında yönlendirme bilgilerini yeniden girmeniz gerekebilir.  

ping komutu, ağınızda bulunan bir makineye ağ üzerinden istediğiniz boyutta paketler yollayıp  karşıdaki makineden aldığı cevaplara göre ağ hızı açısından istatistiki bilgi veren bir uygulamadır. Bu bilgi sayesinde sizin makinenizin veya karşıdaki makinenin ağ bağlantısının problemli olup olmadığını ağ üzerinde paket gönderme hızlarında herhangi bir problem olup olmadığını kontrol edebilirsiniz.

cclub:~# ping knidos.cc.metu.edu.tr

PING knidos.cc.metu.edu.tr (144.122.199.20): 56 data bytes

64 bytes from 144.122.199.20: icmp_seq=0 ttl=253 time=34.0 ms

64 bytes from 144.122.199.20: icmp_seq=1 ttl=253 time=487.7 ms

64 bytes from 144.122.199.20: icmp_seq=2 ttl=253 time=3.6 ms

 

--- knidos.cc.metu.edu.tr ping statistics ---

3 packets transmitted, 3 packets received, 0% packet loss

round-trip min/avg/max = 3.6/175.1/487.7 ms

Normalde ping komutu siz Ctrl+C (^C) tuş kombinasyonu ile kesmediğiniz sürece paket yollamaya devam eder. Yukarıdaki çıktıya bakacak olursanız hedef makineye 3 paket yollandığı ve 3 paketinde paket kaybı olmadan hedefine ulaştığı görülüyor. Ayrıca paketin ne kadar sürede hedef makineye gittiğini ve cevabın döndüğünü(Rtt: Round Trip Time) gösteren istatistiklerde görülmektedir 

Rtt minimum                : 3.6 ms          

Rtt avg(average)          : 175.1 ms

Rtt maximum               : 487.7 ms

ping  komutunun bir diğer kullanımı ise ağ bağlantısının performans sınırlarını görmek içindir.  ping komutu flood modda (-f parametresi) çalıştırılarak saniyede 100 adet icmp paketi göndermek mümkündür. Bu değer normalde saniyede 1 icmp paketidir. ping  komutu flood moda çalıştığında her yolladığı paket için ekrana bir nokta basar ve cevap aldığında bu noktayı siler. Ekranda sabit kalan nokta sayısının artması ağ bağlantısının limitlerine ulaşıldığını gösterir

 

silivri:~ # ping www.google.com –f

 

PING www.l.google.com (64.233.161.147) 56(84) bytes of data.

..........

--- www.l.google.com ping statistics ---

39 packets transmitted, 29 received, 25% packet loss, time 1530ms

rtt min/avg/max/mdev = 172.649/174.683/177.651/1.207 ms, pipe 12, ipg/ewma 40.276/174.752 ms

 

traceroute komutu TCP/IP network'ü üzerinden hedef makineye yollanan paketlerin rotasını takip eden bir uygulamadır. Paket ağ üzerinde hareket ederken üzerinden geçtiği yönlendirme(routing) işlemi yapan cihazlarla ilgili bazı bilgileri çıktı olarak ekrana yönlendirir. 

silivri:~ # traceroute www.google.com

 

traceroute to www.google.com (216.239.59.104), 30 hops max, 40 byte packets

 1  yonlendirici.mydomain.tr (160.75.90.254)  0.224 ms   0.172 ms   0.168 ms

 2  160.75.126.34  0.620 ms   0.335 ms   0.477 ms

 3  195.175.7.65  1.621 ms   2.036 ms   1.929 ms

 4  getepem160-gtepem20-1.ttnet.net.tr (195.175.10.53)  2.310 ms 2.192 ms 10.498 ms

            .           .           .

            .           .           .

            .           .           .

 9  216.239.43.96  1245.401 ms   1245.960 ms   1245.812 ms

10  216.239.43.97  1245.919 ms   1244.563 ms   1244.287 ms

 

Bu çıktıda görüldüğü üzere her satırda bir  yönlendirici cihazın ters alan adı kaydı varsa bu ad yoksa ip adresi bulunmaktadır. Bunun yanı sıra aynı satırda 3 adet RTT (Round trip time) kaydı milisaniye cinsinden  bulunmaktadır. RTT (Round Trip Time) tanımı bir paketin yönlendirici makineye gönderilmesi ve geriye yollanan cevabın gelmesi için harcanan süreyi göstermektedir. 3 paket yollandığı için 3 adet kayıt bulunmaktadır. 

12  216.239.46.173  1229.819 ms * *

Bazen bazı satırlarda bir veya iki asterisk görürsünüz. Bu durumda yönlendirici makine hayatta ve cevap verebilir durumdadır. Ancak bir sebeple yollanan bir veya iki paketin cevabı gelmemiştir. Bu bir problem olduğunu göstermez, aslında normal bile sayılabilir.

Yönlendirici makine bir sebepten dolayı bu paketleri yoksaymıştır. Çoğu sistem bunu yapar. Bunlar genellikle yönlendirici olarak kullanılan bilgisayarlardır. Örneğin solaris kullanan yönlendirici makinelerde  ikinci RTT değeri  asterisk'tir. Cevap alınamayan paketleri paket kaybı olarak tanımlamak yanlış bir yaklaşımdır.  

13  216.239.49.254  1280.061 ms   1279.167 ms   1279.863 ms

14  216.239.48.158  1281.644 ms   1281.442 ms   1280.971 ms

15  216.239.49.117  1249.204 ms   1250.134 ms   1249.717 ms

16  * * *

17  * * *

Eğer traceroute çıktısı aşağıdaki gibiyse bunun anlamı ilk olarak hedef sisteme ulaşılamıyor olmasıdır. Daha doğrusu traceroute paketlerinin hedefe ulaşamadıklarını göstermektedir. Bu bir network problemini işaret edebileceği gibi güvenlik önlemleri ve firewall'lar yüzünden paketlerin engellenmiş olabileceği anlamına da gelebilir. Bu durumda hedef makineyle diğer yollarla iletişim kurulup kurulamadığını kontrol etmek gerekir. 

traceroute komutu bazen aşağıdaki gibi çeşitli hata uyarıları da verebilir 

4        4      rbrt3.exit109.com (208.225.64.50)  35.931 ms !H *  39.970 ms !H

!H : Hedef makineye ulaşılamıyor

!N : Ağ'a ulaşılamıyor

!P : Protokole ulaşılamıyor

!S : Kaynak rotası isteği başarılamadı

!F : Parçalama gerekmekte. Yanlış konfigüre edilmiş router

!X : Haberleşme engellendi. Ağ yöneticisi bu yönlendiricide traceroute paketlerini bloke etti 

Bazı durumlarda traceroute çıktılarında iç ağlar için ayrılmış ip adresleri yada arka arkaya aynı adresin geldiğini görürsünüz. Bu ağ yöneticilerinin kendi ağları  hakkındaki bilgileri saklamak için kullandıkları bir yöntemdir. 

Tracerotue ve Ping uygulamalarını birlikte kullanan mtr (My traceroute) uygulaması da mtr komutunun çalıştırıldığı makine ile hedef makine arasında ağ bağlantısının kalitesini paket kayıpları ve ping sürelerinin istatistiki bilgileri cinsinden gerçek zamanlı olarak programı sonlandırana kadar vermeye devam eder. Mtr komutunun çıktısını aşağıda görebilirsiniz.