13.08.2020

Linux, static route ve netplan

Ubuntu 18.04 ve sonrası artık route tablosuna giriş eklemek için netplan kullanıyor.

Bir örnek üzerinden gidelim. Yerel ağımızdaki IP aralığı 192.168.1.0/24 olsun. Bir de uzak ofisimiz var, onun da IP aralığı 192.168.2.0/24. Uzak ofisteki kullanıcıların merkeze ulaşması için kurulan router'ın IP adresi de 192.168.2.101 olsun.

Bu durumda iletişimin sağlanabilmesi için, örneğin, uzak ofisteki bir ubuntu makinenin üzerinde

$ sudo ip route add 192.168.1.0/24 via 192.168.2.101 dev ens32

gibi bir yönlendirme girişi yapmak gerek. Ancak bu kalıcı olmayacak. Bir sonraki yeniden başlatmada da geçerli olmasını sağlayabilmek için /etc/netplan altındaki dosyayı düzenlememiz gerekecek. Bu klasörde ismi standart olmayan bir dosya vardır, kast edilen dosya bu. Elle IP adresi ataması yapılmış bir bilgisayar için bu dosyanın içeriği şu şekilde olabilir:

network:
    ethernets:
        ens32:
            addresses:
            - 192.168.2.7/24
            dhcp4: false
            gateway4: 192.168.2.1
            nameservers:
                addresses:
                - 192.168.2.2

Buraya, gördüğüm kadarıyla gateway4'ün hemen altına, şu satırları girmek gerek:

- to: 192.168.1.0/24
  via: 192.168.2.101
Yani tam içerik şöyle olacak:

network:
    ethernets:
        ens32:
            addresses:
            - 192.168.2.7/24
            dhcp4: false
            gateway4: 192.168.2.1
             - to: 192.168.1.0/24
               via: 192.168.2.101
            nameservers:
                addresses:
                - 192.168.2.2

Bu şekilde işlem tamam.

---

2020-12-28 ek: Netplan yaml dosyasındaki hatalardan dolayı yapılandırma uygulanmazsa bunun kaydını görmek için

$ journalctl -b -g netplan # NETPLAN (büyük harflerle) de olabilir

kullanılabilir. Ayrıca yaml dosyasındaki hataları görebilmek için netplan komutu ile birlikte aşağıdaki parametreler kullanılabilir:

# netplan try # yaml dosyasındaki ayarları uygula, hata varsa mevcut duruma geri dön

# netplan apply # yaml dosyasındaki ayarları uygula

# netplan ip leases ens33 # arayüz üzerindeki DHCP atamalarını görüntüle

Bunların haricinde üzerinde çalıştığımız sistem IP adresini bir DHCP sunucudan almışsa bu sunucuyu bulmak için

$ journalctl -b -g DHCP # anahtar kelime konusunda yaratıcı olmak gerekebilir

Veya çoğu dağıtğımda /var/lib/dhclient/dhclient.leases gibi bir dosyanın içeriğini inceleyebiliriz:

$ cat /var/lib/dhclient/dhclient.leases

Bunlar işimizi görmezse UDP 68 üzerinden gerçekleşen ağdaki DHCP trafiğine göz atmak istersek:

# tcpdump -i eth0 -nev udp port 68

ve hatta ağdaki DHCP sunucuyu bulabilmek için bir dhcp-discover paketi göndermek için

# nmap --script broadcast-dhcp-discover -e eth0

DHCP'nin mevcut atamasını serbest bırakıp yeniden istekte bulunmak için

# dhclient -r

Şu anda sistemin kullandığı DNS sunucuyu görmek için

# resolvectl dns

Gerekli durumda ağ hizmetlerini tekrar başlatmak için

$ sudo systemctl restart network-manager

---

https://netplan.io/examples/