Ubuntu'da Netplan ile Ağ Yapılandırması Nasıl Yapılır?

Ubuntu'da ağ yapılandırması artık Netplan ile yapılmakta. DHCP, statik IP, DNS, Wi-Fi ve köprü yapılandırmalarını adım adım öğrenin.

I
ITWISE
3 görüntülenme
Ubuntu'da Netplan ile Ağ Yapılandırması Nasıl Yapılır?

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.yaml
  • 01-netcfg.yaml
  • 50-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 versiyon 2'dir.
  • renderer: Hangi arka uç sisteminin kullanılacağını belirtir. Varsayılan olarak networkd kullanı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 /24 netmask'ının 255.255.255.0 olduğunu gösterir.
  • routes: Ağ trafiğinin nereye yönlendirileceğini belirtir. to: default varsayılan ağ geçidini ifade eder. via: 192.168.1.1 ise 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çin ip link komutunu 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 izinlerini 600 olarak 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:

  1. sudo netplan generate komutunu çalıştırarak herhangi bir YAML hatası olup olmadığını kontrol edin.
  2. Dosyanın doğru olduğundan emin olun.
  3. Arayüz adının ip link komutu çıktısıyla eşleştiğinden emin olun.
  4. sudo netplan get komutunu ç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 NetworkManager olarak ayarlandığından emin olun.
  • SSID'nin tırnak içinde ve tam olarak girildiğinden emin olun.
  • Arayüz adının ip link komutu çı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.

Kaynak

Linuxize