Ağ Arayüzlerini Yapılandırmak için 24 Faydalı "IP" Komutu


Kısa: Bu kılavuzda ip komutunun bazı pratik örneklerini tartışacağız. Bu kılavuzun sonunda kullanıcılar, Linux'ta ağ oluşturma görevlerini komut satırı arayüzünden verimli bir şekilde gerçekleştirebilecekler.

Sistem yöneticilerinin genellikle Linux sunucularında ağ oluşturma görevlerini gerçekleştirmesi gerekir. Piyasada çeşitli grafik ve komut satırı araçları bulunmaktadır. Ancak çoğu Linux kullanıcısı, basitliği ve zengin işlevselliği nedeniyle ip komutunu kullanmayı tercih ediyor.

ip komutu, bir ağ arayüzüne IP adresi atamak veya bir Linux sistemindeki yararlı ağ değişkenlerini yapılandırmak/güncellemek için kullanılan yeni bir ağ komut satırı yardımcı programıdır.

iproute2 paketinin bir parçasıdır ve ağ arayüzlerini açmak veya kapatmak, IP adreslerini ve rotalarını atamak ve kaldırmak, ARP önbelleğini yönetmek ve çok daha fazlası gibi çeşitli ağ yönetimi görevleri sunar.

ip komutu eski ifconfig komutuna çok benzer, ancak kendisine eklenen daha fazla işlev ve özellik sayesinde çok daha güçlüdür.

Tüm modern Linux dağıtımlarında ifconfig komutu kullanımdan kaldırılmış ve yerini ip komutu almıştır. Ancak ifconfig komutu hâlâ çalışıyor ve çoğu Linux dağıtımında kullanılabilir.

Not: Lütfen herhangi bir değişiklik yapmadan önce yapılandırma dosyasının yedeğini alın.

1. Linux'ta Statik IP Adresini Kalıcı Olarak Yapılandırma

Linux'ta statik bir IP adresini kalıcı olarak yapılandırmak için, sisteme statik bir IP adresi atamak amacıyla ağ yapılandırma dosyasını güncellemeniz veya düzenlemeniz gerekir. Terminalden veya komut isteminden su (kullanıcıyı değiştir) komutuna sahip bir süper kullanıcı olmanız gerekir.

RHEL Sistemlerinde Statik IP Adresini Ayarlama

Favori metin düzenleyicinizi kullanarak (eth0 veya eth1) için ağ yapılandırma dosyalarını açın ve düzenleyin. Örneğin RHEL tabanlı dağıtımlarda aşağıdaki gibi eth0 arayüzüne IP Adresi atamak.

vi /etc/sysconfig/network-scripts/ifcfg-eth0     [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]

Debian Sistemlerinde Statik IP Adresi Ayarlama

Kalıcı statik IP adresini yapılandırmak için, Debian tabanlı dağıtımlar için aşağıda gösterildiği gibi kalıcı değişiklikler yapmak üzere ağ arayüzü yapılandırma dosyanızı /etc/network/interfaces değiştirmeniz gerekir.

sudo nano /etc/network/interfaces     [On Debian, Ubuntu and Mint]

Daha sonra aşağıdaki komutu kullanarak tüm detayları girdikten sonra ağ servislerini yeniden başlatın.

sudo systemctl restart networking

2. Linux'ta Statik IP Adresini Geçici Olarak Yapılandırma

Geçici ağ yapılandırmalarında, belirli bir arayüze (eth2) anında bir IP adresi atamak için ip komutunu kullanabilirsiniz.

ip addr add 172.19.1.10/24 dev eth2
OR
sudo ip addr add 172.19.1.10/24 dev eth2

Not: Maalesef sistem yeniden başlatıldığında tüm bu ayarlar kaybolacaktır.

3. Tüm Ağ Arayüzleri Nasıl Görüntülenir?

ip komutunda bağlantı nesnesi ağ arayüzünü temsil eder. Tüm ağ arayüzlerini görüntülemek için show komutunu kullanabiliriz.

Şimdi aşağıdaki komutu kullanarak tüm ağ arayüzlerini görüntüleyelim:

ip link show

Yukarıdaki çıktı, arayüz adı, bayraklar, durum, bağlantı adresi, yayın adresi vb. gibi tüm ağ arayüzlerinin ayrıntılarını gösterir.

4. Belirli Bir Ağ Arayüzünün IP Adresi Nasıl Kontrol Edilir

Bireysel ağ arayüzünüzün IP Adresi gibi derinlik bilgilerini ve MAC Adresi bilgilerini almak için aşağıda gösterildiği gibi aşağıdaki komutu kullanın.

