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.
-n
parametresiyle adreslerin nümerik değerleri gösterilir.
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.
Modern Karşılığı:
sudo ip route add default via 192.168.99.5
Default Gateway Silmek
Varsayılan ağ geçidini silmek için:
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:
Modern Karşılığı:
sudo ip route add 192.168.59.0/24 dev eth0
Ağ Geçidi Belirterek:
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:
Route Silmek
Eklenmiş bir route'u silmek için add
yerine del
kullanılır:
Modern Karşılığı:
sudo ip route del 192.168.59.0/24 dev eth0
Modern Karşılığı:
sudo ip route del 192.168.55.0/24 via 192.168.55.1
Bir IP veya Ağı Engellemek (reject
)
reject
)Belirli bir hedefe giden paketleri yönlendirmek yerine doğrudan engellemek (ICMP "unreachable" mesajı ile) için reject
kullanılır:
Modern Karşılığı:
sudo ip route add prohibit 192.168.59.5
(veyablackhole
- sessizce yok sayar)
Engellemeyi kaldırmak için:
Modern Karşılığı:
sudo ip route del prohibit 192.168.59.5
Bir ağı engellemek:
Modern Karşılığı:
sudo ip route add prohibit 192.168.59.0/24
Engellemeyi kaldırmak için:
Modern Karşılığı:
sudo ip route del prohibit 192.168.59.0/24
Örnek Route Senaryosu (Modern ip route
ile)
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:
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):
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:
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'nin192.168.59.1
adresine gider. VT, hedef IP'nin10.0.42.0/24
ağına ait olduğunu tablosundan bilir ve paketieth2
arayüzünden dışarı yönlendirir.Teknik ekipteki bir bilgisayar internete (örn.
8.8.8.8
) paket gönderdiğinde, paket VT'nin192.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
) üzerindeneth0
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.
Last updated