Takip et

dnsmasq’ı macvlan ile Bağımsız Bir DNS Sunucusu Olarak Çalıştırmak: systemd-resolved Çakışmalarını Önleme

dnsmasq’ı macvlan ile Bağımsız Bir DNS Sunucusu Olarak Çalıştırmak: systemd-resolved Çakışmalarını Önleme Modern Linux dağıtımlarında ağ …

dnsmasq’ı macvlan ile Bağımsız Bir DNS Sunucusu Olarak Çalıştırmak: systemd-resolved Çakışmalarını Önleme

Modern Linux dağıtımlarında ağ yapılandırması ve DNS çözümlemesi, systemd-resolved gibi araçlar tarafından yönetilmektedir. Bu durum, özel bir DNS sunucusu, özellikle dnsmasq gibi hafif ve esnek bir çözüm kurmak isteyen kullanıcılar için bazen çakışmalara yol açabilir. systemd-resolved genellikle 53 numaralı portu dinleyerek sistemin DNS sorgularını yönetir ve bu, aynı portu kullanmak isteyen dnsmasq gibi başka bir DNS sunucusunun başlamasını engeller. Bu makalede, dnsmasq‘ı systemd-resolved ile çakışmadan, macvlan ağ arayüzünü kullanarak bağımsız bir DNS sunucusu olarak nasıl yapılandıracağımızı detaylı bir şekilde inceleyeceğiz. Bu yaklaşım, sistem DNS çözümlemesini etkilemeden, özel DNS gereksinimlerinizi karşılamanın zarif bir yolunu sunar.

Giriş: systemd-resolved Çakışmaları ve dnsmasq İhtiyacı

Linux sistemlerinde DNS çözümlemesi, özellikle systemd tabanlı dağıtımlarda, systemd-resolved servisi tarafından merkezi olarak yönetilir. Bu servis, DNS sorgularını önbellekler, DNSSEC doğrulamasını yapar ve /etc/resolv.conf dosyasını yönetir. Ancak, kendi özel DNS sunucunuzu (örneğin, ev ağı için özel host adları, reklam engelleme veya daha gelişmiş önbellekleme) çalıştırmak istediğinizde, systemd-resolved ile port çakışması yaşanması kaçınılmazdır.

systemd-resolved Nedir ve Neden Sorun Yaratır?

systemd-resolved, systemd projesinin bir parçası olarak geliştirilmiş, ağ isim çözümleme servisi ve DNS önbellekleyicisidir. Yerel olarak 53 numaralı UDP/TCP portunu dinler ve sistemin tüm DNS sorgularını bu port üzerinden alır. Bu yaklaşım, tek bir merkezi DNS çözümleyiciye sahip olmanın avantajlarını sunarken, aynı portu kullanmak isteyen dnsmasq gibi diğer DNS servislerinin başlamasını engeller. Eğer dnsmasq‘ı varsayılan 53 numaralı portta çalıştırmaya çalışırsanız, “Address already in use” (Adres zaten kullanımda) hatası alırsınız.

dnsmasq’ın Avantajları ve Kullanım Alanları

dnsmasq, küçük ağlar için tasarlanmış hafif, hızlı ve esnek bir DNS önbellekleyicisi, DHCP sunucusu ve TFTP sunucusudur. Basit yapılandırması, düşük kaynak tüketimi ve gelişmiş özellikleri (statik DHCP atamaları, özel DNS kayıtları, PXE önyükleme desteği) sayesinde özellikle ev ağları, küçük ofisler veya geliştirme ortamları için ideal bir çözümdür. Kendi alan adlarınızı çözümlemek, belirli alan adlarını engellemek veya ağınızdaki cihazlara özel isimler atamak için dnsmasq vazgeçilmez bir araçtır.

macvlan Çözümü Neden Gerekli?

