Cuma, Nisan 14, 2006

Bir pişti de bizden :)

Bu sefer de Mustafa'yla ben "Linux dünyasında pek güncel olan" pişti modasına uymuşuz. Gerçi bizimki, karo-maça piştisi gibi olmuş ama... :D

Salı, Nisan 04, 2006

Ethernet bonding

Ethernet bonding olayına takmıştım bir süredir. Daha doğrusu, özgür günlerin ardından yazmıştım ya, o zamandan beri. Fakat bir türlü fırsat bulupta uğraşamadım. Bir de üstüne, 2. bir ethernet kartı bulamayınca bekledi de bekledi. Ama aklıma evdeki bilgisayarımda yatan ethernet kartı gelince de, bir deneme yapmanın zamanı geldi dedim. Biraz google, biraz mail listesi derken 2 tane ethernetim kendini tek sanmaya başladı :D
Kısaca tanımdan başlamalı: Ethernet bonding Nedir?: Ethernet bonding, 2 tane ethernet kartının tek ethernet kartı gibi çalışmasıdır. 2 ethernet, 2 kablo, 1 IP. Genellikle temizlik yapan teyzelerin, amcaların kabloları çıkarması yüzünden hattın kopmaması için. (Bu zaten olmazsa olmaz oldu artık. Her masa silmenin ardından, kabloyu kontrol etmem gerekiyor. Hani RJ45'in kilit özelliği olmasına rağmen o kablo nasıl oluyor da çıkıyor anlamıyorum. Kasıtlı mı yoksa :D )
Bonding denemesini RHEL 3 bir linux ile yaptım ama Debian'da da kontrol ettim bazı kısımları.
Ethernet bonding (E.B. diyeyim bundan sonra) kullanabilmek için, 2.4.12 veya üstü bir çekirdek olmalı. (Benim RHEL makinam; 2.4.21-15.EL'ymiş...) Genelde dağıtımlarla bonding driver module olarak geliyormuş ama olur da module değilse derlerken "Network Device Support" altında "Bonding Driver Support" seçilerek açılabiliyormuş. (İhtiyacım olmadı. Ayrıca 2.6.8-2-386 Debian çekirdeğim de açıkmış) Bu modulü kullanan araç ise "ifenslave". Bu da öntanımlı gelmiş.
Zaten bundan sonrası, dosyaları düzenlemek. /etc/modules.conf en altına şu satır ekleniyor;
alias bond0 bonding
(buraya ayrıca varsa modül options'ı eklemek gerekli)
Burada bond0 diye sanal bir aygıt (device) tanımladık. Artık bağlantımızı bu bond0 sağlayacak. Şimdi bu aygıtın ayarlarına sıra geldi;
Debian'da tüm bu ayarları (/etc/network/interfaces dosyası içine yazmalıyız sanırım denemedim henüz ama deneyip not düşerim)
RHEL:
/etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
ONBOOT=yes
BROADCAST=160.75.67.255
NETWORK=160.75.67.0
NETMASK=255.255.255.0
IPADDR=160.75.67.182
GATEWAY=160.75.67.254
USERCTL=no

/etc/sysconfig/network-scripts/ifcfg-eth0
# Intel Corp.|82562EZ 10/100 Ethernet Controller
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no

/etc/sysconfig/network-scripts/ifcfg-eth1
# Intel Corp.|82557/8/9 [Ethernet Pro 100]
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no

Sıra geldi restart :P (Windows kullanıcıları bu aşamada restart yapmalıdır :P)
#service network restart

Tabi bunu yaparken, bana kafayı yediren küçücük bir hatam oldu. bond0'da GATEWAY tanımlamadığım için, arkadaş iç networkte çalışıyor ama dışarı çıkamıyordu. Okuduğum dökümanlarda da yazmadığından (hadi şey atmayım benim de gözümden kaçmış olabilir.) bu satırı unutmuşum ve eklemek de aklıma gelmedi. Son aşamada artık mail listesi imdadıma yetişti. Hızlı bir yanıtla Devrim Gündüz hatırlattı gateway'i. Maille ettim ama yine, teşekkürler... :)

En çok faydalandığım kaynak :)
http://www.doganzorlu.com/progress/modules.php?name=Content&pa=showpage&pid=18