Temel Düzeyde Linux Yönlendirici ve Sanal IP Adresi Çevirilmesi (NAT) Uygulaması
Evimizde, ofisimizde veya dizimizde duran bir bilgisayarı, ihtiyaç duyduğumuzda nasıl bir yönlendirici haline getirebiliriz? Örneğin, odanızda tek bir kablo girişi var, ama siz ağa iki bilgisayar bağlamak istiyorsunuz. Veya, bulunduğunuz yerde kablosuz ağ mevcut ama bir bilgisayarda kablosuz ağ arayüzü var, diğerinde yok. İşte bu gibi durumlarda bilgisayarınıza gireceğiniz toplam dört komut ile çözüme ulaşabilirsiniz. Bu yazıda, herhangi iki ağ arayüzüne sahip bir Linux işletim sistemi yüklü bilgisayar ile PC yönlendiricinin nasıl yapılabildiği anlatılmaktadır. Yazıda belirtilen ayarlar, işletim sisteminin varsayılan ayarları değiştirilmeden yapılmakta olup, küçük ağlar için de yeterli gelecektir. 100 ve üzeri istemci barındıran daha büyük ağlar için, pc yönlendiricinizin çekirdek ayarlarında bazı değişikliklerin yapılması da gerekecektir (gelişmiş pc yönlendiriciler, ileriki yazılarda anlatılacaktır).
1. Arayüzlerin Yapılandırılması
Bilgisayarımız, yönlendirici olacağı için, en az iki arayüze sahip olmalıdır. Bu arayüzler, fiziksel olabileceği gibi, sanal olarak da kullanılabilinir. Bu dökümanda basit örnekleme adına, bilgisayara ikinci kart takılarak işlemler yapılmıştır.
Bilgisayarın arayüzleri, ifconfig -a komutu ile gözlenir. İki arayüzden, bir tanesi dış ağa diğeri ise iç ağa bağlanmak üzere plan yapıldıktan sonra, ilgili ip adresleri arayüzlere atanmalıdır.
|
krep:~# ifconfig eth0 inet 10.10.10.236 netmask 255.255.255.0 broadcast 10.10.10.255 up krep:~# ifconfig eth1 inet 10.5.5.5 netmask 255.255.255.0 broadcast 10.5.5.255 up |
Örnekte, eth0 arayüzüne atanmış olan 10.10.10.0/24 networkü, dış ağa bağlantıyı sağlamakta olup, eth1 arayüzüne bağlanan 10.5.5.0/24 networkü ise iç ağ olarak tanımladığımız, yönlendirilmesi gereken ve istemcilerin bulunduğu ağ olarak tasarlanmıştır.
Ağ arayüzlerinde yaptığınız değişikliklerin her açılışta yüklenmesi için, /etc/network/interfaces dosyasında gerekli düzenlemeleri yapmanız gerekmektedir. Örnekte girmiş olduğumuz değerler için hazırlanmış konfigürasyon dosyası aşağıdaki gibidir. /etc/network/interfaces yapılandırma dosyasında, iface başlayan satırlar, ilgili ağ arayüzünün yapılandırma bölüm başlangıcıdır. ifconfig komutundan farklı olarak bu alanda girilebilen network değeri, ip adresleme kuralları gereği kullanmakta olduğunuz ip bloğunun başlangıç adresidir. İkinci farklı girdi olan gateway değeri ise, komut satırından route add default gw 10.10.10.1 komutu ile girebileceğiniz varsayılan ağ geçidi ayarıdır (Yazının amacı kalıcı olarak bir pc yönlendirici yapmaktan ziyade bir yerde ihtiyacınız olduğunda kullanabileceğiniz durumu anlatmak olduğundan, halihazırda ağa bağlı olduğunu varsaydığımız örnekte bu yapılandırmalara değinilmemiştir).
|
# This file describes the network interfaces available on your system # The loopback network interface # The primary network interface |
2. Yönlendirici özellikleri
Linux kurulu bilgisayarın yönlendirici özelliğini açmak için, sysctl -a ile görüntülenebilen çekirdek değerlerinden, net.ipv4.ip_forward = 0 değeri, 1 olarak değiştirilmelidir.
Komut satırından
|
krep:~# sysctl net.ipv4.ip_forward |
Başlangıçta da aynı değeri alması için, /etc/sysctl.conf dosyasında, aşağıdaki satır bulunarak değiştirilir, veya eklenir.
net.ipv4.conf.default.forwarding=1
Gerekiyor ise, içerideki ve dışarıdaki networkler yönlendirme tablosuna eklenmelidir. route add komutu, statik olarak ilgili yönlendirme komutlarının girilmesini sağlar. Dinamik yönlendirme için, quagga (zebra) kurulumu yeterlidir. Bu kısımlar, ileriki yazılarda detaylandırılarak anlatılacaktır.
3. NAT
İç ağda kullanılan ip adreslerinin, dışarıya tek bir ip adresi olarak çıkması ve yönlendirilmesi için, iptables ile tanım girilmelidir. Yeni sürüm Linux dağıtımlarının hepsi, iptables yüklü olarak geldiği için, ek bir kurulum veya derleme yapılmasına gerek yoktur.
|
krep:~# iptables -t nat -A POSTROUTING -s 10.5.5.0/24 -j SNAT -o eth0 –to-source 10.10.10.23 |
Bilgisayarınızın her açılışında bu komutun yüklenmesi için, /etc/rc.d/rc.local içerisine komutun yazılması yeterlidir.

-j SNAT uygulamasi eth0 interface’in sabit ip olmasi durumunda gecerlidir.
Olaki eth0 DHCP ile ip adresi ogreniyorsa:
-j MASQUARADE
demek gerekir.
Birde ornek yazarken komut satirina yazilarak yapilacak sekilde degilde konfig dosyasi edit edilecek sekilde yazmak gerekir.
Kullanici:
- Ee. Ben bunu her acilista yapacakmiyim
Yorum 1: Doğrudur, dökümanda ilk adımda statik ip adresi alarak başladığım için belirtmemiştim, teşekkürler.
Yorum 2: Dökümanda, komutların yazılması gereken satırlar ve yazılacağı dosyalar mevcut aslında (”her açılışta yüklenmesi için”, “başlangıçta da aynı değeri alması için” ifadeleriyle başlayan cümleler). Bir daha ki yazıya daha da açıklayıcı yazarız artık
şu interfaces içindeki configurationuda bu ethernet adreslerine göre düzenlenmesini açıkca yazmış olsaydınız daha faydalı olacaktı.
—————–
Yazarın Notu: Murat Bey, yazıya /etc/network/interfaces dosyası içeriğini ve açıklamaları ekledim. Eleştiriniz için teşekkürler.
Gökhan ERYOL
Bilgisayarınızın her açılışında bu komutun yüklenmesi için, /etc/rc.d/rc.local içerisine komutun yazılması yeterlidir.
shoutcast serverda çalışmıyor bu komut nasıl yapabilirim