systemd-resolved ile dnsmasq arasındaki port çakışmasını çözmek için birkaç yöntem vardır: systemd-resolved‘u devre dışı bırakmak (ki bu önerilmez, sistemin genel DNS çözümlemesini bozabilir), dnsmasq‘ı farklı bir portta çalıştırmak (ancak bu durumda istemcilerinizi bu porta yönlendirmeniz gerekir) veya dnsmasq‘ı farklı bir IP adresinde çalıştırmak. macvlan arayüzü, son seçeneği mümkün kılar. macvlan, fiziksel bir ağ arayüzü üzerinde birden fazla sanal ağ arayüzü oluşturmanıza olanak tanır. Her macvlan arayüzü kendi benzersiz MAC adresine ve IP adresine sahip olabilir, bu da dnsmasq‘ı systemd-resolved‘dan tamamen izole edilmiş ayrı bir IP adresinde ve dolayısıyla ayrı bir 53 numaralı portta çalıştırmanıza imkan verir.

macvlan Arayüzünün Temelleri ve Çalışma Prensibi

macvlan, Linux çekirdeğinde bulunan bir ağ sanallaştırma teknolojisidir. Tek bir fiziksel ağ arayüzü üzerinde birden fazla mantıksal ağ arayüzü oluşturmanızı sağlar. Bu sanal arayüzlerin her biri kendi benzersiz MAC adresine ve IP adresine sahip olabilir ve ağda ayrı bir cihaz gibi davranır.

macvlan Nedir?

macvlan, bir ana fiziksel ağ arayüzüne (örneğin eth0 veya enp0s3) bağlı, ancak ondan bağımsız çalışan sanal ağ arayüzleri oluşturur. Bu sanal arayüzler, doğrudan ana arayüz üzerinden ağa erişirler ve her biri kendi IP adresine sahip olabilir. Bu sayede, aynı fiziksel port üzerinden birden fazla IP adresiyle hizmet verebilirsiniz.

Bridge, VEPA ve Private Modları

macvlan‘ın üç temel çalışma modu vardır:

* Bridge Modu: Bu en yaygın moddur. macvlan arayüzleri, ana arayüz üzerinden birbirleriyle ve harici ağla doğrudan iletişim kurabilir. Bir anahtara (switch) bağlı birden fazla fiziksel cihaz gibi davranırlar.
* VEPA (Virtual Ethernet Port Aggregator) Modu: macvlan arayüzleri arasındaki trafik, harici bir anahtar üzerinden yönlendirilir. Yani, bir macvlan arayüzünden diğerine giden trafik önce anahtara gider, sonra geri döner.
* Private Modu: Bu modda, macvlan arayüzleri birbirleriyle iletişim kuramazlar. Sadece ana arayüz üzerinden harici ağ ile iletişim kurabilirler.

Bizim senaryomuz için genellikle “Bridge” modu yeterli olacaktır, çünkü dnsmasq‘ın sadece ağa erişmesi ve DNS sorgularını yanıtlaması gerekmektedir.

macvlan’ın Ağdaki Yeri

Bir macvlan arayüzü oluşturduğunuzda, bu arayüz fiziksel ağınızdaki bir anahtara doğrudan bağlı yeni bir sanal cihaz gibi görünür. Ana arayüz, tüm bu sanal arayüzlerin trafiğini yönetir. Bu, özellikle konteynerleştirilmiş uygulamalar (Docker gibi) veya sanal makineler için ağ izolasyonu sağlamak veya bizim durumumuzda olduğu gibi, aynı fiziksel makinede farklı servisleri farklı IP adreslerinde çalıştırmak için çok kullanışlıdır.

macvlan Arayüzünün Oluşturulması ve Yapılandırılması

macvlan arayüzü oluşturmak için ip komutunu veya systemd-networkd gibi ağ yöneticilerini kullanabiliriz. Burada hem geçici hem de kalıcı yapılandırma yöntemlerini ele alacağız.

Ön Gereksinimler

* Linux tabanlı bir işletim sistemi (Ubuntu, Debian, CentOS vb.).
* iproute2 paketi kurulu olmalı (genellikle varsayılan olarak gelir).
* Ana fiziksel ağ arayüzünüzün adı (örneğin enp0s3, eth0). Bu adı ip a komutuyla öğrenebilirsiniz.

Geçici macvlan Oluşturma

Aşağıdaki komutlarla geçici bir macvlan arayüzü oluşturabilir ve ona bir IP adresi atayabilirsiniz. Bu yapılandırma sistem yeniden başlatıldığında kaybolur.

