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.