ip link show eth2

Şu ana kadar ağ arayüzleri hakkında detaylı bilgi gösteren link nesnesini kullandık. Ancak ağ arayüzüyle ilişkili IP adresini göstermez. Bu sınırlamayı aşmak için ip komutuyla birlikte addr nesnesini kullanabiliriz.

Bunu bir örnekle anlayalım.

ip addr show

Burada, çıktının diğer ayrıntılarla birlikte tüm ağ arayüzlerinin IP adreslerini gösterdiğini görebiliriz.

Bireysel ağ arayüzünün IP adresini görüntülemek için, komuta argüman olarak ağ arayüzü adını vermeniz yeterlidir.

ip addr show eth2

5. Renkli Çıktıda IP Adresi Nasıl Görüntülenir?

ip komutu ağ nesneleri hakkında ayrıntılı bilgi gösterir. Ancak bazen sınırlı bilgilere de göz atmamız gerekiyor. Bu gibi durumlarda renkli çıktıyı etkinleştirebiliriz. Bu seçenek önemli ayrıntıları farklı renklerde vurgular.

Çıktıyı farklı renklerde görüntülemek için komutun --color seçeneğini kullanalım:

ip --color addr show eth2

Yukarıdaki çıktıda arayüz adının, ethernet adresinin ve durumunun farklı renklerle vurgulandığını görebiliriz.

6. IP Adresi JSON Formatında Nasıl Görüntülenir?

Önceki örneklerde ip komutunun anlamlı bilgiler gösterdiğini gördük. Ancak ham çıktıyı ayrıştırmak ve basit komut dosyalarını kullanarak anlamlı bilgiler çıkarmak kolay bir iş değildir. Bu gibi durumlarda, ip komutuna çıktıyı JSON biçiminde oluşturması talimatını verebiliriz.

Öyleyse, aynı çıktıyı JSON formatında görüntülemek için komutla birlikte -j seçeneğini kullanalım:

ip -j link show eth2

Bu yöntem otomasyon yaparken kullanışlıdır çünkü JSON yaygın olarak kabul edilen bir formattır ve çeşitli programlama dillerinde çok sayıda JSON ayrıştırıcı kitaplığı/aracı mevcuttur.

7. JSON Çıktısını Daha Okunabilir Hale Getirme

Önceki örnekte çıktıyı JSON biçiminde görüntülemek için -j seçeneğini kullandık. Bu varsayılan JSON biçimi kompakttır ve yerden tasarruf sağlar. Ancak girinti eksikliği nedeniyle çıktının okunması kolay değildir.

Bu sınırlamayı aşmak için çıktıyı girintileyerek daha okunaklı hale getiren -p seçeneğini kullanabiliriz. Bunu aşağıdaki örnekle anlayalım:

ip -j -p link show eth2

Burada aynı çıktının önceki örneklere göre çok daha okunabilir olduğunu görüyoruz.

8. Ağ Arayüzünden IP Adresi Nasıl Kaldırılır

Önceki örnekte IP adresi atamak için add alt komutunu kullandık. Benzer şekilde, belirli bir IP adresini kaldırmak için del alt komutunu kullanabiliriz.

Aşağıdaki komut, atanmış bir IP adresini verilen arayüzden (eth2) kaldıracaktır.

ip addr del 172.19.1.10/24 dev eth2
OR
sudo ip addr del 172.19.1.10/24 dev eth2

Şimdi IP adresinin kaldırıldığını doğrulayalım:

ip -j -p addr show eth2

Yukarıdaki çıktıda artık eth2 ağ arayüzünün yalnızca bir IP adresine sahip olduğunu görebiliriz.

9. Ağ Arayüzünü Etkinleştirme

Arayüz adını (eth2) içeren “up” bayrağı bir ağ arayüzünü etkinleştirir. Örneğin aşağıdaki komut eth2 ağ arayüzünü etkinleştirecektir.

ip link set eth2 up
OR
sudo ip link set dev eth2 up

Şimdi güncellenmiş durumu kontrol edelim:

ip -j -p link show eth2 | grep operstate

10. Ağ Arayüzünü Devre Dışı Bırakma

Arayüz adını (eth2) içeren “aşağı” işareti bir ağ arayüzünü devre dışı bırakır. Örneğin, aşağıdaki komut eth2 ağ arayüzünü devre dışı bırakır.

ip link set eth2 down
OR
sudo ip link set eth2 down

Şimdi eth2 ağ arayüzünün durumunu kontrol edelim:

ip -j -p link show eth2 | grep operstate