Öncelikle ana arayüzünüzü belirleyin. Diyelim ki enp0s3.

# macvlan arayüzünü oluştur (bridge modunda)
sudo ip link add link enp0s3 name macvlan0 type macvlan mode bridge

# macvlan arayüzüne bir IP adresi ata (kendi ağınıza uygun bir IP seçin)
# Örnek: Ağınız 192.168.1.0/24 ise, 192.168.1.200 kullanabilirsiniz.
sudo ip addr add 192.168.1.200/24 dev macvlan0

# macvlan arayüzünü etkinleştir
sudo ip link set macvlan0 up

# Kontrol et
ip a show macvlan0

Bu komutlar, enp0s3 üzerinde macvlan0 adında yeni bir arayüz oluşturur ve ona 192.168.1.200 IP adresini atar. Artık bu IP adresi üzerinden ağa erişebilirsiniz.

Kalıcı macvlan Yapılandırması (systemd-networkd veya netplan ile)

Kalıcı bir macvlan yapılandırması için systemd-networkd (çoğu modern systemd tabanlı dağıtımda) veya netplan (Ubuntu'da yaygın) kullanmak en iyisidir.

systemd-networkd ile (Örnek: Debian/Ubuntu sunucular, Fedora, Arch)

/etc/systemd/network/ dizininde iki dosya oluşturacağız: biri macvlan arayüzünü tanımlamak için, diğeri ise IP adresini atamak için.

Ana arayüzünüz enp0s3 ve macvlan arayüzünüz macvlan0 olacaksa:

1. /etc/systemd/network/20-macvlan0.netdev dosyasını oluşturun:

[Match]
    # macvlan'ın bağlanacağı ana arayüzün adını buraya yazın
    Name=macvlan0

    [Network]
    # Ana arayüzün adını buraya yazın
    MACVLan=enp0s3
    MACVLanMode=bridge

2. /etc/systemd/network/25-macvlan0.network dosyasını oluşturun:

[Match]
    Name=macvlan0

    [Network]
    Address=192.168.1.200/24
    Gateway=192.168.1.1
    DNS=8.8.8.8


* Address: macvlan0 için kullanmak istediğiniz IP adresi ve alt ağ maskesi.
* Gateway: Ağınızın varsayılan ağ geçidi.
* DNS: İsteğe bağlı olarak bu arayüz için DNS sunucuları belirtebilirsiniz.

3. Değişiklikleri uygulamak için systemd-networkd servisini yeniden başlatın:

sudo systemctl enable systemd-networkd
    sudo systemctl restart systemd-networkd

Netplan ile (Örnek: Ubuntu Masaüstü ve Sunucu)

/etc/netplan/ dizininde bir .yaml dosyası oluşturun veya mevcut olanı düzenleyin (örneğin 01-netcfg.yaml).

network:
  version: 2
  renderer: networkd # veya NetworkManager
  ethernets:
    enp0s3: # Ana fiziksel arayüzünüz
      dhcp4: true # Ana arayüz DHCP ile IP alsın
  macvlans:
    macvlan0:
      link: enp0s3 # macvlan'ın bağlanacağı ana arayüz
      addresses: [192.168.1.200/24] # macvlan için statik IP
      routes:
        - to: default
          via: 192.168.1.1 # Varsayılan ağ geçidi
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4] # Bu arayüz için DNS sunucuları

Değişiklikleri uygulamak için:

sudo netplan generate
sudo netplan apply

IP Adresi Ataması ve Ağ Kontrolü

macvlan arayüzünüzü yapılandırdıktan sonra, ip a komutuyla IP adresinin doğru atandığını kontrol edin:

ip a show macvlan0

Çıktı, macvlan0 arayüzünün doğru IP adresine sahip olduğunu göstermelidir. Ayrıca, bu yeni IP adresine başka bir cihazdan ping atarak ağ erişimini test edebilirsiniz.

dnsmasq Kurulumu ve Temel Yapılandırması

macvlan arayüzümüz hazır olduğuna göre, şimdi dnsmasq'ı kurup bu arayüz üzerinde çalışacak şekilde yapılandırabiliriz.

