Bind9 DNS Server, ağ aygıtlarının IP Adreslerini domain isimlerine atamanızı sağlar. Bind ile bir IP Adresine, birden fazla domain ismide atayabilirsiniz. Örnek olarak; 192.168.1.10 IP adresli ağ aygıt için hem Webserver “domain.com.tr” hemde Mailserver “mail.domain.com.tr” isimlerini ve istediğiniz kadar fazla isim kullanabilirsiniz. Bind9 DNS Server Kurulumu konusunda biraz DNS mantığına birazda Bind’in çalışma prensibine değineceğim. Eğer siz windows kullanıcıysanız, ilerde Windows Server 2012 R2’de DNS Kurulumunu göstereceğim.
🖥DNS(Domain Name System) Nedir?
İnternetteki her ağ aygıtına, “IP adresi” adı verilen ve benzersiz olan (ancak zaman içinde değişebilen) bir numara verilir).
Örneğin, benim websitemin “azizozbek.ch” IP adresi 104.18.51.8 . Windows’ta Cmd konsolunu veya Linux’ta bir Terminali açıp ping azizozbek.ch
veya nslookup azizozbek.ch
yazarsanız, web sitemin IP adresini alırsınız. Normalde web siteme taraycı ile http://104.18.51.8/ veya terminalden curl 104.18.51.8
ile ulaşabilirsiniz. Fakat ben Cloudflare kullandığım için ve Cloudflare doğrudan Ip adresine izin vermediği için şuan ulaşamazsınız. Benim site yerine Google’a ping atın ve gelen IP’yi Tarayıcıdaki adres çubuğu kısmına yapıştırın(http://172.217.18.3).
Bu tür sayılarin bizim için hatırlanması zor ve IP adresleri değişebileceğinden, DNS (Domain Name System) geliştirildi. Bu sistem IP adreslerine, Domain adı verilen okunması daha kolay bir ad atar.
Domain ve Subdomain nedir?
DNS‘in mantığı cep telefonunuzdaki Kişiler Rehber ile aynıdır. Misal; Ahmet’in iki tane numarası var, biri iş hayatında kullandığı numara, diğeri özel hayatta kullandığı numara. Sen de Ahmet’i aramak istiyorsun. Eğer telefondunda kişiler rehberi olmasaydı, iki numarayı da ezbere bilmek zorunda olurdun ve her seferinde yazman gerekirdi. Rehber olduğu için, yapman gereken sadece Ahmetin ismini bilmek ve bu iki numarayı rehberine, “Ahmet İş” ve “Ahmet Özel” diye kaydetmek.
Böyle kaydettiğimizde DNS mantığı ile bakarsak iki tane Domain ismimiz olur, yani rehberde iki kişilik yer kaplamış olur. Fakat önce Ahmet’i ismi ile kayıt edip, sonra İş ve Özel olarak iki alt numara kaydederseniz, rehberinizde bir tane Domain ve bu Domaininde de iki tane Subdomain olmuş olur.
Bind nedir?
BIND – Berkeley Internet Name Domain, Linux İşletim Sistemleri için alan adı sisteminde (DNS) isim çözümlemeye yarayan açık kaynaklı bir program paketidir. Yazılım, 1980’lerin başında Berkeley’deki California Üniversitesi’nde ortaya çıktı. Bu yüzden ismini bulunduğu yer olan Berkeley’den almıştır. Şimdilik bize bu kadar bilgi yeter. Bind hakkında daha fazla öğrenmek istiyorsanız resmi web sitesini ziyaret edebilirsiniz.
Bind9 DNS Server Kurulumu Linux – Ubuntu 16.04
🛠Güncelleme & Kurulum
Öncelikle, sisteminizi güncellemeniz ve yükseltmeniz gerekir, böylece olası bir hata ile karşılaştığınızda, güncellik problemini listenizden kaldırabilirsiniz.🙂
sudo apt update -y - sudo apt upgrade -y
Eğer Ubuntu 16.04 Versiyonundan aşağısını kullanıyorsanız, “apt-get” yazmalısınız.
sudo apt-get install bind9 bind9utils
Kurulum başarı ile tamamlandıktan sonra BIND’i IPv4 moduna ayarlayın. sudo vi /etc/default/bind9
Birincil DNS Server Yapılandırma
Hedef
Benim iki tane Sanal Makinem var. Bunlardan birini Nameserver olarak diğerini de Client olarak kullanıcam.
Host | Rol | FQDN* | IP Address |
---|---|---|---|
ns | Birincil DNS Server | ns.dns.azizozbek.ch | 192.168.1.130 |
client | DNS Client | client.dns.azizozbek.ch | 192.168.1.131 |
*FQDN = Fully-Qualified Domain Name
Ilk olarak Bind dizinine gidelim. cd /etc/bind/
named.conf.options
dosyasinda nameserver dahil güvenilir Hostları(Ağ Üyelerini) belirleyelim. Ben bu konuda Slave Nameserver(Yedek, Köle) eklemicem. Slave Nameserver ile verilerinizi iki yerde tutarsınız ve Nameserverlardan birinde taşma olursa, yada kapanırsa, yedek Nameserver devreye girer, binevi backup. Lokalde kurulum yapıyorsanız, büyük ihtimal fazla ihtiyaç duymazsınız.
Recursive Mode
Eğer Recursive Modunu etkinleştirirseniz, Clientlardan(Resolver) Domain talebi geldiğinde ve istenilen Domain Nameserverda bulunmadığında, Nameserver diğer Nameserverlara talebi iletir, eğer onlarda da Domain bulunmazsa, size öneride bulunur
Iterative Mode
İterative Modunda, Nameserver’da istenilen Domain varsa size IP’yi verir, yoksa bilmediğini söyler.
Yukarda ki düzenlemeleri yaptıktan sonra, Zoneları(Alanları) belirleyelim. named.conf.local
dosyasında henüz bişi olmayabilir. Aşağıdak ekran fotosundaki yazabilirisiniz(elinizin alışması için öneririm). Yazmak istemiyorsanız, named.conf.default-zones
dosyasinda hazır Şablonlarda mevcut. Ordan named.conf.local
dosyasına kopyalayabilirsiniz ve isimleri kendinize göre değiştirebilirsiniz. İlk zone paragrafı bizim Forward lookup zone’muz. İkincisi ise Reverse(ters) Lookup Zone. Burda dikkat etmeniz gereken, DNS çözümleme sağdan başladığı için, Ağ Ip’inizi tersten yazmanız. Yani Ağ Ip’isi 192.168.1.0 ise 1.168.192.in-addr.arpa yazmalısınız.
Bölge isimleri size bağlı. Bu konu için ben kendi sitemin reklamını yaptığım için “dns.azıözbek.ch” adresini seçiyorum. Siz Lokalde deniyorsanız, ismi istediğiniz gibi değiştirebilirsiniz. Misal bir Lig ismi kullanabilirsiniz. Örneğin “superlig.local”. Böylece, Futbol Kulübü isimlerini Clientlara atayabilir ve bunları kolayca hatırlayabilirsiniz. Misal benim çalıştığım şirkette Gezegenleri Nameserver olarak kullanıyorlar.
📝Forward Lookup Zone – Bind9 DNS Server Kurulumu
İlk olarak Zone’lar(Alanlar) için ayrı bir klasör oluşturalım. sudo mkdir /etc/bind/zones
. Sonra db.local
dosyasını kendi Forward Lookup Zone adınızı vererek kopyalayın. Bu isim named.conf.local
‘de ki ile aynı.
cp db.local zones/db.dns.azizozbek.ch
DNS Resource Records – Kaynak Kayıtları
$TTL: (Time to Live) Hayatta Kalma Zamanının değerini belirtir. Burada saniye cinsinden belirttiğimiz süreç, diğer DNS sunuculara bu alanın kayıtlarını ne kadar süreyle onbellege alması gerektiğini söyler. Yani burada bir DNS Sunucusunun bizim Sunucudan istek talep ettiğinde, verdiğimiz cevabın onların Onbelleğinde ne kadar süre durmasını söyler. Böylelikle aynı sunucu TTL Süresi bitene kadar ikinci kez aynı Sorgu için bizim sunucuya gelmek zorunda kalmaz.
SOA (Start of Authority): Bu kayıt dosyanın içinde olmalıdır. Bir domaine ait global paramtertelerin belirtildiği ana kayıttır.
Bu satırdaki “@” işareti, alan adının kendisini gösterir. “IN”, Internet demek ve sınıftır(class), “SOA” kaynak kaydı (rr), ana isim sunucusu “ns.dns.azizozbek.ch” ve “admin.dns.azizozbek.ch” yetkilinin e -posta adresi. Burada @ yerine . (nokta) kullanır:
- Serial : Format olarak YYYYMMDDXX okunur. Yani 2007040101 -> 01/04/2007 oluşturulmuş ve bir kez değiştirilmiştir. İkinci değiştirme de 2007040102.
- Refresh : Bilgilerin yenilenme süresi.
- Retry : Yenilenirken bir hata çıkarsa, tekrar deneme süresi.
- Expires’: Son kullanma tarihi de diyebiliriz.
- Negative cache TTL’: Yukardaki hayatta kalma süresi ile aynı olmalıdır.
NS: Nameserver ismi.
MX: Mail Server Bilgisi. Birden fazla eklenildiğinde öncelikte belirtilmelidir. En düşük sayı en yüksek önceliktedir.
A: IPv4 Adresinde (32 bits) domaine karşılık gelen IP
AAAA: IPv6 adresinde (128 bits) domaine karşılık gelen IP
CNAME: Alias(Göbek isim) olarak kullanilir.
PTR: A Kaydının tam tersi gibi çalışır.
Forward Lookup Zone dosyanız aşağıdaki gibi görünmelidir:
📝Reserve Lookup Zone – Bind9 DNS Server Kurulumu
Reverse Lookup Zone dosyası, ters DNS aramaları için DNS PTR kayıtlarını tanımladığımız yerdir.
✔️Yazım Hatalarını Kontrol Etme – Bind9 DNS Server Kurulumu
sudo named-checkconf
komutu ile oluşturduğunuz dosyaları kontrol edebilirsiniz. Eğer bi hata yok ise herhangi bir çıktı ile karşılaşmazsınız. Forward Lookup Zone ve Reverse Lookup Zone dosyalarını da aşağıdaki gibi kontrol edebilirsiniz.
sudo named-check sudo named-checkzone dns.azizozbek.ch db.dns.azizozbek.ch // bind klasörunun icinde degilseniz, dosyanin tam yolunu verin. sudo named-checkzone 1.168.192.in-addr.arpa db.192.168.1
Kontol ettikten sonra, Bind yeniden başlatın.
sudo /etc/init.d/bind9 restart
sudo /etc/init.d/bind9 status //check out if it works
⚙️Client Konfigurasyonu
Aslında Client Tarafında herhangi bir şey yapılandırmanız gerekmez. DHCP Sunucunuz varsa, orada sadece Nameserver’i “ns.dns.azizozbek.ch” ekleyin ve DHCP Bilgilerinizi yenileyin.
dhclient -r
dhclient ens33 // give here your interface name
ipconfig /renew // Windows CMD
Fakat benim DHCP Server’im yok.(Aslında var, ama Router’dan, Router’da kompakt olduğu için yapılandıranıyorum). Ayrıca benim kullandığım domain hali hazırda var olduğu için, bunu lokalde kullanmak için ayrıca bir değişiklik yapmalıyım. İlk olarak “resolv.conf” dosyası ile oynuyoruz. Aşağıdaki kodlar ile dosyayı kalıcı olarak değirtirebilirsiniz. Eğer tek seferlik istiyorsanız, direk dosyanın kendisini değiştirin. sudo vi /etc/resolv.conf
,
sudo vi /etc/resolvconf/resolv.conf.d/head sudo resolvconf -u // regenerate new resolv.conf
Eğer sizin özel FQDN’iniz “superlig.local”, gibi ise, sizin işiniz burda bitiyor. nslookup
ile Sunucuyu kontrol edebilirsiniz.
nslookup 192.168.1.131 nslookup client
Ben halka açık bir FQDN olduğu için “ns.dns.azizozbek.ch” Domain sorgu sıralamasını değiştirmeliyim. Eger nslookup client, yazarsaniz Istek ilk olarak /etc/hosts dosyasina, sonra /etc/resolv.conf dosyasina Sunucuyu bulmaya gider. /etc/hosts
dosyası, içinde Nameserver’in IP’sini istediğim isime atayabilirim, fakat bu bir çözüm değil. O yüzden /etc/nsswitch.conf
dosyasındaki DNS Sorgu sıralamasını değiştiricem.
nsswitch.conf
Sıralamayı değiştirdikten sonra nslookup ile domain ismini kontrol ediyorum ve herşey problemsiz çalışıyo. Ben Nameserver’in olduğu Ubuntu’ya Webserver’da kurmuştum. Eğer Nameserverin adını Tarayıcıda adres çubuğuna yazarsam, web serveri görürüm.
Bu konuda Bind9 DNS Server Kurulumu ile ilgili neredeyse bildiğim herşeyi yazmaya çalıştım 🙂 DNS Konusunda uzman değilim, ancak bir herhangi bir Hata ile karşılaşırsanız, aşağıda yorum yapabilirsiniz.
bu .com .net .org alan adları nasıl kuruluyor lütfen cevaplayın bu sayfadakını yaparsam .com diye olurmu yada siz .com .net .org alan adı yapımı videosu çekermisiniz lütfen saygılar
Onlar gLTD Alan adlari oluyor. Onlari belli bi ücret karsiliginda kayit ettirmelisin.
Örnegin: https://nic.tr/
Merhaba Azizullah. .com ‘lu bir siteyi ücretsiz bir şekilde kurma ihtimalim yok mu? Anlattığın bind9 local haricinde çalışmıyor mu, ya da global dns için linux üzerinde yapabileceğim neler var?
com Top-Level-Domainler ücret karsiligi satin alinmalidirlar(kiralanmalidirlar). Bind’in Global çalisabilmesi için global erisilebilir olmasi lazim, bunu da sbait bir IP-Adresi ile yapabilirsin.
Merhabalar,
Burada 1 Domain İcin İcin Gerekli Forward ve Reverse Tanimlamalari Anlatilmaktadir.
Ornek Olarak Birbirinden Bagimsiz 2 Domain İcin Forward ve Reverse Dosyalarini Nasil Yapilandirmam Gerekmektedir ?
Genel Olarak 1 Adet DNS Sunucum Suan İcin Bulunmaktadir
Bir tane DNS-Server yeterli. Her Domain icin ayri bir Forward ve Reverse dosyasi olusturmalisin. Yeni Olusturdugun Domaini named.conf icerisine ekledinmi tamamdir. Emin olmadiginda tutoriallara bakmani öneririm: https://www.youtube.com/watch?v=jVv0ohvBDJ4