Anlatmaya çalışacağım konuların başlıkları kısaca aşağıdaki başlıklar altında toplanmıştır.
Linux Üzerinde IP adreslerinin ayarlanması IP adresinin öğrenilmesi IP adresinin değiştirilmesi Bir kart üzerinde birden fazla IP adresinin atanması Network kartının aktif/pasif yapılaması Routing tablosunun görüntülenmesi Gateway adresinin değiştirilmesi İki Gateway adresi nasıl Route tablosunun silinmesi </LI>
Kullanacağım işletim sistemi Fedora 8. Ancak sizin kullanacağınız diğer Linux dağıtımlarında da kullanabilirsiniz.
Linux Üzerinde IP adreslerinin ayarlanması
Linux sisteminin kurulumu tamamlandıktan sonra, makine üzerindeki network kartlarına sırası ile eth0, eth1 adları atanır. Her network kartının IP adresini öğrenmek için ifconfig komutu kullanılır.
İlk olarak bilgisayarımız IP adresini öğrenelim..
eth0 Link encap:Ethernet HWaddr 00:0C:29:49:0F:83
inet addr:172.19.23.201 Bcast:172.19.23.255 Mask:255.255.255.0
inet6 addr: fe80::20c:29ff:fe49:f83/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:85 errors:0 dropped:0 overruns:0 frame:0
TX packets:79 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:7806 (7.6 KiB) TX bytes:11177 (10.9 KiB)
Interrupt:16 Base address:0x2024
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:990 errors:0 dropped:0 overruns:0 frame:0
TX packets:990 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:50364 (49.1 KiB) TX bytes:50364 (49.1 KiB)
Makinemizde bulunan tüm kartların IP adreslerini öğrenmiş olduk. Burada eth0 makinemize bağlı olan ilk network kartı ve IP adresi 172.19.23.255, netmask olarak 255.255.255.0 yani /24 kullanıyor.
Lo olarak gördüğünüz ise loopback kartımız ve adresi 127.0.0.1.
ifconfig komutu sadece IP adresleri ile ilgili bilgileri değil her kartın kullandığı interrupts, PCI Bus ID ile bilgileride ekrana döker. Network kartınızın çalışmadığı durumlarda, bu interrupt noktalarını kontrol etmenizde fayda olacaktır. Interrupt atamaları için /proc/interrupts dosyasına göz atmanız gerekecektir. Bizim örneğimiz de ise kartımız 16 nolu interrupt ı kullanmakta(Sistem vmware üzerinde çalıştığından vmxnet ether olarak görünüyor).
[root@erd-lynx-ltp-01 ~]# vi /proc/interrupts
CPU0
0: 778 IO-APIC-edge timer
1: 156 IO-APIC-edge i8042
6: 5 IO-APIC-edge floppy
7: 0 IO-APIC-edge parport0
8: 1 IO-APIC-edge rtc
9: 0 IO-APIC-fasteoi acpi
12: 965 IO-APIC-edge i8042
14: 0 IO-APIC-edge libata
15: 2403 IO-APIC-edge libata
16: 319 IO-APIC-fasteoi vmxnet ether
17: 0 IO-APIC-fasteoi ehci_hcd:usb1
18: 138 IO-APIC-fasteoi uhci_hcd:usb2, Ensoniq AudioPCI
19: 11196 IO-APIC-fasteoi ioc0
NMI: 0
LOC: 149906
ERR: 0
MIS: 0
<I style=”mso-bidi-font-style: normal”>/proc/interrupt dosyası görünümü</I>
<I style=”mso-bidi-font-style: normal”></I>
Yukarıdaki interrupt numaralarını birden fazla cihaz kullanıyorsa o zaman cihazlarınızın kullanma klavuzlarına göz atarak, bu interruptları değiştirebilirsiniz.
IP Adresinin Değiştirilmesi
Ifconfig komutu ayrıca network kartlarının IP adreslerini değiştirmek için de kullanılır.
[root@erd-lynx-ltp-01 ~]# ifconfig eth0 172.19.23.202 mask 255.255.255.0 up
[root@erd-lynx-ltp-01 ~]# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:0C:29:49:0F:83
inet addr:172.19.23.202 Bcast:172.19.255.255 Mask:255.255.0.0
inet6 addr: fe80::20c:29ff:fe49:f83/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:703 errors:0 dropped:0 overruns:0 frame:0
TX packets:345 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:55189 (53.8 KiB) TX bytes:45768 (44.6 KiB)
Interrupt:16 Base address:0x2024
eth0 adlı network kartımızın IP adresi değişti.Satır sonundaki up komutu network kartınızı değişikliklerden sonra aktif hale getirmek için kullanılır. Burada dikkat edilmesi gereken konu ifconfig ile yapacağınız değişiklerin, sisteminizi tekrar başlattıktan sonra kaybolacağıdır. Eğer değişiklikleriniz kaybolmasını istemiyorsanız bu komutu /etc/rc.local dosyasına eklemeniz gerekmektedir.
Fedora bu işi biraz daha kolaylaştırıp, her network kartı için ayrı bir konfigürasyon dosyası yaratır. Bu dosyalar /etc/systconfig/network-scripts dizini altında bulunur.
[root@erd-lynx-ltp-01 ~]# ls -al /etc/sysconfig/network-scripts/
total 396
drwxr-xr-x 2 root root 4096 2008-06-12 13:36 .
drwxr-xr-x 7 root root 4096 2008-06-12 11:23 ..
-rw-r–r– 3 root root 259 2008-06-12 12:56 ifcfg-eth0
-rw-r–r– 1 root root 254 2001-06-21 01:59 ifcfg-lo
Yukarıda gördüğünüz gibi eth0 network kartı için ifcfg-eth0 adlı bir dosyamız var. Yeni IP adresniz bu dosyanın içine yazmanız gerekmektedir.
[root@erd-lynx-ltp-01 ~]# cat /etc/sysconfig/network-scripts/ifcfg-eth0
# Advanced Micro Devices [AMD] 79c970 [PCnet32 LANCE]
DEVICE=eth0
BOOTPROTO=static
HWADDR=00:0C:29:49:0F:83
ONBOOT=yes
DHCP_HOSTNAME=erd-lynx-ltp-01
TYPE=Ethernet
IPADDR=172.19.23.201
NETMASK=255.255.255.0
GATEWAY=172.19.23.1
IP adresimizi ifconfig komutu ile değiştirdiğimiz halde, bu makine tekrar başlatıldığında, eski IP adresini alacaktır. Bunu engellemek için yukarıdaki dosyada IPADDR satırını yeni IP adresi ile değiştirmemiz gerekmektedir.
Yukarıda dosyadaki parametlerin açıklamalarını aşağıdaki tabloda bulabilirsiniz.
DEVICE
Network kartımız
HWADDR
Network kartımızın MAC adresi
ONBOOT
Sistemin açılışı esnasında aktif olup olmayacağını belirtir. No parametresi ile değiştirildiğinde kartımız açılış esnasında aktif olmayacaktır.
BOOTPROTO
Manuel olarak IP adresi atıyorsak o zaman static parametresi gelir. DHCP’den IP alıyorsak dccp parametresi eklenir.
DHCP_HOSTNAME
DHCP makinemizin adı
TYPE
Kart tipi
IPADDR
IP adresimiz
NETMASK
Netmask
GATEWAY
Gateway adresimiz
Bu dosyalarda yaptığınız değişikliklerin aktif olabilmesi için kartlarınızı yeniden başlatmanız gerecektir. Bunu iki şekilde yapabilirsiniz.
[root@erd-lynx-ltp-01 ~]# ifdown eth0
[root@erd-lynx-ltp-01 ~]# ifup eth0
Yada
[root@erd-lynx-ltp-01 ~]# service network restart
NETWORK KARTINA BİRDEN FAZLA IP ADRESİ ATANMASI
Bu bölümde bir network kartına birden fazla IP adresini nasıl atarız onu anlatmaya çalışacağım. Linux üzerinde bir network kartına birden fazla IP adresi atayabilmemiz için öncellikle ikinci IP adresi atayacağımız kart için bir adet sanal alt arayüz(virtual subinterface) oluşturmamız gerekmektedir. Yani IP alias. IP alias genelde ana-network-kartı:X formatında yaratılır. Öncellikle virtual subinterface yaratalım.
Makinemizde fiziksel network kartının bağlı olduğunu ve bu kartın eth0 olduğunu varsayarak işlemlere başlıyoruz.
ifconfig komutu ile sanal kartımızı yaratıyoruz </LI>
[root@erd-lynx-ltp-01 ~]# ifconfig eth0:0 192.168.0.5 netmask 255.255.255.0 up
Daha sonra sanal kartımız çalışıyor mu onu test ediyoruz </LI>
[root@erd-lynx-ltp-01 ~]# ping 192.168.0.5
PING 192.168.0.5 (192.168.0.5) 56(84) bytes of data.
64 bytes from 192.168.0.5: icmp_seq=1 ttl=64 time=0.664 ms
64 bytes from 192.168.0.5: icmp_seq=2 ttl=64 time=0.127 ms
64 bytes from 192.168.0.5: icmp_seq=3 ttl=64 time=0.092 ms
— 192.168.0.5 ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 2001ms
rtt min/avg/max/mdev = 0.092/0.294/0.664/0.262 ms
/etc/sysconfig/network-scripts altında eth0:0 dosyamızı yaratak bu ayarların kalıcı olmasını sağlıyoruz. </LI>
DEVICE=eth0:0
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.0.5
NETMASK=255.255.255.0
Daha sonra network kartımızı tekrar kapatıp açıyoruz. </LI>
[root@erd-lynx-ltp-01 network-scripts]# ifdown ifcfg-eth0:0
[root@erd-lynx-ltp-01 network-scripts]# ifup ifcfg-eth0:0
[root@erd-lynx-ltp-01 network-scripts]#
<I style=”mso-bidi-font-style: normal”>ÖNEMLİ NOT: Ana kartınızı yani eth0 nolu kartınızı kapamanız durumunda sanal kartınızda kapanır. Ancak sanal kartlar, fiziksel kartlardan bağımsız olarak kapatılıp açılabilirler.</I>
ROUTING TABLOSUNUN GÖRÜNTÜLENMESİ
Netstat –nr komutu ile makinenizdeki routing tablosunu görüntüleyebilirsiniz. 0.0.0.0 gateway adresli network ler genelde direct olarak network arayüzüne bağlıdırlar. Bu nedenle o network’e erişmek için herhangi bir gateway adresine ihttiyaç duymazsınız.
[root@erd-lynx-ltp-01 ~]# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
172.19.23.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 172.19.23.1 0.0.0.0 UG 0 0 0 eth0
GEÇERLİ GATEWAY ADRESİNİN DEĞİŞTİRİLMESİ
DHCP sunucusunun olduğun network ortamlarında genelde geçerli gateway adreslerini DHCP sunucuları atar. Ancak static IP ile adreslendirilmiş network kartları için manuel olarak gateway girmek durumundasınız.
Senaryomuz şu; elimizde bir adet statik olarak ip adresi atadığımız eth0 network kartımız var. Ortamda internet gateway’i olarak 192.168.0.1 adresli router’ı kullanıyoruz. Default gateway olarak bu adresi atayacağız.
[root@erd-lynx-ltp-01 ~]# route add default gw 192.168.0.1 eth0
Bu işlemin kalıcı olması ve her açılışta default gateway adresini girmemek için /etc/sysconfig/network dosyası altına gateway parametresini eklemeniz yeterli olacaktır.
NETWORKING=yes
HOSTNAME=erd-lynx-ltp-01
GATEWAY= 192.168.0.1
Eğer network dosyalarınızı karıştırmak istemiyorsanız yukarıdaki route add komutunu /etc/rc.d/rc.local dosyasına yazarak, sisteminiz yeniden başlatıldığında uygulayabilirsiniz.
İKİ DEĞİŞİK GATEWAY ADRESİNİN TANIMLANMASI
Yukarıdaki örnekte gateway adresinin nasıl tanımlandığına baktık. Şimdiki senaryomuz ise biraz değişik. Yukarıda verdiğimiz örnekte 192.168.0.1 adresini kullandık. Bu adres bizim internet çıkış router adresimiz. Ancak şirketimiz iç network adresimiz 10.0.0.0 ve bu adrese çıkışımızı sağlayan ikinci router’ın ip adresi ise 192.168.0.2
Internet çıkış router IP adres(Gateway) : 192.168.0.1
Şirket içi çıkış router IP adres(Gateway) : 192.168.0.2
İki değişik yoldan bu iki gateway adresini tanımlayabiliriz. İlk olarak geçici tanımlamaya bakalım.
[root@erd-lynx-ltp-01 ~]# route add -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.0.2 eth0
-net anahtarı bizim network’e yönlendirme yaptığımızı belirtiyor. Eğer belirli bir sunucuya yönlendirme yapmak istiyorsak;
[root@erd-lynx-ltp-01 ~]# route add -host 10.0.0.1 gw 192.168.0.2 eth0
Komutunu girmemiz yeterli olacaktır. Buradaki –host anahtarı belirli bir makine IP sini belirtir.
Bu girişleri daimi yapmak için yukarıdaki komutları /etc/rc.d/rc.local adresine girmeniz yeterli olacaktır.
DAİMİ STATİK ROUTE GİRİŞLERİ
Fedora işletim sistemlerinde statik route’lar /etc/sysconfig/network-scripts altında yapılır. Genelde bu girişler route-arayüz-adı olarak kayıt edilir. Yani eth0 için route dosyası route-eth0 olacaktır.
Bizim örneğimizde 10.0.0.0 ağına 192.168.0.2 IP adresli router üzerinden erişmek için router-eth0 dosyasına aşağıdaki parametleri girmemiz gerekir.
10.0.0.0/8 via 192.168.0.2
<I style=”mso-bidi-font-style: normal”>Önemli Not: Burada yaratacağımız route dosyalarının adları önemlidir. Yanlış arayüz adlarının girilmesi, bir sonraki çalıştırma esnasında arayüzlere atanmayacaktır. Dosyalarınızı doğru yaratıp yaratmadığınızı kontrol etmek için ifup-route komutunu kullanabilirsiniz.</I>
[root@erd-lynx-ltp-01 network-scripts]# ./ifup-routes eth0
RTNETLINK answers: File exists
[root@erd-lynx-ltp-01 network-scripts]#
Bu komut çalıştırıldıktan sonra giriş route tablonuza eklenecektir.
[root@erd-lynx-ltp-01 network-scripts]# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.0.0.1 192.168.0.2 255.255.255.255 UGH 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
172.19.23.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
10.0.0.0 192.168.0.2 255.0.0.0 UG 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 172.19.23.1 0.0.0.0 UG 0 0 0 eth0
ROUTE TABLOLARININ SİLİNMESİ
Route tablolarını silmek için route del komutunu –net anahtarı ile kullanmanız gerekecektir. Ayrıca eğer bu route için /etc/sysconfig/network-scripts altında bir dosya yaratmışsanız o dosyayı da sistemden silmek zorundasınız.
[root@erd-lynx-ltp-01 network-scripts]# route del -net 10.0.0.0 netmask 255.0.0.0 gw 192.168.0.2 eth0
[root@erd-lynx-ltp-01 network-scripts]# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
10.0.0.1 192.168.0.2 255.255.255.255 UGH 0 0 0 eth0
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
172.19.23.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 172.19.23.1 0.0.0.0 UG 0 0 0 eth0
Herhangi bir sunucu route’ı silmek için
[root@erd-lynx-ltp-01 network-scripts]# route del -host 10.0.0.1 gw 192.168.0.2 eth0
[root@erd-lynx-ltp-01 network-scripts]# netstat -nr
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
192.168.0.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
172.19.23.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth0
0.0.0.0 192.168.0.1 0.0.0.0 UG 0 0 0 eth0
0.0.0.0 172.19.23.1 0.0.0.0 UG 0 0 0 eth0
Bir dahaki yazımda bir Linux Sistemini nasıl bir router haline getirebileceğimizi anlatmaya çalışacağım. Şimdilik herkese kolay gelsin
Bir Başka Makalede Görüşmek Üzere….
Erdal YAZICIOGLU