Yukarıdaki çıktı ağ arayüzünün değiştirilmiş durumunu gösterir.

11. Ağ Arayüzünün IP Adresleri Nasıl Temizlenir

Önceki örnekte, bir IP adresini kaldırmak için del alt komutunun nasıl kullanılacağını gördük. Ancak bazen belirli bir ağ arayüzünün tüm IP adreslerini kaldırmamız gerekir. Bu gibi durumlarda flush alt komutunu kullanabiliriz.

İlk olarak, eth2 ağ arayüzünün tüm IP adreslerini kaldırmak için temizle alt komutunu kullanın:

sudo ip addr flush eth2

Şimdi eth2 ağ arayüzünün tüm IP adreslerinin kaldırıldığını kontrol edelim:

ip -j -p addr show eth2

Yukarıdaki çıktıda addr_info alanı boş JSON dizisini gösterir. Bu, eth2 ağ arayüzüyle ilişkili herhangi bir IP adresi olmadığını gösterir.

12. Yönlendirme Tablosunu Nasıl Kontrol Edebilirim

Yönlendirme tablosu, bir ağ paketini doğru hedefe iletmek için gerekli bilgileri saklar. Yönlendirme kurallarını görüntülemek için ip komutunun route nesnesini kullanabiliriz.

Yönlendirme tablosunun tüm kurallarını listelemek için aşağıdaki komutu kullanalım:

ip route show

Yukarıdaki çıktıda, ilk sütun hedefi, son sütun ise kaynak IP adresini temsil eder.

13. Yeni Statik Rotayı Nasıl Eklerim?

Trafiğin varsayılan ağ geçidinden geçmemesi gerektiğinden neden statik yollar veya manuel yollar eklemeniz gerekiyor? Trafiği hedefe ulaşmak için en iyi yoldan geçirmek için statik rotalar eklememiz gerekiyor.

sudo ip route add 172.19.1.0/24 dev eth2 proto kernel scope link src 172.19.1.2

Şimdi girişin başarıyla eklendiğini doğrulayalım:

ip route show

15. Statik Rota Nasıl Kaldırılır

del alt komutu belirli bir girişi yönlendirme tablosundan kaldırır. Örneğin, aşağıdaki komut eth2 cihaz rotasının girişini kaldırır:

sudo ip route del 172.19.1.0/24

Şimdi girişin başarıyla kaldırıldığını doğrulayalım:

ip route show

16. Kalıcı Statik Rotaları Nasıl Eklerim