dnsmasq Kurulumu

Çoğu Linux dağıtımında dnsmasq paket yöneticisi aracılığıyla kolayca kurulabilir:

Debian/Ubuntu tabanlı sistemler:

sudo apt update
sudo apt install dnsmasq

CentOS/RHEL tabanlı sistemler:

sudo yum install dnsmasq
# veya modern RHEL/CentOS'ta
sudo dnf install dnsmasq

Kurulumdan sonra dnsmasq servisi otomatik olarak başlayabilir ve varsayılan olarak systemd-resolved ile çakışacaktır. Bu nedenle, yapılandırmadan önce durdurmak iyi bir fikir olabilir:

sudo systemctl stop dnsmasq
sudo systemctl disable dnsmasq # Otomatik başlamasını önle

dnsmasq'ı macvlan Arayüzüne Bağlama

dnsmasq'ın sadece macvlan arayüzümüzün IP adresini dinlemesini sağlamak için yapılandırma dosyasını düzenlememiz gerekiyor. dnsmasq'ın ana yapılandırma dosyası genellikle /etc/dnsmasq.conf'tur.

Bu dosyayı bir metin düzenleyiciyle açın:

sudo nano /etc/dnsmasq.conf

Aşağıdaki satırları ekleyin veya mevcut olanları düzenleyin:

# Sadece macvlan arayüzünü dinle
listen-address=192.168.1.200 # macvlan0'a atadığınız IP adresi
bind-interfaces # Sadece belirtilen arayüzleri dinle

# Yukarı akış DNS sunucuları (upstream DNS servers)
# Bu sunucular, dnsmasq'ın çözemediği sorguları ileteceği sunuculardır.
# Google DNS, Cloudflare DNS veya ISS'nizin DNS'i olabilir.
server=8.8.8.8
server=1.1.1.1

# Önbellek boyutunu ayarla (isteğe bağlı, varsayılan 150)
cache-size=1000

# Yerel alan adları için (örneğin .home)
# local=/home/

# Yerel host kayıtları için /etc/hosts dosyasını kullan
# addn-hosts=/etc/dnsmasq.d/myhosts.conf # Ek host dosyası

# DNSSEC desteği (isteğe bağlı)
# dnssec
# trust-anchor=.,19036,8,2,49AAC11D7B6F6446702E54A1607371607A1A41855200FD2CE1CDDE32F24E8FB5

# Loglama (isteğe bağlı)
# log-queries
# log-facility=/var/log/dnsmasq.log

Açıklamalar:

* listen-address=192.168.1.200: dnsmasq'ın sadece bu IP adresindeki 53 numaralı portu dinlemesini sağlar. systemd-resolved hala ana arayüzdeki 127.0.0.53 IP adresini dinleyebilir.
* bind-interfaces: Bu komut, dnsmasq'ın sadece listen-address ile belirtilen arayüzleri dinlemesini zorlar.
* server=...: dnsmasq'ın kendi çözemediği sorguları yönlendireceği harici DNS sunucularıdır.

Temel DNS Yapılandırması (upstream sunucular, host kayıtları)

dnsmasq'ı temel bir DNS sunucusu olarak kullanmak için, yukarı akış DNS sunucularını (server=) yapılandırmanın yanı sıra, kendi yerel DNS kayıtlarınızı da ekleyebilirsiniz.

Yerel Host Kayıtları:
/etc/hosts dosyanızdaki kayıtlar dnsmasq tarafından otomatik olarak okunur. Ek host kayıtları eklemek isterseniz, addn-hosts=/etc/dnsmasq.d/myhosts.conf gibi bir satır ekleyip, /etc/dnsmasq.d/myhosts.conf dosyasında şu formatta kayıtlar oluşturabilirsiniz:

192.168.1.100    mydevice.home
192.168.1.101    anotherdevice

Yerel Alan Adları:
Ağınızda .home gibi özel bir alan adı kullanmak isterseniz, local=/home/ satırını aktif edebilirsiniz. Bu, .home ile biten tüm sorguların dnsmasq tarafından yerel olarak çözülmeye çalışılacağı anlamına gelir.

