Linux ile outgoing loadbalancing
Linux ile Birden fazla internet çıkışını aynı anda kullanmak için outgoing loadbalancing temel olarak iproute2 ve iptables yardımı ile yapılır. Burada anlattığım yöntem ECMP ( Equel Cost multipath Routing )’ olarakta bilinir.

Şekildeki örnek 5 adet çeşitli modemlerle yapılandırılmış olsada bu bağlantı türleri herhangi bir bağlantı olabilir ( PPPOE , Kablonet , MetroEth , GHDSL vs vs ). Ağ geçitleri istenildiği kadar artırılıp azaltılabilir. Ben burada farklı interface ler üzerinden nasıl yapılacağını anlatıyorum fakat daha önce uyguladığım 2 farklı noktada hem giriş hem çıkış için tek interface’i olan ( sadece eth0 ) linux sorunsuz olarak çalışıyor.
- 1. ipforwarding düzgün olarak yapılandırılmalıdır.
sysctl net.ipv4.ip_forward=1
veya
echo “1″ > /proc/sys/net/ipv4/ip_forward
Kalıcı olması için kullanmış olduğunuz linux sürümünde gerekli ayarları yapmayı unutmayınız örneğin /etc/sysctl.conf içerisinde.
- 2. rt_tables
Multiple Routing table için gerekli tabloları oluşturalım :
root@linux:~# echo “10 gw1″ >> /etc/iproute2/rt_tables
root@linux:~# echo “20 gw2″ >> /etc/iproute2/rt_tables
root@linux:~# echo “30 gw3″ >> /etc/iproute2/rt_tables
root@linux:~# echo “40 gw4″ >> /etc/iproute2/rt_tables
root@linux:~# echo “50 gw5″ >> /etc/iproute2/rt_tables
- 3. Konfigurasyon alias’larını oluşturalım
# Diğer ağ geçitleri için gerekli ayarları tek tek açıklamadan yazıyorum gw1 için
#yaptığımız örneğin hepsi için yeterli açıklamayı yapacağına inanıyorum.
- 4. Routing tablolarına ağ geçitlerimizi girelim.
- 5. FWMARK ile işaretlenmiş paketleri ilgili tablolara gönderelim.
- 6. Paketleri ait oldukları routing tablolarına gönderebilmek için gerekli rule’ları girelim.
- 7. Routing cache de daha önce kalan girdileri temizleyelim.
- 8. RoundRobbin ile gelen paketleri ağ geçitlerine dağıtalım.
- 9 . NAT ( Masquerade )
- 10. Policy Routing
iptables -A PREROUTING -t mangle -i $lint -p tcp –dport 443 -j MARK –set-mark $gw1mark
Comments
Comment from alper
Time 01/23/2010 at 10:42 pm
aslında çok basit yapacağın işlem, kablo netten ip satin almadıysan NATD yapıcaksın yada linuxdaki ismiyle , MASQUERADE, dediğin şekilde uzun uzun anlatmamın burda yolu yok dhcp server gibi bir konuda yazmayı düşünmüyorum ama en kısa yoluyla centos üzerine eth0 kablo net e bağlı eth1 ise iç networkune bakan interface in olduğunu düşünelim.
“iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE” komutunu veriyorsun kablonet router da anlattığım gibi ipforwarding enable ediyorsun. bukadar. sonra içerdeki istemcilere elle ip adresi ver ağ geçidi olarak linux iç network ip adresi , DNS olarak kablonet dns lerini veriyorsun. internete sorunsuz çıkman lazım dhcp server ve dns server ile internete çıktığından emin olduktan sonra uğraşman daha mantıklı sorunları adım adım çözersin. Bu gibi sorunlar için irc.freenode.net de kolaylıkla yardım bulabilirsin.
Comment from Kubilay
Time 01/28/2010 at 1:04 pm
Çok teşekkür ederim. Şu an çalışıyor.
Bir ricam daha var sizden. O da , kablonete göre bana örnek bir dhcpd.conf dosyası yazabilir misiniz ?
Burada da takıldığım ufak bir nokta varda.
Şimdiden teşekkür ederim.,
Saygılarımla.
Comment from admin
Time 01/28/2010 at 7:32 pm
dhcp server’in internet bağlantı şekliyle alakası yoktur
Comment from Kubilay
Time 01/31/2010 at 1:58 am
Tesekkür ederim .
Comment from Ali Osman Kurt
Time 02/01/2011 at 5:58 pm
Merhaba,
Anlaşılır bir anlatım ve çok uzatmadan yeterli detayla anlattığınız bu konu için tebrik ederim.
Bu yapıda modemlerden birisi bozulduğunda kullanıcıların internet bağlantısının devam edebilmesi için ne lazım gelir?
Comment from YUNUS DESTANCI
Time 02/02/2011 at 5:20 pm
Merhaba Alper bey, konu ile tam ilgisi varmı tam emin değilim ama sise şöyle bir şey soracağım.Benim pfsense firewall cihazımda 2 adet internet 1 adet lan bacağım var. benim lan bacağımın ip adresi 192.168.1.0/24 şeklinde. ben bu ip adreslerinden bazı ip adreslerini 1 nci modemden, bazı ip adreslerini 2 nci modemden internete çıkarmak istiyorum. bana bu konu hakkında yardımcı olursanız sevinirim.şimdiden çok saolun.
Comment from admin
Time 02/03/2011 at 8:21 am
Script yazarak , Modemlerin durumlarını kontrol edip , Çalışmayan hattı devreden çıkarmanız gerekli
Comment from admin
Time 02/03/2011 at 8:23 am
pass in on $int_if route-to \ satırından önce direk nat kurali her ip için ayrı ayrı oluşturursan o ip adresleri hep o modemden çıkarlar. Pek tercih edilen bir şey değildir
Comment from Kubilay
Time 01/22/2010 at 11:50 am
merhaba
Benim için çok önemli bir soruyu size soracağım. Umarım siz yardımcı olabilr siniz.,
Öncelikle elimdeki cihazları sayayım,
3 adet pc (bir tanesi centos 5.4 çift etherneti var, diğeri şahsi kullanım, extradanda notebook var)
1 adet switch
1 adet wireless dağıtıcı (kablomodeme şu an direk bağlı)
1 adet baş belası kablo modem (zurnanın zırt dediği ve herkesin çözemediği konuda bu)
Evimde 3 bilgisayar 2 ip kamera var ve kablonet ile onlara ip veremiyorum. Nedeni ise sizinde bildiğiniz gibi sadece 2 adet ip adresi veriyhorlar ve dış ip olduğu için router sız dağıtamıyorsunuz. bendede router yok. Centos ile router denemelerim oldu fakat başarılı olmadım. Bir yerde “şu şu şöyle şu iş içinde şunu araştırın, yada şu şöyle geri kalanınıda siz araştırın” gibi yazılar var. tamam araştırdım çok eğlendim ama bunları bir türlü birleştiremiyorum.
Sizden ricam lütfen Dhcp kurulumundan başlayıp ip maskelemeye kadar ama lütfen kablo neti düşünerek anlatabilir misiniz. Çevrede bunu ihtiyacı olan okadar çok insan tanıyorumki.
Şimdiden çok teşekkür ediytorum.