Linux'ta ağ ve DNS çözümleme nasıl yapılandırılır
nmcli ile sabit IP, ağ geçidi ve DNS ayarlama, /etc/hosts ve resolv.conf kullanımı ile ağ sorunlarını katman katman giderme adımları.
Linux'ta ağ yapılandırmasının katmanları
Bir Linux makinesinin ağa doğru çalışması için birkaç şeyin tutarlı olması gerekir: ağ arayüzü etkin olmalı, arayüze doğru adres ve alt ağ atanmalı, trafiğin dışarı çıkacağı varsayılan ağ geçidi tanımlı olmalı ve isimler IP adreslerine çözülebilmeli. Sorun giderirken bu katmanları sırayla kontrol etmek, tahmine dayalı denemeden çok daha hızlı sonuç verir.
Modern Red Hat ailesi sistemlerinde yapılandırmayı çoğunlukla NetworkManager yönetir. Komut satırı aracı nmcli, bağlantı profillerini oluşturur, değiştirir ve etkinleştirir. Anlık durumu ip komutu gösterir: ip addr adresleri, ip route yönlendirme tablosunu listeler. Eski ifconfig ve route araçları yerine ip ailesi kullanılır.
Burada şu kavramları ayırmak önemlidir: arayüz (cihaz) donanımı ya da sanal ağ kartını temsil eder, bağlantı (connection) ise o cihaza uygulanan ayar profilidir. nmcli ile ayarı cihaza değil bağlantıya yazarsınız; aynı cihaza farklı profiller tanımlayıp aralarında geçiş yapabilirsiniz.
Mevcut durumu okumak: nmcli ve ip
Değişiklik yapmadan önce olan durumu okuyun:
- nmcli device status : cihazları ve hangi bağlantıya bağlı olduklarını listeler.
- nmcli connection show : kayıtlı bağlantı profillerini gösterir.
- nmcli connection show ana-baglanti : tek bir profilin tüm ayarlarını döker.
- ip addr : arayüzlerdeki adresleri gösterir.
- ip route : varsayılan ağ geçidini ve ağ yollarını listeler.
- hostnamectl : makine adını ve ilgili bilgileri verir.
Bu çıktılarla sorular cevaplanır: arayüz bağlı mı, adres DHCP'den mi sabit mi geliyor, varsayılan yol var mı? Örneğin adres doğru ama varsayılan yol yoksa makine yerel ağdakileri görür ama internete çıkamaz. Yol var ama isim çözümlenmiyorsa, IP ile ping başarılı, isimle başarısız olur; bu belirti doğrudan DNS katmanına işaret eder.
Sabit IP adresi atamak
Örneğin bir sunucuya sabit adres vermek istiyorsunuz. Önce bağlantı adını nmcli connection show ile öğrenin, sonra profili düzenleyin:
- nmcli connection modify ana-baglanti ipv4.method manual
- nmcli connection modify ana-baglanti ipv4.addresses 192.168.1.10/24
- nmcli connection modify ana-baglanti ipv4.gateway 192.168.1.1
- nmcli connection modify ana-baglanti ipv4.dns 192.168.1.1
- nmcli connection up ana-baglanti
modify komutları profili günceller ama değişikliği çalışan bağlantıya uygulamaz; up (ya da down ardından up) ile etkinleştirirsiniz. Adres, ağ geçidi ve DNS değerleri bu örnekte belgelendirme amaçlı kurgusaldır; kendi ortamınızın değerlerini kullanın. Adresin yanındaki eğik çizgili sayı alt ağ ön ekini belirtir.
DHCP'ye dönmek için ipv4.method auto değerini kullanır ve elle girdiğiniz adres, ağ geçidi ve DNS alanlarını temizlersiniz. IPv6 için aynı mantık ipv6 öneki ile geçerlidir. Uzaktan bağlı çalışırken ağ ayarını değiştirmek bağlantıyı kesebilir; mümkünse konsol erişimi olan bir oturumda deneyin.
Grafik arayüzü olmayan sunucularda nmtui, menü tabanlı bir ek yol sunar; yeni başlayanlar için komutları hatırlamaktan daha kolaydır.
Makine adı ve /etc/hosts
Makine adı hostnamectl set-hostname ile ayarlanır ve kalıcıdır. İsim çözümlemesinin ilk basamaklarından biri /etc/hosts dosyasıdır: orada tanımlı satırlar DNS'e sorulmadan kullanılır. Küçük ortamlarda ya da DNS'in henüz hazır olmadığı kurulumlarda bu dosyaya adres ve isim eşlemesi yazmak hızlı çözümdür; büyük ortamlarda ise dağınık kalıp bakım yükü yaratır.
Çözümleme sırasını /etc/nsswitch.conf belirler; "hosts" satırı, önce dosyaya mı, sonra DNS'e mi bakılacağını söyler. Bu yüzden /etc/hosts'ta yanlış bir satır, DNS doğru olsa bile yanlış adrese gitmenize neden olabilir. getent hosts isim komutu, sistemin gerçekte hangi sırayla çözdüğünü gösterir; çünkü bu komut uygulamaların kullandığı mekanizmayı kullanır.
DNS çözümlemesi: resolv.conf ve araçlar
DNS sunucuları geleneksel olarak /etc/resolv.conf dosyasında bulunur. NetworkManager kullanılan sistemlerde bu dosya çoğunlukla otomatik üretilir; dosyayı elle düzenlerseniz sonraki ağ değişikliğinde ezilebilir. Kalıcı çözüm, DNS ayarını nmcli ile bağlantı profiline yazmaktır (ipv4.dns). Bazı dağıtımlarda systemd-resolved araya girer ve resolvectl status ile durumunu görürsünüz.
Çözümleme sorunlarını ayırt etmek için sırayla şunları deneyin: • ping ile bir IP adresine erişim: ağ yolu çalışıyor mu? • getent hosts isim : sistem çözümlemesi (dosya ve DNS birlikte) ne diyor? • dig isim ya da host isim : DNS sunucusunun cevabı ne? Belirli bir sunucuya sormak için dig @sunucu isim biçimi kullanılır. • resolv.conf içeriği : doğru sunucular ve arama alanı tanımlı mı?
Arama alanı (search) tanımlıysa kısa isimler otomatik tamamlanır; ama bu aynı zamanda beklenmeyen çözümlemelere ve gecikmelere yol açabilir. Birden fazla DNS sunucusu varsa ilki cevap vermediğinde zaman aşımı beklenir; yanıt gecikmeleri çoğu zaman buradan kaynaklanır.
Çözümleme ağ yolu ya da güvenlik duvarından da etkilenebilir. DNS sorguları için çıkış trafiğinin engellenmediğinden emin olun; firewall-cmd ile mevcut bölge ve kuralları kontrol edebilirsiniz.
Sorun giderme sırası
Ağ sorunlarında alt katmandan üste doğru ilerleyin. Önce fiziksel ya da sanal arayüz: nmcli device status ve ip addr ile bağlı olup olmadığına bakın. Sonra adres ve alt ağ. Sonra varsayılan yol: ip route. Sonra bir yerel komşuya ve ağ geçidine ping. Sonra dış bir IP'ye ping. En son isim çözümlemesi ve uygulama düzeyi.
Bu sıranın faydası, sorunu bulunduğu katmanda sınırlamasıdır. IP adresine ulaşıp isme ulaşamıyorsanız, ağ yoluna dokunmadan DNS ayarlarına odaklanırsınız. Hiçbir IP'ye ulaşamıyorsanız DNS'i kurcalamak zaman kaybıdır.
Sık hatalar: • modify sonrası up çalıştırmamak. • resolv.conf'u elle düzenleyip değişikliğin kaybolmasını şaşkınlıkla karşılamak. • Aynı arayüzde birden fazla etkin profil bırakmak. • Uzaktan bağlıyken ağ ayarını değiştirip erişimi kaybetmek. • /etc/hosts'ta unutulmuş eski bir satırı DNS sorunu sanmak.
Değişikliklerin yeniden başlatmadan sonra korunduğunu doğrulamak, kalıcılık için son adımdır; özellikle bir sınav ortamında yeniden başlatma testi zorunlu bir alışkanlık olmalıdır.
Bu beceriyi Mindset programlarında nerede çalışırsınız?
RHCSA Sertifikasyon Hazırlık programının Ağ Yapılandırması ve İsim Çözümleme modülü bu konunun sınav ve sistem yöneticiliği boyutunu işler. Linux Foundation Certified System Administrator (LFCS) Hazırlık programının Ağ Yapılandırması ve Güvenlik modülü benzer konuyu güvenlik bağlamıyla genişletir. Sunucu ağını kuran ve sorun gideren BT operasyon ekipleri, her iki programdan da faydalanabilir.
İlgili Mindset programı
RHCSA Sertifikasyon Hazırlık
Sık sorulan sorular
nmcli modify yaptım ama ayar uygulanmadı, neden?
modify komutu yalnızca bağlantı profilini günceller, çalışan bağlantıya yansıtmaz. Değişikliği uygulamak için nmcli connection up ile bağlantıyı yeniden etkinleştirin ya da down ardından up yapın. Uzaktan çalışıyorsanız bağlantının kopma ihtimalini göz önüne alıp konsol erişimi hazır bulundurun.
resolv.conf'a yazdığım DNS neden kayboluyor?
NetworkManager bu dosyayı kendisi üretir ve ağ değişikliğinde yeniden yazar. Kalıcı olması için DNS adresini bağlantı profiline ipv4.dns ile yazın ve bağlantıyı yeniden etkinleştirin. Bazı dağıtımlarda systemd-resolved dosyayı yönetir; durum için resolvectl status çıktısına bakılır.
ping IP'ye başarılı ama isme başarısız, ne yapmalıyım?
Bu belirti ağ yolunun çalıştığını, sorunun isim çözümlemesinde olduğunu gösterir. getent hosts ile sistemin çözümlemesini, dig ile DNS sunucusunun cevabını karşılaştırın. resolv.conf ve /etc/hosts'ta yanlış ya da eski satır olup olmadığına, nsswitch sırasına bakın.
Sabit IP yerine DHCP'ye nasıl dönülür?
Bağlantı profilinde ipv4.method değerini auto yapın ve elle girilmiş adres, ağ geçidi ve DNS alanlarını temizleyin. Sonra bağlantıyı yeniden etkinleştirin. DHCP sunucusu adres ve ayarları yeniden dağıtacaktır; ip addr ile yeni adresi doğrulayın.
İlgili rehberler
İlgili eğitimler
Kategori: DevOps ve Bulut Teknolojileri