DHCP ve PXE (Opsiyonel ama bahsedilebilir)

dnsmasq aynı zamanda güçlü bir DHCP sunucusu olarak da görev yapabilir. Eğer ağınızda DHCP servisini de dnsmasq üzerinden yönetmek isterseniz, /etc/dnsmasq.conf dosyasına aşağıdaki gibi satırlar ekleyebilirsiniz:

# DHCP aralığı ve kiralama süresi
dhcp-range=192.168.1.100,192.168.1.150,12h

# Varsayılan ağ geçidi (opsiyonel, dhcp-range ile aynı ağda değilse)
dhcp-option=3,192.168.1.1

# DHCP istemcilerine DNS sunucusu olarak kendi IP adresimizi ver
dhcp-option=6,192.168.1.200 # macvlan0'ın IP adresi

# Statik DHCP atamaları
# dhcp-host=AA:BB:CC:DD:EE:FF,192.168.1.10,mydevice


Bu yapılandırma, dnsmasq'ın macvlan0 arayüzü üzerinden DHCP hizmeti de sunmasını sağlar. Ancak, ağınızda başka bir DHCP sunucusu çalışıyorsa (örneğin modeminiz), çakışmaları önlemek için dnsmasq'ın DHCP özelliğini devre dışı bırakmanız veya dikkatlice yapılandırmanız gerekir.

Yapılandırma dosyasını kaydettikten sonra dnsmasq servisini başlatın ve durumunu kontrol edin:

sudo systemctl start dnsmasq
sudo systemctl status dnsmasq


Servisin macvlan0 IP adresini dinlediğini netstat -tulnp | grep 53 komutuyla da doğrulayabilirsiniz.

dnsmasq'ı systemd-resolved ile Çakışmadan Çalıştırma

macvlan stratejisi, systemd-resolved ile dnsmasq arasındaki çakışmayı zarif bir şekilde çözer. dnsmasq'ı ayrı bir IP adresinde çalıştırdığımız için, her iki servis de kendi 53 numaralı portlarını dinleyebilir, ancak farklı IP adreslerinde.

systemd-resolved'u Devre Dışı Bırakmak (veya Yanlış Yaklaşım)

Bazı rehberlerde systemd-resolved'u tamamen devre dışı bırakmak önerilir. Bu, sudo systemctl disable systemd-resolved && sudo systemctl stop systemd-resolved komutlarıyla yapılabilir. Ancak, bu yaklaşım sistemin genel DNS çözümlemesini bozabilir ve bazı uygulamaların beklendiği gibi çalışmamasına neden olabilir. Ayrıca, /etc/resolv.conf dosyasının manuel olarak düzenlenmesi gerekebilir, bu da systemd tabanlı sistemlerde genellikle önerilmez. macvlan çözümü, systemd-resolved'u olduğu gibi bırakırken dnsmasq'ı bağımsız bir şekilde çalıştırmamızı sağlar.

dnsmasq'ı Özel Bir Portta Çalıştırma (macvlan olmadan)

macvlan kullanmak istemiyorsanız, dnsmasq'ı farklı bir portta (örneğin 5353) çalıştırabilirsiniz:

port=5353
listen-address=127.0.0.1 # Veya ana arayüzünüzün IP'si


Bu durumda, DNS sunucusu olarak dnsmasq'ı kullanmak isteyen istemcilerinizi (veya /etc/resolv.conf dosyasını) bu özel porta yönlendirmeniz gerekir. Ancak bu, genellikle ağdaki diğer cihazlar için pratik değildir ve sistem genelindeki uygulamaların bu portu kullanmasını sağlamak zordur.

macvlan ile Çözümün Avantajları

macvlan ile dnsmasq'ı çalıştırmanın temel avantajı, dnsmasq'ın kendi özel IP adresinde standart DNS portu olan 53'ü dinleyebilmesidir. Bu, ağınızdaki diğer cihazların (akıllı telefonlar, tabletler, diğer bilgisayarlar) dnsmasq'ı DNS sunucusu olarak kolayca yapılandırabileceği anlamına gelir. systemd-resolved ise ana IP adresinde kendi 53 numaralı portunu dinlemeye devam edebilir ve sistemin kendi DNS sorgularını yönetebilir. Bu iki servis tamamen birbirinden izole edilmiş olur.

