Linux ­Kurulu­m ve Y­onetim­i
  • Döküman Hakkında
  • Linux ve GNU'nun Geçmişi
    • CentOS, Debian ve FreeBSD Ana Sürümlerin Farkları
  • Temel Komutlar
    • Temel Terminal Komutları
    • Yardım Dosyaları
    • Dosya İzinleri, Yetkiler, Kullanıcılar ve Gruplar
    • Dosya Düzenleme Araçları
      • nano ve pico
      • vi
    • Sıkıştırılmış Dosyalar
  • Standart Girdi ve Çıktı
    • Standart Çıktı
    • Standart Girdi
    • UNIX Pipeline
    • Olmazsa Olmaz: stdio.h
    • Standart Hata ve File Descriptor
    • Forkbomb
    • Named Pipe
  • Gelişmiş Terminal Komutları
    • Tarih ve Saat Ayarlama
    • Sistem Yükünü İzleme
    • patch ve diff
    • xargs
    • awk ve sed
    • egrep ve Regular Expressions
    • rename
    • Imagemagick ve Görüntü Dosyaları
    • wget
    • Python ile Dosya Sunuculuğu
  • Temel Dağıtımlar
    • RHEL Tabanlı (CentOS, Rocky, Alma)
      • rpm Paketleri
      • DNF Paket Yöneticisi
      • Repo Ayarları
      • Network Ayarları
    • Debian
      • deb Paketleri
      • apt Paket Yöneticisi
      • Repo Ayarları
      • Network Ayarları
    • FreeBSD
      • Ports ve pkg Yönetimi
      • Güncelleme Teknikleri
      • Network Ayarları
    • Arch Linux
      • pacman ve AUR
      • Network Ayarları
    • Ortak Network Dosyaları
  • SSH
    • Uzak Sunucuya Bağlanma
    • sshd Sunucu Ayarları
    • Private ve Public Anahtarlar
    • Güvenli Dosya Aktarımı
    • sshfs
  • Kernel Boot
    • Sunucu Başlangıcına Genel Bakış
    • Çekirdeğin Yüklenmesi ve Boot Seçenekleri
    • Çekirdek Parametreleri
    • Bootloader Nedir?
  • User Space
    • Başlangıç: Init
    • Init Versiyonunu Belirlemek
    • System V
      • Servislerin Yönetimi
      • Çalışma Seviyeleri (Run Levels)
      • Örnek System V Servis Oluşturma
    • systemd
      • Servislerin Yönetimi
      • Birimler ve Birim Tipleri
      • Örnek systemd Servis Oluşturma
    • Acil Durumlar ve Tek Kullanıcı Modu
  • BASH Programlama
    • Döngüler ve Diğer Kontrol Yöntemleri
    • Menüler
  • Log Dosyaları
    • Log İnceleme ve Filtreleme
  • İnternet Servisleri
    • Bir sayfanın İnternetteki Serüveni
    • Nameserver Servisleri
    • Apache
    • PHP-FPM
    • FTP/FTPS/SFTP
      • vsftpd
      • ProFTPD
      • SFTP
      • Komut Satırından ftp Kullanımı
  • Zamanlanmış Görevler
    • crontab
    • at
  • Veritabanı
    • MySQL
      • MySQL Kurulumu
      • MySQL Servisini Çalıştırmak
      • Veritabanı ve Tablo oluşturmak
      • SQL Tablosuna Veri Eklemek
      • Temel SQL Sorgularına Giriş
        • Birinci bölüm
      • mysqldump ile yedekleme
      • Replikasyon teknikleri
      • Yedekleri içeri alma
    • PostgreSQL
      • PostgreSQL Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
    • MongoDB
      • MongoDB Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
    • Redis
      • Redis Kurulumu
      • Temel Yapılandırma
      • Temel Kullanım
  • Temel Network Yapılandırması
  • Gelişmiş Network Komutları
    • ip
    • ifconfig
    • route
    • ping
    • traceroute
    • dig
    • nslookup
    • netcat
    • nmap
    • tcpdump
    • Wireshark (Giriş)
    • Bantgenişliği Ölçümü
  • Güvenlik
    • Firewalld
    • IPTables
      • Temel İzinler
      • IP ve Port Engelleme
    • selinux
  • Disk Sistemleri
    • ext
    • zfs
    • lvm
  • RAID
    • RAID Biçimleri
    • Verinin Disklere Yayılması
    • Cache
    • Terimler ve Tavsiyeler
  • Örnek Kurulumlar ve Modern Yaklaşımlar
    • CentOS 7 Tam Sistem Kurulumu (Arşiv)
    • AlmaLinux ile Hosting Ortamı Kurulumu
    • Ubuntu ile Hosting Ortamı Kurulumu
    • Modern Hosting Yaklaşımları (PaaS, Coolify vb.)
  • Konteynerleştirme (Docker / Podman)
  • Yapılandırma Yönetimi (Ansible)
  • İzleme ve Uyarı (Prometheus / Grafana)
  • Nginx Web Sunucusu
  • Kubernetes (Giriş)
  • PCI-DSS ve Linux Sistemleri
  • İndeks
  • Kaynaklar
