Yerel ağlar üzerinde yönetim ağın çapı küçük olsa bile zordur. Öncelikle IP adreslerinin her makineye teker teker verilmesi, DNS servisi ve varsayılan ağgeçid tanımlarının yapılması gerekir. Elle bunları yapmak son derece zahmetli olabilir. Bir yerel ağı bir DOMAIN’e, yani yerel alan’a çevirmenin ilk şartı, sistemdeki makinelerin tanınmasıdır. Bu amaçla işlemlerin otomatikman yapılmasını sağlayacak DHCP ve DNS servislerinin kurulması çok faydalı olacaktır.
İlerleyen satırlarda bu iki servisin kurulumundan bahsedeceğiz. Bunları kurabilmek için paketlerini elde etmemiz gerekecektir. Bilinen tüm dağıtımlarda mevcuttur. Fakat bilhassa DNS için kullanılan BIND exploitleri ile meşhur bir programdır. Bu nedenle özellikle BIND için http://www.isc.org sitesinden en son sürümü indirip derlemeniz tavsiye edilir. Diğer yandan dağıtmınızın sitesinden yada http://rpmfind.net sitelerinden güncel paketlerin RPM’lerini elde edebilirsiniz. Debian kullanıcıları, kendileri apt-get ile paket indirme lüksünü kullanabilirler.<
BIND paketi, tam teşekküllü bir DNS servisidir. Bazı dağıtımlar bunun biraz daha hafif ve sadece DNS isteklerini cache eden, bir DNS ilerletici olan NSCD sunabilmektedir. Biz daha garantili olduğu için BIND paketini kuruyoruz.
rpm -i bind.paketi.rpm
BIND, çok fazla bağımlılık isteyen bir paket değildir. Bu nedenle, kurulumda pek sorun yaşanmaz. Kurulumun ardından /etc/ dizininde iki ayar dosyası oluşur.
/etc/named.boot : named ilk çalıştığında kullanılır.
/etc/named.conf : named için ayarlar dosyasıdır.
Temel olarak, named ayarları, DNS bölgelerini tarif eder. Named’in DNS bölgelerindeki makine adları ise, başka bir dizinde başka bir dosyada saklanır. Bu dizinin yeri, named.boot içinde
directory /var/named
şeklinde belirtilir. cache edilecek serverler ise bu dosyada bir
cache . named.ca<
şeklinde gösterilir. BIND için “.”, DNS kökünü ifade eder. “.” DNS kökü iken, “com.” DNS kök sunucudaki com kaydını gösterir. Bu satır, named.ca dosyasında tarif edilen kök sunucuların cache edileceğini belirtir. Bu dosyanın yeri, “directory” ile belirtilir. Diğer yandan, localhost olarak bildiğimiz, makinenin kendisinin kaydının çözülmesi için gerekli olan 127.0.0.0 adreslerinin de belirtilmesi gerekir. Aslen sadece handle edilen domainler named.boot dosyasında belirtilirken konfigürasyon detayları named.conf içersinde verilir. boot dosyasında:
primary 0.0.127.in-addr.arpa named.local
primary, bunun bir primary DNS bölgesi olduğunu belirtir. 0.0.127.. satırı, bölgenin internet adıdır. Bölge adlarının in-addr.arpa şeklinde olması bunların, IP den Alan adına çözüm yapmak için kullanılacağını belirtir. Eğer, named.boot dosyanız yoksa bu üç satırı yazarak yenisini oluşturun.<
/etc/named.conf dosyası ise, asıl ayar verilerini ihtiva eder. Bölgeler hakkındaki detaylar burada tutulur. Biz sadece cache kullanacağımız için çok basit bir named.conf yeterli olacaktır.
options {
pid-file "/var/run/named/named.pid";
directory "/var/named";
// query-source address * port 53;
};
zone "." {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "named.local";
};
Bu /etc/named.conf dosyası, /var/named dizinindeki iki dosyaya referans vermektedir. named.ca dosyası, root serverleri göstermektedir. named.local ise, localhost için gerekli olan ayarları içerir. Localhost makinesinin kendisidir ve her TCP/IP belirtiminde mevcut olan 127.0.0.0 şeklindeki adreslerin çözülmesini sağlar.
Bu dosyalardan named.ca şu şekildedir:
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 128.9.0.107
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 198.41.0.10
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 198.32.64.12
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
Bu listedeki serverler DNS sisteminin kök sunucularıdır. Böylece, “.” için kök serverler tanıtılmış olur. Bu dosyanın yanında makinanın yerel arabirimini tanıtan named.local dosyası bulunur:
@ IN SOA localhost. root.localhost. (
1997022700 ; Serial
28800 ; Refresh
14400 ; Retry
3600000 ; Expire
86400 ) ; Minimum
IN NS localhost.
1 IN PTR localhost.
Bu satırlar, 127.0.0.1 adresinin DNS adının localhost olduğunu gösterirler.
Burada sırayla bahsedilen, /etc/named.boot, /etc/named.conf, /var/named/named.ca ve /var/named/named.local dosyaları büyük ihtimalle tamamen aynı içerikle BIND ile birlikte kurulurlar. Bunları yaptıktan sonra, artık named’i çalıştırmak ve kendi DNS’imizi kullanmak kalır geriye. Kendi DNS’imizi kullanmak için, /etc/resolv.conf içersinde, “nameserver” ile başlayan tek bir satır olmalıdır:
nameserver 127.0.0.1
Bunu yaptıktan sonra, artık DNS’imiz hazır. Dileyen herkes makine üzerindeki arabirimlerden bağlanıp DNS’i kullanabilir.
Bir püf noktası olarak, hint dosyasını, root server yerine kendi ISP’nizin sağladığı DNS’e çağrı yapılacak şekilde ayarlayabilirsiniz. Bu amaçla, önce ISP’nin size verdiği DNS adresinin REVERSE kaydını öğrenin.
#nslookup 212.252.119.3
alpha1.superonline.com
Bu değeri hint dosyasına yazın:
. 3600000 NS alpha1.superonline.com.
alpha1.superonline.com. 3600000 A 212.252.119.3
Böylece karışık ayarlar gerekmeden, hem cache eden, hemde istekleri forward eden bir DNS sahibi olabilirsiniz. Bazen, bu tür bir DNS çok daha hızlı olabilmektedir.
named, genelde çok fazla sorun çıkarmaz. En büyük sorunlar, hatalı oluşturulmuş conf dosyalarıdır. Diğer yandan ne şekilde çalıştırılırsa çalıştırılsın oluşan hataları /var/log/messages içersine koyar. Eğer named çalışmazsa bu dosyanın sonuna bakmak faydalı olur.
DHCP
DHCP, Dynamic Host Configuration Protocol demektir. Ağdaki makinelerin ağ ile ilgili parametrelerini, ki bunların başında IP adresi, DNS adresi, Gateway Adresi gibi kritik değerler yer alır, istemcilere otomatik olarak yükler. Böylece ağ yönetimi kolaylaşır.
DHCP, BIND gibi ISC tarafından Open Source olarak yayınlanır. BIND’i temin ettiğiniz şekilde temin ederek kullanabilirsiniz. Windows üzerindeki DHCP servisleri çok temel bir kaç özelliğe sahiptir. Fakat, DHCP’nin resmi serveri olan ISC-DHCPD, pek çok özelliğe sahiptir. Bizim küçük yerel ağımız için bunların hepsi gerekmez. Gereken tek şey bir /etc/dhcpd.conf dosyasıdır.
subnet 192.168.1.0 netmask 255.255.255.0 {
option routers 192.168.1.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.1.1;
range dynamic-bootp 192.168.1.129 192.168.1.240;
}
Bu satırları, bu dosyanın içersine eklediğinizde DHCP server hazır olacaktır. Ağımızın, 192.168.1.0/24 ağı olduğunu farzettik. Linux kutumuzun yerel ağa bakan ethernetinin ise 192.168.1.1 olarak kabul edildi. Bu makinede bir DNS server çalıştığını farzettik. Yerel ağdaki makinelere 192.168.1.129 .. 192.168.1.240 arasındaki adreslerin atanmasını istedik. Bizim Linux kutumuzun, aynı zamanda internet için gateway olduğunu belirttik. Teker teker belirtirsek,
subnet 192.168.1.0 netmask 255.255.255.0 -> Ağ adresimiz ve netmask değerlerimiz.
option routers 192.168.1.1; -> 192.168.1.1, sistemi internete çıkaracak router/gateway.
option subnet-mask 255.255.255.0; -> Ağımızın netmask değeri.
option domain-name-servers 192.168.1.1; -> Kullanılacak DNS'in adresi.
range dynamic-bootp 192.168.1.129 192.168.1.240; -> Terminallere atanacak IP adresleri
Dikkat edilmesi gereken bir husus, dhcp’nin okuma ve yazma yetkisinde sahip olduğu bir terminal veritabanı gerekliliğidir. RPM paketleri ve tar.gz içersinden çıkan makefile, bu dosyayı otomatikman oluşturur. Dağıtımına bağlı olarak bu dosya,
/var/state/dhcpd/dhcpd.leases
/var/spool/dhcpd.leases
/etc/dhcpd.leases
gibi farklı yerlerde olabilir. Eğer bu dosya açılamazsa, DHCPD dosyayı nerede aradığını hem ekrana, hemde log dosyasına (/var/log/messages) kaydeder. Buradan bakacağınız dosyayı oluşturmanız yeterli olacaktır.
echo ” “>/var/state/dhcpd.leases
şeklinde boş bir dosya oluşturmanız yeterli olur.
Bu aşamadan itibaren dhcpd çalıştırıldığında terminaller otomatikman Linux kutusu tarafından ayarlanacaklardır.