Giriş
Ubuntu 17.10 sürümünden itibaren, ağ yapılandırması geleneksel /etc/network/interfaces dosyasından Netplan adlı yeni bir sisteme geçmiştir. Netplan, her bir ağ arayüzünün nasıl davranması gerektiğini açıklayan kısa bir YAML betiği yazarak, arka planda gerçek ağ yönetimini yapan sistemin (renderer) bu betiği okuyup uygulamasına olanak tanır. Bu yaklaşım, yapılandırmayı tek bir yerde toplar ve okunabilir kılar. Ancak, YAML sözdizimi eski sisteme alışkın kullanıcılar için başlangıçta zorlayıcı olabilir.
Bu kılavuzda, Netplan'ın nasıl çalıştığını, DHCP, statik IP adresi, DNS, Wi-Fi ve köprü (bridge) yapılandırmalarını nasıl yapacağınızı, ayrıca uzak sunucuda çalışırken değişiklikleri nasıl güvenli bir şekilde uygulayacağınızı öğreneceksiniz.
Netplan Hakkında Temel Bilgiler
Netplan Nedir ve Nasıl Çalışır?
Netplan, Ubuntu'da ağ yapılandırmasını yönetmek için kullanılan bir araçtır. Sistem yöneticileri, /etc/netplan dizininde bulunan YAML dosyalarında ağ arayüzlerinin davranışlarını tanımlar. Netplan, bu dosyaları okuyarak iki farklı arka uç sisteminden (renderer) birine uygun yapılandırmayı üretir:
systemd-networkd: Genellikle Ubuntu Server'da kullanılan varsayılan renderer. Grafiksel arayüze ihtiyaç duymayan, sadece terminal üzerinden yönetilen sunucular için idealdir.NetworkManager: Ubuntu Desktop'ta varsayılan olarak kullanılan renderer. Wi-Fi, VPN ve ağ geçişlerini yönetir ve GNOME ayar paneliyle entegre çalışır.
Netplan, netplan apply komutu çalıştırıldığında YAML dosyalarını okur, arka uç sistem için gerekli yapılandırmayı yazar ve renderer'a yeniden yüklemesini söyler. Eğer YAML dosyasında bir sözdizimi hatası varsa, Netplan değişiklikleri uygulamayı durdurur. Ancak, doğru sözdizimine sahip olsa bile yanlış IP adresi veya rota tanımları, bağlantının kesilmesine neden olabilir.
Netplan Dosyalarını Listeleme ve Yönetme
Netplan'ın hangi dosyaları okuduğunu görmek için aşağıdaki komutu kullanabilirsiniz:
ls /etc/netplan/
Bu komut, /etc/netplan dizinindeki tüm Netplan yapılandırma dosyalarını listeler. Yaygın olarak kullanılan dosya isimleri şunlardır:
00-installer-config.yaml01-netcfg.yaml50-cloud-init.yaml
Netplan, dosyaları alfabetik sırayla okur ve daha sonra okunan dosyalar, öncekilere göre öncelik kazanır. Örneğin, 90-custom.yaml dosyası, 50-cloud-init.yaml dosyasından sonra okunduğu için onun yerini alır.
Yeni bir yapılandırma dosyası oluşturmak için aşağıdaki komutu kullanabilirsiniz:
sudo nano /etc/netplan/99-custom.yaml
Dosyayı oluşturduktan sonra, Netplan'ın bu dosyayı okuyabilmesi için izinlerini ayarlamanız gerekir:
sudo chmod 600 /etc/netplan/*.yaml
Not: Netplan yapılandırma dosyaları sadece root kullanıcısı tarafından okunabilir ve değiştirilebilir olmalıdır. Bu, güvenlik açısından önemlidir.
Netplan Dosyalarının Yapısı
Her Netplan dosyası, network adlı bir üst düzey anahtar ile başlar. Bu anahtar altında aşağıdaki seçenekler bulunur:
version: Netplan'ın YAML formatının versiyonunu belirtir. Mevcut tek desteklenen versiyon2'dir.renderer: Hangi arka uç sisteminin kullanılacağını belirtir. Varsayılan olaraknetworkdkullanılır, ancak NetworkManager kullanmak istiyorsanız bunu açıkça belirtmelisiniz.ethernets,wifis,bridges,vlans: Arayüzlerin türüne göre gruplandırılmış yapılandırmaları içerir.
Aşağıda basit bir Netplan dosyası örneği bulunmaktadır:
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: true
Bu örnekte, ens3 adlı ağ arayüzü için DHCP üzerinden IPv4 adresi alınması ayarlanmıştır. Arayüz adını (ens3) sistemdeki gerçek arayüz adıyla eşleştirmeniz gerekir. Bunu yapmak için aşağıdaki komutu kullanabilirsiniz:
ip link
Önemli: YAML dosyalarında girintiler çok önemlidir. Düzgün girintilenmemiş satırlar, yapılandırmanın uygulanmamasına neden olabilir. Sekme yerine boşluk kullanmayı unutmayın.
DHCP ile Ağ Yapılandırması
DHCP (Dynamic Host Configuration Protocol), ağ arayüzüne otomatik olarak bir IP adresi atamak için kullanılır. Netplan'da DHCP'yi etkinleştirmek oldukça basittir. Aşağıda IPv4 için DHCP'yi etkinleştiren bir örnek bulunmaktadır:
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: true
Eğer IPv6 için de DHCP kullanmak istiyorsanız, dhcp6: true satırını ekleyebilirsiniz:
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: true
dhcp6: true
Bu yapılandırma, çoğu yeni Ubuntu kurulumunda varsayılan olarak kullanılan yapıdır. Router, arayüze otomatik olarak bir IP adresi atar.
Statik IP Adresi Yapılandırması
Statik IP adresi, arayüzün her zaman aynı IP adresini kullanmasını sağlar. Bu, sunucular ve belirli ağ cihazları için önemlidir. Statik IP adresi yapılandırması için DHCP'yi devre dışı bırakmanız ve aşağıdaki bilgileri manuel olarak girmeniz gerekir:
- Arayüzün IP adresi (CIDR notasyonunda, örneğin
192.168.1.50/24) - Varsayılan ağ geçidi (gateway)
- DNS sunucuları
Aşağıda bir statik IP adresi yapılandırması örneği bulunmaktadır:
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: false
addresses:
- 192.168.1.50/24
routes:
- to: default
via: 192.168.1.1
nameservers:
addresses:
- 8.8.8.8
- 1.1.1.1
Açıklamalar:
addresses: Arayüzün alacağı IP adreslerini belirtir. CIDR notasyonu kullanılır, örneğin/24netmask'ının255.255.255.0olduğunu gösterir.routes: Ağ trafiğinin nereye yönlendirileceğini belirtir.to: defaultvarsayılan ağ geçidini ifade eder.via: 192.168.1.1ise trafiğin hangi IP adresine yönlendirileceğini belirtir.nameservers: Kullanılacak DNS sunucularını belirtir. Burada Google DNS (8.8.8.8) ve Cloudflare DNS (1.1.1.1) kullanılmıştır.
Birden fazla IP adresi atamak için addresses listesine ek satırlar ekleyebilirsiniz.
Wi-Fi Ağ Yapılandırması
Ubuntu masaüstü sistemlerinde, Wi-Fi ağlarına bağlanmak için NetworkManager renderer'ının kullanılması önerilir. Aşağıda bir Wi-Fi ağ bağlantısı yapılandırması örneği bulunmaktadır:
network:
version: 2
renderer: NetworkManager
wifis:
wlp2s0:
dhcp4: true
access-points:
"MyNetwork":
password: "your-wifi-password"
Açıklamalar:
wlp2s0: Wi-Fi arayüzünün adıdır. Sistemdeki gerçek arayüz adını öğrenmek içinip linkkomutunu kullanabilirsiniz.MyNetwork: Bağlanmak istediğiniz Wi-Fi ağının SSID'sidir.password: Wi-Fi ağının şifresidir. Dikkat: Şifre düz metin olarak saklandığı için, dosya izinlerini600olarak ayarlayın ve bu dosyaları versiyon kontrol sistemlerine eklemeyin.
Uyarı:
Wi-Fi şifresi, Netplan dosyasında düz metin olarak saklanır. Dosya izinlerini 600 olarak ayarlayın ve bu dosyaları versiyon kontrol sistemlerine (örneğin Git) eklemeyin. Aksi takdirde, şifreniz güvenlik riski oluşturabilir.
Köprü (Bridge) Oluşturma
Köprüler, birden fazla fiziksel arayüzü tek bir mantıksal ağa birleştirir. Bu özellik, sanal makineler veya konteynerler gibi fiziksel ağa doğrudan erişim gerektiren uygulamalar için kullanışlıdır. Aşağıda bir köprü oluşturma örneği bulunmaktadır:
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: false
bridges:
br0:
interfaces:
- ens3
dhcp4: true
Açıklamalar:
ens3: Fiziksel arayüzün adıdır. Köprüye dahil edilecek arayüzleri belirtir.br0: Oluşturulacak köprünün adıdır.dhcp4: true: Köprünün DHCP üzerinden bir IP adresi almasını sağlar. Fiziksel arayüzün DHCP'yi kullanmasına gerek yoktur, çünkü köprü IP adresini yönetir.
Yapılandırmayı Uygulama
Yapılandırma dosyasını düzenledikten sonra, değişiklikleri uygulamadan önce sözdizimi hatalarını kontrol etmek önemlidir. Aşağıdaki komut, arka uç sistem için yapılandırmayı oluşturur ve herhangi bir problemi rapor eder:
sudo netplan generate
Uzak bir sunucuda çalışırken, netplan apply komutunu körü körüne çalıştırmak risklidir. Yanlış bir yapılandırma, bağlantınızın kesilmesine neden olabilir. Bunun yerine, netplan try komutunu kullanın. Bu komut, yapılandırmayı geçici olarak uygular ve belirli bir süre içinde onaylamadığınız takdirde otomatik olarak geri alır:
sudo netplan try
Eğer bağlantınız kesilmezse ve yapılandırma doğruysa, komut satırında çıkan onay isteminde yes yazarak yapılandırmayı kalıcı hale getirebilirsiniz. Bu işlemden sonra netplan apply komutunu çalıştırmaya gerek yoktur.
Yerel konsoldan çalışırken ve doğrudan değişiklikleri uygulamak istiyorsanız, aşağıdaki komutu kullanabilirsiniz:
sudo netplan apply
Ubuntu'nun yeni sürümlerinde, aşağıdaki komutla mevcut ağ durumunu (adresler, yollar ve DNS) görüntüleyebilirsiniz:
sudo netplan status
Ayrıca, aşağıdaki komutla belirli bir arayüzün atanmış IP adresini doğrudan kontrol edebilirsiniz:
ip addr show dev ens3
Sorun Giderme
netplan apply Sonrası Değişiklikler Geçerli Olmuyor
Eğer netplan apply komutunu çalıştırdıktan sonra değişiklikler geçerli olmuyorsa, aşağıdaki adımları izleyin:
sudo netplan generatekomutunu çalıştırarak herhangi bir YAML hatası olup olmadığını kontrol edin.- Dosyanın doğru olduğundan emin olun.
- Arayüz adının
ip linkkomutu çıktısıyla eşleştiğinden emin olun. sudo netplan getkomutunu çalıştırarak daha sonra okunan bir dosyanın yapılandırmanızı geçersiz kılmadığından emin olun.
gateway4 Uyarısı
Eski Netplan dosyalarında gateway4 kullanılmış olabilir. Bu anahtar, artık kullanılmamaktadır. Bunun yerine, aşağıdaki gibi bir routes bloğu kullanın:
routes:
- to: default
via: 192.168.1.1
Wi-Fi Bağlantısı Kurulamıyor
Eğer Wi-Fi bağlantısı kurulamıyorsa, aşağıdaki noktaları kontrol edin:
- Renderer'ın
NetworkManagerolarak ayarlandığından emin olun. - SSID'nin tırnak içinde ve tam olarak girildiğinden emin olun.
- Arayüz adının
ip linkkomutu çıktısıyla eşleştiğinden emin olun.
Bulut Örneğinde Statik Adres Yeniden Başlatmada Sıfırlanıyor
Bazı bulut görüntülerinde (cloud images), cloud-init tarafından Netplan dosyaları yeniden oluşturulabilir. Bunu engellemek için aşağıdaki dosyayı oluşturun:
sudo nano /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg
Dosyanın içeriği şu şekilde olmalıdır:
network: {config: disabled}
Daha sonra sistemi yeniden başlatın.
Sonuç
Netplan, Ubuntu'da ağ yapılandırmasını birkaç okunabilir YAML dosyasıyla merkezi bir şekilde yönetmenizi sağlar. Sunucular için systemd-networkd ve masaüstü sistemleri için NetworkManager kullanılır. Uzak bir sunucuda Netplan dosyalarını düzenlerken, sudo netplan try komutunu kullanarak yapılan değişikliklerin otomatik olarak geri alınmasını sağlayabilir ve bağlantınızın kesilmesini önleyebilirsiniz.