Powered by GitBook
On this page
  • Mevcut Route Tablosunu Görmek
  • Route Tablosuna Müdahale Etmek (Geçici Ayarlar)
  • Örnek Route Senaryosu (Modern ip route ile)
  1. Gelişmiş Network Komutları

route

route komutu, ifconfig gibi eski net-tools paketinin bir parçasıdır ve Linux çekirdeğinin IP yönlendirme (routing) tablosunu görüntülemek ve yönetmek için kullanılırdı. Bu komut da artık geliştirilmemektedir ve modern sistemlerde yerini iproute2 paketindeki ip route komutuna bırakmıştır.

ip route komutu daha esnek, daha güçlüdür ve modern ağ kavramlarını (policy routing, multiple routing tables vb.) daha iyi destekler. Bu bölümde route komutu tarihsel bilgi amacıyla anlatılacaktır. Yeni yapılandırmalar ve betikler için ip route kullanmanız şiddetle tavsiye edilir.

Mevcut Route Tablosunu Görmek

Komutu doğrudan çalıştırdığınızda route tablosunu gösterir.

eaydin@dixon ~ $ route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
default         192.168.99.1    0.0.0.0         UG    0      0        0 wlan0
172.16.77.0     *               255.255.255.0   U     0      0        0 vmnet1
172.16.148.0    *               255.255.255.0   U     0      0        0 vmnet8
192.168.99.0    *               255.255.255.0   U     9      0        0 wlan0

-n parametresiyle adreslerin nümerik değerleri gösterilir.

eaydin@dixon ~ $ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.99.1    0.0.0.0         UG    0      0        0 wlan0
172.16.77.0     0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
172.16.148.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8
192.168.99.0    0.0.0.0         255.255.255.0   U     9      0        0 wlan0

Route Tablosuna Müdahale Etmek (Geçici Ayarlar)

route komutu ile yapılan değişiklikler, tıpkı ifconfig gibi, geçicidir ve sistem yeniden başlatıldığında kaybolur. Kalıcı ayarlar için NetworkManager, systemd-networkd veya /etc/network/interfaces gibi araçlar kullanılmalıdır.

Default Gateway Eklemek

Belirli bir ağ aralığında (network range) bulunmayan paketler default gateway'e yönlenir. Örneğin yukarıdaki routing tablosunda, 172.16.77.0/24, 172.16.148.0/24 ve 192.168.99.0/24 dışındaki adreslere yönlendirilecek bütün paketler, 192.168.99.1 adresine gönderilir. Burası bulunduğumuz ağdaki router'dır, kendisi de gelen paketleri Internet Servis Sağlayıcıya iletir. Default gateway'in kendisi olduğunu, Flags kolonundaki G ifadesi belirtmektedir.

