Bu bölümde anlatılan rc.* yapılandırma dosyaları Slackware
dağıtımına özeldir. Diğer dağıtımlarda da açılışta çalışan benzeri
rc dosyaları değiştirilerek ya da sistemle birlikte gelen sistem
yönetim araçları kullanılarak istediğiniz yapılandırmayı gerçekleştirebilirsiniz.
Linux, açılırken bazı dosyalara bakarak düzgün çalışması için gerekli
yapılandırmayı yapar ve bazı yazılımları çalıştırır. Bu dosyalar
/etc/rc.d dizini altında yeralır. İnternet bağlantısı için
sadece iki dosyaya gerek duyulur. Slackware dağıtımı içinde bunlar,
yapılandırmayı gerçekleştiren /etc/rc.d/rc.inet1 ve temel ağ programlarını
çalıştıran /etc/rc.d/rc.inet2 dosyalarıdır.
Bu dosyadaki değerleri gerektiği şekilde düzenleyerek İnternet'e bağlanacağız.
Öncelikle rc.inet1 dosyasının içeriğine göz atalım:
HOSTNAME=`cat /etc/HOSTNAME`
/sbin/ifconfig lo 127.0.0.1
/sbin/route add -net 127.0.0.0
IPADDR="144.122.71.55"
NETMASK="255.255.255.0"
NETWORK="144.122.71.0"
BROADCAST="144.122.71.255"
GATEWAY="144.122.71.1"
/sbin/ifconfig eth0 $IPADDR broadcast $BROADCAST netmask $NETMASK
/sbin/route add -net $NETWORK netmask $NETMASK
/sbin/route add default gw $GATEWAY metric 1
ifconfig komutu, ağ bağlantısı yapan kartın belirli parametreler ile
yapılandırılmasını sağlar. Kart kimliğini bilgisayara tanıtmak için bu
komut kullanılır.
İlk satırdaki ifconfig programı, makinanın kendisiyle haberleşmesini
sağlamak amacıyla kendi ağ adresini (loopback device) 127.0.0.1 olarak
tanıtmıştır. İnternet üzerindeki her makinanın loopback adresi 127.0.0.1
'dir. 127 ile başlayan hiç bir adres, İnternet üzerinde gerçek bir adres
olarak kullanılamaz.
Her paket, gönderileceği adrese gitmeden önce bir tabloya bakar. Bu
tablo, paketin muhtemel rotasını içerir. route komutu yardımıyla bu
tablo oluşturulur veya kontrol edilir. Genellikle bir kart için bir
ifconfig kullanılırken, paketin yollanacağı birden fazla rotanın
olması durumunda rc.inet1 dosyasında birden fazla route komut
girdisi yapılacaktır.
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 ayrıntılı bilgi (her kart ö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] varis_adresi [gw yonlendirici] secenekler...
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
Ö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ı
yapılandırır.
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 ...
Dosyanın içeriğini sistem görevlisinin verdiği bilgiler doğrultusunda
değiştirdikten sonra komut satırından çalıştırmanız, İnternet'e bağlantı
için yeterli olacaktır.
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 satırı yazın.
ethernet bağlantısını yeniden açmak için
komutunu girmelisiniz. Bu işlem sonrasında yönlendirme bilgilerini
yeniden girmeniz gerekebilir.
ping komutu, bağlantıları ve aynı zamanda bağlantı hızını ölçmek
için kullanılan bir komuttur. Ping, ICMP protokolü yardımıyla hedef
makinaya belirli uzunlukta paketler gönderir. Karşıdaki makina bunları
aldığı anda bekletmeden geri yollar. Arada geçen zaman farklı, iki makina
arasındaki bağlantı hızı hakkında fikir verir.
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
netstat komutu, makinanın ağ kartı üzerinden yapılan
bağlantıların dökümünü çıkarır.
cclub:~# netstat
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 cclub.metu.edu.tr:1947 ftp02.quicktime.appl:20 ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1943 despair.thebandit.c:ftp ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1424 despair.thebandit.co:20 ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1932 ftp02.quicktime.app:ftp ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1407 165.113.58.253:20 ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1392 165.113.58.253:ftp ESTABLISHED
tcp 0 0 cclub.metu.edu.tr:1377 ppp23.cc.metu.ed:telnet ESTABLISHED
tcp 0 0 cclub.metu.edu.t:telnet pclabI_23.feas.met:7075 ESTABLISHED
tcp 1 0 cclub.metu.edu.t:telnet ppp23.cc.metu.edu.:1054 TIME_WAIT
tcp 0 0 cclub.metu.edu.t:telnet labmonitor.feas.m:10345 ESTABLISHED
tcp 0 9495 cclub.metu.edu.t:telnet a5-03-asy27.bil-ro:1026 ESTABLISHED
tcp 0 0 cclub.metu.edu.t:telnet pclabI_14.feas.me:15694 ESTABLISHED
tcp 0 0 cclub.metu.edu.t:telnet stu21.math.metu.e:16158 ESTABLISHED
Active UNIX domain sockets (w/o servers)
Proto RefCnt Flags Type State I-Node Path
unix 1 [ ] STREAM CONNECTED 232
unix 1 [ ] STREAM CONNECTED 299
unix 1 [ ] STREAM CONNECTED 327
unix 1 [ ] STREAM 591
İkinci önemli dosya olan /etc/rc.d/rc.inet2, belli başlı tüm
İnternet sunucularını çalıştırır. Aşağıda bu dosyanın bir kısmı görülüyor.
#!/bin/sh
NET="/usr/sbin"
IN_SERV="lpd"
LPSPOOL="/var/spool/lpd"
echo -n "Starting daemons:"
# inetd calistiriliyor.
if [ -f ${NET}/inetd ]; then
echo -n " inetd"
${NET}/inetd
else
echo "no INETD found. INET cancelled!"
exit 1
fi
# degisik internet servisleri sirasiyla calistiriliyor.
for server in ${IN_SERV} ; do
if [ -f ${NET}/${server} ]; then
echo -n " ${server}"
${NET}/${server}
fi
done
Bu açılış dosyası, ağ üzerinden servs veren bir dizi sunucu programı
çalıştırıyor ve hataları engellemek için programların yerinde olup olmadığına
da bakıyor.