Ağ Konfigürasyonu

Next: Kontrol Dosyaları Up: İnternet'e Bağlanma Previous: İnternet'e Bağlanma

## Ağ Konfigürasyonu

Bu bölümde anlatılan `rc.*` konfigürasyon 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 konfigürasyonu yapabilirsiniz.

Linux, açılırken bazı dosyalara bakarak düzgün çalışması için gerekli konfigürasyonu 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, konfigürasyonu yapan `/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 konfigürasyonunun 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

ODTÜ'deki bir Linux makinasının 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 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:

    $ 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ı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 ...

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.

    # /etc/rc.d/rc.inet1

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.

    # ifconfig eth0 down

ethernet bağlantısını yeniden açmak için

    # ifconfig eth0 up

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.

    # 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.

    # 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.

Next: Kontrol Dosyaları Up: İnternet'e Bağlanma Previous: İnternet'e Bağlanma