sudo route add default gw 192.168.99.5
  • Modern Karşılığı: sudo ip route add default via 192.168.99.5

Default Gateway Silmek

Varsayılan ağ geçidini silmek için:

sudo route del default
  • Modern Karşılığı: sudo ip route del default

NOT: Bazı durumlarda sistemde birden fazla default gateway tanımlanabilir. Teorik olarak gerekmiyor olsa da pratikte nadiren rastlanılan bir durumdur. Bu özel durumlar kapsamımız dışında olduğundan incelemiyoruz. Sadece böyle senaryoların karşılaşılabildiğini belirtme ihtiyacı hissettik.

Belirli Bir Ağa Route Eklemek

Belirli bir ağa (örn. 192.168.59.0/25) giden trafiği belirli bir arayüz (örn. eth0) veya ağ geçidi (gateway) üzerinden yönlendirmek için:

  • Arayüz Belirterek:

    sudo route add -net 192.168.59.0 netmask 255.255.255.0 dev eth0 
    • Modern Karşılığı: sudo ip route add 192.168.59.0/24 dev eth0

  • Ağ Geçidi Belirterek:

    sudo route add -net 192.168.55.0 netmask 255.255.255.0 gw 192.168.55.1
    • Modern Karşılığı: sudo ip route add 192.168.55.0/24 via 192.168.55.1

Bu satırı yazdıktan sonra önceki route tablomuz şöyle oldu:

eaydin@dixon ~ $ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.99.1    0.0.0.0         UG    0      0        0 wlan0
172.16.77.0     0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
172.16.148.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8
192.168.59.128  0.0.0.0         255.255.255.128 U     0      0        0 eth0
192.168.99.0    0.0.0.0         255.255.255.0   U     9      0        0 wlan0

Route Silmek

Eklenmiş bir route'u silmek için add yerine del kullanılır:

sudo route del -net 192.168.59.0 netmask 255.255.255.0 dev eth0
  • Modern Karşılığı: sudo ip route del 192.168.59.0/24 dev eth0

sudo route del -net 192.168.55.0 netmask 255.255.255.0 gw 192.168.55.1
  • Modern Karşılığı: sudo ip route del 192.168.55.0/24 via 192.168.55.1

Bir IP veya Ağı Engellemek (reject)

Belirli bir hedefe giden paketleri yönlendirmek yerine doğrudan engellemek (ICMP "unreachable" mesajı ile) için reject kullanılır:

sudo route add -host 192.168.59.5 reject
  • Modern Karşılığı: sudo ip route add prohibit 192.168.59.5 (veya blackhole - sessizce yok sayar)

eaydin@dixon ~ $ ping 192.168.59.5
connect: Network is unreachable
eaydin@dixon ~ $ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.99.1    0.0.0.0         UG    0      0        0 wlan0
172.16.77.0     0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
172.16.148.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8
192.168.59.5    -               255.255.255.255 !H    0      -        0 -
192.168.99.0    0.0.0.0         255.255.255.0   U     9      0        0 wlan0

Engellemeyi kaldırmak için:

sudo route del -host 192.168.59.5 reject
  • Modern Karşılığı: sudo ip route del prohibit 192.168.59.5

Bir ağı engellemek:

sudo route add -net 192.168.59.0 netmask 255.255.255.0 reject
  • Modern Karşılığı: sudo ip route add prohibit 192.168.59.0/24

eaydin@dixon ~ $ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.99.1    0.0.0.0         UG    0      0        0 wlan0
172.16.77.0     0.0.0.0         255.255.255.0   U     0      0        0 vmnet1
172.16.148.0    0.0.0.0         255.255.255.0   U     0      0        0 vmnet8
192.168.59.0    -               255.255.255.0   !     0      -        0 -
192.168.99.0    0.0.0.0         255.255.255.0   U     9      0        0 wlan0