Sistemin yeniden başlatılmasından sonra yukarıdaki rotaların tümü kaybolacaktır. Kalıcı bir statik rota eklemek için /etc/sysconfig/network-scripts/route-eth2 dosyasını düzenleyin ((eth2) için statik rotayı saklıyoruz. Varsayılan olarak, route-eth2 dosyası orada olmayacak ve oluşturulması gerekecek.

RHEL Sistemlerinde Kalıcı Rota Belirleyin

vi /etc/sysconfig/network-scripts/route-eth2

ve aşağıdaki satırları ekleyip kaydedip çıkıyoruz.

172.19.1.0/24 via 172.19.1.2 dev eth2

Debian Sistemlerinde Kalıcı Rota Belirleyin

/etc/network/interfaces dosyasını açın ve sonuna kalıcılık statik rotalarını ekleyin. IP Adresleri ortamınızda farklılık gösterebilir.

sudo vi /etc/network/interfaces
auto eth2
iface eth2 inet static
address 172.19.50.2
netmask 255.255.255.0
gateway 172.19.50.100
#########{Static Route}###########
up ip route add 172.19.1.0/24 via 172.19.1.2 dev eth2

Daha sonra aşağıdaki komutu kullanarak tüm detayları girdikten sonra ağ servislerini yeniden başlatın.

sudo systemctl restart networking

17. Varsayılan Ağ Geçidini Nasıl Eklerim

Ağ oluşturmada varsayılan ağ geçidi önemli bir rol oynar. Yönlendirme tablosunun hedef hakkında herhangi bir bilgi içermediği durumlarda kullanılır.

Varsayılan ağ geçidi genel olarak veya arayüze özel yapılandırma dosyaları için belirtilebilir. Varsayılan ağ geçidinin avantajı, sistemde birden fazla NIC'nin bulunmasıdır. Komutun altında gösterildiği gibi varsayılan ağ geçidini anında ekleyebilirsiniz.

Öncelikle varsayılan ağ geçidi olarak bir eth0 ağ arayüzü ekleyelim:

sudo ip route add default via 172.17.0.1

Şimdi aşağıdaki komutu kullanarak varsayılan ağ geçidi ayarını doğrulayalım:

ip route show

Lütfen bu komutu bir test makinesinde çalıştırdığımızı unutmayın. Bu komutu üretim ortamında kullanırken dikkatli olun.

18. Varsayılan Ağ Geçidini Kaldırma

Varsayılan ağ geçidini kaldırmak için aşağıdaki komutu kullanabiliriz:

sudo ip route del default

Şimdi varsayılan ağ geçidinin kaldırıldığını doğrulamak için yönlendirme tablosunu listeleyelim:

ip route show

19. ARP Önbelleği Nasıl Görüntülenir

ARP, belirli bir IP adresiyle ilişkili MAC adresini bulmak için kullanılan Adres Çözümleme Protokolü anlamına gelir.

ARP önbelleğini görüntülemek için neigh nesnesini ip komutuyla birlikte kullanabiliriz:

ip neigh show

Yukarıdaki komutta kişne komşu nesneleri temsil eder.

20. ARP Girişi Nasıl Eklenir?

Yeni bir ARP girişi oluşturmak için neigh nesnesiyle birlikte ekle alt komutunu kullanabiliriz.

sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2

Şimdi ARP önbellek girişlerini listeleyelim:

ip neigh show

Yukarıdaki çıktıda eth2 ağ arayüzü için yeni girişi görebiliriz.

21. ARP Girişi Nasıl Kaldırılır

Diğer ağ nesneleri gibi ARP girişini kaldırmak için del alt komutunu kullanabiliriz. Örneğin, aşağıdaki komut eth2 ağ arayüzünün ARP girişini kaldırır:

sudo ip neigh del 172.19.1.0 dev eth2

Şimdi ARP önbelleğini listeleyerek girişin kaldırıldığını doğrulayalım:

ip neigh show 

22. ARP Girişleri Nasıl Temizlenir

Birden fazla ARP girişini kaldırmak için temizleme alt komutunu kullanabiliriz. Bunu anlamak için öncelikle STALE durumuna sahip birkaç ARP girişi ekleyin:

sudo ip neigh add 172.19.1.0 lladdr 02:42:e3:40:a6:b1 dev eth2 nud stale
sudo ip neigh add 172.19.2.0 lladdr 02:42:e3:40:a6:b2 dev eth2 nud stale
sudo ip neigh add 172.19.3.0 lladdr 02:42:e3:40:a6:b3 dev eth2 nud stale

Ardından, yeni girişlerin başarıyla eklendiğini doğrulayın:

ip neigh show

Ardından aşağıdaki komutu kullanarak tüm girişleri temizleyin:

sudo ip neigh flush all

Son olarak tüm girişlerin kaldırıldığını doğrulayın:

ip neigh show

23. Ağ Arayüzü için MTU Nasıl Ayarlanır

MTU, tek bir işlemde aktarılabilecek en büyük paket boyutunu temsil eden Maksimum İletim Birimi anlamına gelir. MTU boyutunu performans gereksinimlerimize göre değiştirebiliriz.

Öncelikle eth2 ağ arayüzünün MTU'sunu bulalım:

ip -j -p link show eth2 | grep mtu

Daha sonra, eth2 ağ arayüzünün MTU boyutunu 3000 olarak güncelleyin:

sudo ip link set mtu 3000 dev eth2

Son olarak MTU'nun başarıyla güncellendiğini doğrulayın:

ip -j -p link show eth2 | grep mtu

24. Ağ Mac Adresi Nasıl Değiştirilir

ip komutu ağ arayüzünün MAC adresini değiştirmemize olanak tanır. Bunu başarmak için set alt komutunu link nesnesiyle birlikte kullanabiliriz:

Öncelikle eth2 ağ arayüzünün mevcut MAC adresini listeleyin:

ip -j -p link show eth2 | grep address

Daha sonra aşağıdaki komutu kullanarak ağ arayüzünün MAC adresini değiştirin:

sudo ip link set dev eth2 address 02:42:ac:13:01:03

Son olarak MAC adresinin değiştirildiğini doğrulayın:

ip -j -p link show eth2 | grep address

IP Komutu hakkında daha fazla bilgi edinmek için lütfen terminal/komut isteminden man ip yapma kılavuzu sayfasına bakın.

man ip
Çözüm

Bu makalede ip komutunun bazı yaygın örneklerini tartıştık. Bu örnekler günlük yaşamda ağ yönetimini gerçekleştirmek için kullanılabilir.

Linux'ta ip komutunun en iyi başka örneğini biliyor musunuz? Aşağıdaki yorumlarda görüşlerinizi bize bildirin.