Örnek:
* Sisteminiz: systemd-resolved -> 127.0.0.53:53 (veya ana IP'niz)
* dnsmasq: macvlan0 -> 192.168.1.200:53

Bu sayede, systemd-resolved'u devre dışı bırakma veya dnsmasq'ı standart olmayan bir portta çalıştırma gibi karmaşık çözümlerden kaçınmış olursunuz.

systemd-resolved'un Dinleyeceği Portu Değiştirme (alternatif)

Eğer macvlan kullanmak istemiyor ve systemd-resolved'un portunu değiştirmeyi tercih ediyorsanız, bu da bir seçenektir. /etc/systemd/resolved.conf dosyasını düzenleyerek DNSStubListenerPort ayarını değiştirebilirsiniz:

[Resolve]
DNSStubListenerPort=5353 # Varsayılan 53 yerine 5353 dinle


Ardından sudo systemctl restart systemd-resolved komutuyla servisi yeniden başlatmanız gerekir. Bu durumda, dnsmasq'ı ana IP adresinde 53 numaralı portta çalıştırabilirsiniz. Ancak bu, systemd-resolved'a bağımlı uygulamaların yapılandırmasını gerektirebilir. macvlan çözümü genellikle daha az yan etki yaratır.

Gelişmiş dnsmasq Yapılandırmaları ve En İyi Uygulamalar

dnsmasq'ı temel bir DNS sunucusu olarak kurduktan sonra, performansını ve işlevselliğini artırmak için bazı gelişmiş yapılandırmalar yapabilirsiniz.

DNS Önbellekleme Optimizasyonu

dnsmasq varsayılan olarak DNS sorgularını önbellekler. cache-size parametresiyle önbelleğin boyutunu ayarlayabilirsiniz. Daha büyük bir önbellek, daha fazla sorgunun yerel olarak yanıtlanmasını sağlayarak gecikmeyi azaltır.

cache-size=2048 # Varsayılan 150 yerine 2048 kayıt önbellekle

Güvenlik ve Erişim Kontrolü

dnsmasq'ın sadece belirli ağlardan gelen sorguları kabul etmesini sağlayarak güvenliği artırabilirsiniz.

# Sadece yerel ağdan gelen sorguları kabul et
# (macvlan IP'si zaten listen-address ile belirtildiği için bu gereksiz olabilir ama ek güvenlik sağlar)
# Eğer listen-address 0.0.0.0 olsaydı bu önemli olurdu.
# restrict-broadcast
# no-resolv # /etc/resolv.conf dosyasını kullanma
# no-poll # /etc/resolv.conf dosyasını periyodik olarak kontrol etme

# Sadece belirli ağlardan gelen sorgulara izin ver
# Bu, dnsmasq'ın sadece 192.168.1.0/24 ağından gelen sorguları yanıtlamasını sağlar.
# expand-hosts
# local-service # Sadece yerel ağlardan gelen sorguları yanıtla


local-service parametresi, dnsmasq'ın sadece yerel alt ağlardan gelen DNS sorgularını yanıtlamasını sağlar, bu da dışarıdan gelebilecek kötü niyetli sorguları engeller.

Loglama ve Sorun Giderme

DNS sorgularını ve DHCP olaylarını loglamak, sorun giderme ve ağ analizi için çok faydalıdır.

# DNS sorgularını logla
log-queries

# DHCP olaylarını logla
log-dhcp

# Logları ayrı bir dosyaya yaz
log-facility=/var/log/dnsmasq.log


Bu ayarlar, dnsmasq'ın tüm DNS sorgularını ve DHCP işlemlerini belirtilen log dosyasına yazmasını sağlar.

systemd Servisi Olarak Yönetim

dnsmasq'ı systemd servisi olarak yönetmek, başlatma, durdurma, yeniden başlatma ve durum kontrolü gibi işlemleri kolaylaştırır. Kurulumdan sonra dnsmasq zaten bir systemd servisi olarak kaydedilmiş olmalıdır.

sudo systemctl start dnsmasq       # Servisi başlat
sudo systemctl stop dnsmasq        # Servisi durdur
sudo systemctl restart dnsmasq     # Servisi yeniden başlat
sudo systemctl status dnsmasq      # Servisin durumunu kontrol et
sudo systemctl enable dnsmasq      # Sistem başlangıcında otomatik başlat
sudo systemctl disable dnsmasq     # Sistem başlangıcında otomatik başlamayı engelle


dnsmasq yapılandırma dosyasında yaptığınız her değişiklikten sonra servisi yeniden başlatmayı unutmayın.

Sonuç

dnsmasq'ı macvlan arayüzü ile bağımsız bir DNS sunucusu olarak çalıştırmak, systemd-resolved ile yaşanan port çakışması sorununa zarif ve etkili bir çözüm sunar. Bu yöntem sayesinde, sisteminizin varsayılan DNS çözümlemesini bozmadan, kendi özel DNS sunucunuzu tam işlevselliğiyle kullanabilirsiniz. macvlan'ın sağladığı ağ izolasyonu, dnsmasq'ın kendi özel IP adresinde standart 53 numaralı portu dinlemesine olanak tanır, bu da onu ağdaki diğer cihazlar için kolayca erişilebilir kılar. Bu yapılandırma, ev ağlarında özel alan adları, reklam engelleme veya geliştirme ortamlarında esnek DNS yönetimi gibi birçok senaryo için ideal bir çözümdür.

Sıkça Sorulan Sorular (SSS)

Neden doğrudan systemd-resolved'u devre dışı bırakmıyorum?

systemd-resolved'u devre dışı bırakmak, sistemin genel DNS çözümlemesini olumsuz etkileyebilir. Bazı uygulamalar ve servisler, systemd-resolved'un sağladığı yerel DNS önbellekleme ve DNSSEC doğrulama gibi özelliklere bağımlı olabilir. macvlan çözümü, systemd-resolved'u olduğu gibi bırakarak sistem kararlılığını korurken, dnsmasq'ı ayrı bir ortamda çalıştırmanıza olanak tanır.

macvlan yerine başka bir sanallaştırma çözümü kullanabilir miyim?

Evet, teorik olarak başka sanallaştırma çözümleri de kullanılabilir. Örneğin, bir Docker konteyneri içinde dnsmasq'ı çalıştırıp konteynere ayrı bir IP adresi atayabilirsiniz. Ancak macvlan, doğrudan Linux çekirdeği seviyesinde çalıştığı için daha hafif ve performanslı bir çözüm sunar, özellikle sadece bir IP adresi izolasyonu gerektiğinde.

dnsmasq ile DHCP sunucusu da çalıştırabilir miyim?

Evet, dnsmasq çok yetenekli bir DHCP sunucusudur. dhcp-range ve dhcp-option gibi parametrelerle kolayca yapılandırılabilir. Ancak, ağınızda zaten başka bir DHCP sunucusu (örneğin modeminiz) çalışıyorsa, çakışmaları önlemek için dnsmasq'ın DHCP özelliğini devre dışı bırakmanız veya mevcut DHCP sunucusunu kapatmanız gerekir.

Performans açısından macvlan'ın bir etkisi var mı?

macvlan, Linux çekirdeği seviyesinde uygulanan hafif bir sanallaştırma teknolojisidir. Genellikle performansa ihmal edilebilir bir etkisi vardır. Ağ trafiği doğrudan ana arayüz üzerinden yönlendirildiği için, ek bir sanallaştırma katmanının getirdiği belirgin bir gecikme veya performans düşüşü yaşanmaz. dnsmasq'ın kendisi de çok düşük kaynak tüketimine sahip bir uygulamadır.

Yorumlar
İçeriği beğendiniz mi? Bir tartışma başlatın veya görüşlerinizi paylaşın.
Yorum Yaz

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

E-posta Bülteni
Yazılım Topluluğuna Katılın
En son güncellemeleri, yaratıcı ipuçlarını ve özel kaynakları doğrudan e-posta kutunuza alın. Tasarım ve inovasyonun geleceğini birlikte keşfedelim.