Engellemeyi kaldırmak için:

sudo route del -net 192.168.59.0 netmask 255.255.255.0 reject
  • Modern Karşılığı: sudo ip route del prohibit 192.168.59.0/24

Örnek Route Senaryosu (Modern ip route ile)

Aşağıdaki örneği dikkate alalım. VT isminde bir Linux sunucumuz (router) olsun. Üzerinde 3 ağ arayüzü var:

  • eth0: İnternet bağlantısı (IP: 94.103.32.80/28, Gateway: 94.103.32.81)

  • eth1: Teknik Ekip Ağı (IP: 192.168.59.1/24)

  • eth2: Muhasebe Ekibi Ağı (IP: 10.0.42.1/24)

Amacımız, hem teknik hem de muhasebe ekibinin birbirleriyle ve internetle konuşabilmesini sağlamak. Bunun için VT sunucusunda IP yönlendirmeyi (IP forwarding) etkinleştirmek ve istemcilerde doğru ağ geçidini ayarlamak gerekir.

1. VT Sunucusunda IP Yönlendirmeyi Etkinleştirme:

# Geçici olarak etkinleştirme
sudo sysctl -w net.ipv4.ip_forward=1

# Kalıcı hale getirmek için /etc/sysctl.conf veya /etc/sysctl.d/ içinde:
# net.ipv4.ip_forward = 1
# Ardından: sudo sysctl -p

2. Uçbirimlerin Ağ Geçidi Ayarları:

  • Teknik Ekip (192.168.59.0/24): Varsayılan ağ geçidi olarak VT sunucusunun bu ağdaki IP'sini (192.168.59.1) kullanmalıdırlar.

  • Muhasebe Ekibi (10.0.42.0/24): Varsayılan ağ geçidi olarak VT sunucusunun bu ağdaki IP'sini (10.0.42.1) kullanmalıdırlar.

3. VT Sunucusunda Yönlendirme Tablosu: VT sunucusunun yönlendirme tablosu genellikle şöyle görünmelidir (ip route komutu ile):

# İnternete çıkış için varsayılan yol
default via 94.103.32.81 dev eth0 
# Muhasebe ağına doğrudan bağlı
10.0.42.0/24 dev eth2 proto kernel scope link src 10.0.42.1 
# İnternet bağlantısının olduğu ağ
94.103.32.70/28 dev eth0 proto kernel scope link src 94.103.32.80 
# Teknik ekip ağına doğrudan bağlı
192.168.59.0/24 dev eth1 proto kernel scope link src 192.168.59.1 
  • Doğrudan bağlı ağlar (proto kernel scope link) genellikle otomatik olarak eklenir.

  • Varsayılan ağ geçidi (default via ...) genellikle DHCP ile alınır veya manuel olarak eklenir:

    sudo ip route add default via 94.103.32.81 dev eth0

Bu yapılandırma ile:

  • Teknik ekipteki bir bilgisayar (192.168.59.X), muhasebedeki bir bilgisayara (10.0.42.Y) paket gönderdiğinde, paket önce VT'nin 192.168.59.1 adresine gider. VT, hedef IP'nin 10.0.42.0/24 ağına ait olduğunu tablosundan bilir ve paketi eth2 arayüzünden dışarı yönlendirir.

  • Teknik ekipteki bir bilgisayar internete (örn. 8.8.8.8) paket gönderdiğinde, paket VT'nin 192.168.59.1 adresine gider. VT, hedefin kendi bildiği ağlarda olmadığını görür ve paketi varsayılan ağ geçidi (94.103.32.81) üzerinden eth0 arayüzünden dışarı yönlendirir. (NAT yapılandırması da gerekebilir).

route komutu eski sistemlerde yönlendirme tablosunu yönetmek için kullanılırdı, ancak ip route komutu modern Linux sistemlerinde daha yetenekli ve standart bir alternatiftir.

PreviousifconfigNextping

Last updated 1 month ago