Programlar:Bridge-Utilities

Pardus-Linux.org | Wiki sitesinden

Git ve: kullan, ara

Bridge - Köprü


Bir köprü iki eternet parçasını bağımsız bir protokol aracılığı ile bağlamaktır. Paketler IP adresleri yerine(router gibi) Katman 2 deki sevk bittiğinden beridir, bütün protokoller açıkça köprüden geçebilirler.

Linux bridge kodları ANSI/IEEE 802.1d standardının alt kümesini tamamlar [1]. Orijinal linux köprüleme ilk Linux 2.2de yapıldı, sonra tekrar Lennert Buytenhek tarafından yazıldı. köprülemek için kodlar kenel 2.4 ve 2.6 serilerinde kernel ile bütünleşti.

Konu başlıkları

Köprüleme ve Güvenlik duvarı

Bir Linux köprüsü saf donanımsal köprülemeden daha iyidir, çünkü ayrıca filtreleme ve trafiği şekillendirme imkanınızda var. Köprüleme ve güvenlik duvarı kombinasyonu arkadaşlık projesi ebtables ile sağlanmıştır.

Durum

Çekirdek 2.4 ve 2.6'nın parçası olarak kod güncellendi, kernel.org 'da bulunabilir.

Olası gelecek geliştirmeleri:

  • belge STP filtreleme
  • Netlink bağdaştırıcısı ile köprüleri kontrol etmek (prototik sürüm 2.6.18'de)
  • STP kullanıcı alanında olmalı
  • RSTP ve diğer 802.1d STP uzantıları desteği

İndirmek

Köprüleme şuan ki tüm büyük dağıtımlarda 2.4 (ve 2.6) çekirdeklerde desteklenmektedir. Gerekli yönetici araçları çoğu dağıtımda bridge-utils paketinde yer alır. Paket sürümlerinin bakımı indirme sayfasında yapılmaktadır.

kernel.org 'dan çekirdeğin son sürümünü indirip kendi güncel sürümünüzüde yapabilirsiniz ve bridge-utils GIT deposundaki kaynak koddan araçları yenden yapabilirsiniz.

$ git clone git://git.kernel.org/pub/scm/linux/kernel/git/shemminger/bridge-utils.git
$ cd bridge-utils
$ autoconf
$ ./configure

Çekirdeği yapılandırmak

Çekirdekte köprülemeyi etkin hale getirmelisiniz. Ağ -> 802.1d Ethernet köprüleme'yi evet yada module şeklinde ayarlayın.

El ile Yapılandırma

Ağ kartları

Başlamadan önce ağ kartlarının ayarlarının yapılmış olduğundan ve düzgün çalıştığından emin olun. IP adresini ayarlamayın, ve başlangıç betiklerinin eternet bağdaştırıcılarında da DHCP'yi çalıştırmasına izin vermeyin. IP adresi köprü yapılandırıldıktan sonra ayarlanmalıdır.

ifconfig komutu her iki ağ kartınıda göstermelidir, onlar Aşağı(DOWN) olmalıdır.

Modül Yüklemek

Çoğu durumda, köprü kodları modül olarak yapılmıştır. Eğer modül doğru yapılandırılıp, kurulmuşsa, ilk brctl komutu ile otomatikman yüklenecektir.

Eğer köprü araçları doğru yapılmış ve çekirdek ve köprü modülleri TAMAM (OK) ise, bir brctl sonucu bir küçük komut özeti gösterir.

# brctl
# commands:
       addbr           <bridge>                köprü ekle
       delbr           <bridge>                köprü sil
       addif           <bridge> <device>       köprüye bağdaştırıcı ekle
       delif           <bridge> <device>       köprüden bağdaştırıcı sil
       setageing       <bridge> <time>         eskime süresini ayarla
       setbridgeprio   <bridge> <prio>         köprü önceliğini ayarla 
       setfd           <bridge> <time>         iletme gecikmesini ayarla 
       sethello        <bridge> <time>         Selamlama zamanını ayarla 
       setmaxage       <bridge> <time>         En fazla mesaj ömrünü ayarla 
       setpathcost     <bridge> <port> <cost>  Yol bedelini ayarla 
       setportprio     <bridge> <port> <prio>  geçit önceliğini ayarla 
       show                                    Köprüleri listele 
       showmacs        <bridge>                mac adreslerini listele
       showstp         <bridge>                köprü stp bilgisini göster 
       stp             <bridge> <state>        stp aç/kapa (on/off)

Köprü aygıtı oluşturmak

komut

brctl addbr "bridgename"

bridgename isimli mantıksal bir köprü örneği oluşturur. Köprü yapmak için en azından bir mantıksal örneğe ihtiyacınız var. Mantıksal köprüyü köprülemede yer tutan bağdaştırıcıların içeriğini taşır. Her köprü örneği yeni bir ağ bağdaştırıcısını temsil eder.

ilgili kapatma komutu ise:

brctl delbr bridgename

Köprüye aygıtlar eklemek

Komut

brctl addif bridgename device

"bridgename" köprüsünün parçası olarak ağ aygıtı ekler. Bütün aygıtlar büyük bir ağ gibi köprü eyleminde içerilir. Bir aygıtı bir çok köprüye eklemek veya bir köprü aygıtına köprü eklemek mümkün değildir , çünkü hiç bir etki yaratmayacaktır! Köprüye bir aygıt eklendiğinde iletmeye başlamadan önce parçanın eternet adreslerini öğrenmek kısa bir süre alır.

Köprüden bir bağdaştırıcıyı ayırmak için gerekli komut:

brctl delif  bridgename device

Köprüdeki aygıtları göstermek

brctl show komutu tüm köprü durumu hakkında özet verir, çalışma örneği aşağıdaki gibidir:

# brctl addbr br549
# brctl addif br549 eth0
# brctl addif br549 eth1
# brctl show
bridge name     bridge id               STP enabled     interfaces
br549           8000.00004c9f0bd2       no              eth0
                                                        eth1

Bir köprü bir kere brctl showmacsçalıştırdığında iletilen trafik ağ adresleri hakkında bilgi gösterecektir (ve köprünün kendi hakkında)

# brctl showmacs br549
port no mac addr                is local?       ageing timer
  1     00:00:4c:9f:0b:ae       no                17.84
  1     00:00:4c:9f:0b:d2       yes                0.00
  2     00:00:4c:9f:0b:d3       yes                0.00
  1     00:02:55:1a:35:09       no                53.84
  1     00:02:55:1a:82:87       no                11.53
 ...

Eskime süresi saniye sayısıdır Bir MAC adresinden bir paket aldığınızda bu MAC adresi iletme veri tabanında tutulacaktır. İLletme veri tabanındaki girişler sonsuzadek çevremizde kalmaması için düzenli olarak zaman aşımına uğrar. Normal olarak bu parametreyi değiştirmeye gerek yoktur, fakat bununla değiştirilebilir ( zaman saniye birimindedir).

 # brctl setageing bridgename time

Eskime süresini sıfır yapmak bütün girişleri kalıcı yapar.

Kapsayan Ağaç Protokolü (Spanning Tree Protocol)

Eğer çoklu veya gereğinden fazla köprü varsa, ele alırken çoklu hops(anlamını bulamadım)'dan ve cyclic routes'dan kaçınmak için kapsayan Ağaç kontrolünü etkinleştirmelisiniz (STP).

# brctl stp br549 on

STP parameterelerini şöyle görebilirsiniz:

 # brctl showstp br549
 br549
  bridge id              8000.00004c9f0bd2
  designated root        0000.000480295a00
  root port                 1                    path cost                104
  max age                  20.00                 bridge max age           200.00
  hello time                2.00                 bridge hello time         20.00
  forward delay           150.00                 bridge forward delay      15.00
  ageing time             300.00                 gc interval                0.00
  hello timer               0.00                 tcn timer                  0.00
  topology change timer     0.00                 gc timer                   0.33
  flags
 
 eth0 (1)
  port id                8001                    state                   forwarding
  designated root        0000.000480295a00       path cost                100
  designated bridge      001e.00048026b901       message age timer         17.84
  designated port        80c1                    forward delay timer        0.00
  designated cost           4                    hold timer                 0.00
  flags
 
 eth1 (2)
  port id                8002                    state                   disabled
  designated root        8000.00004c9f0bd2       path cost                100
  designated bridge      8000.00004c9f0bd2       message age timer          0.00
  designated port        8002                    forward delay timer        0.00
  designated cost           0                    hold timer                 0.00
  flags

STP ayarlamak

STP hakkında ayarlanabilir bir miktar parametre vardır. Kod bağlantının hızını ve diğer parametreleri otomatik olarak belirler, yani değiştirmeye ihtiyaç yoktur.

Köprü Önceliği

Her köprünün göreceli önceliği ve maliyeti vardır. STP kodunda her bağdaştırıcı bir bağlantı kapısı (sayı) ile ilişkilendirilmiştir. Her birinin önceliği ve maliyeti vardır, bu hangisinin paketi iletmek için en kısa yol olduğuna karar vermek için kullanılır. diğer yol kapalı olduğunda en düşük maliyetli yol kullanılır. Eğer çoklu köprüleriniz ve bağdaştırıcılarınız varsa en iyi performansı elde etmek için öncelikleri belirlemelisiniz.

 # brctl setbridgeprio bridgename priority

Kök köprü olarak en düşük maliyetli köprü seçilecektir. kapsayan ağaçta kök köprü merkezi köprüdür.

Yol Önceliği ve Maliyeti

Bir köprüde her bağdaştırıcının hızı farklıdır ve bu değer hangi bağlantının kullannılacağına karar verilirken kullanılır. Hızlı bağdaştırıcıların düşük maliyeti olmalı.

# brctl setpathcost bridge port cost

Aynı maliyetle çoklu kapı(port)sı olanlar önceliğe sahiptirpriority

İletim gecikmesi(Forwarding delay)

iletme gecikme zamanı iletme durumuna girmeden dinleme ve öğrenme durumunda harcanan zamandır. Bu gecikmenin anlamı yeni bir köprü katılmadan önce meşgulmüş gibi görünür, meşgul ağ olur.

#  brctl setfd bridgename time

Selamlama Zamanı(Hello time)

Düzenli olarak, bir selamlama paketi kök köprüsüne ve belirlenen köprülere yollanır. Selamlaşma paketleri bütün köprülenmiş yerel ağ hakkındaki topoloji hakkında iletişim için kullanılır.

# brctl sethello bridgename time

Eskime Zamanı(Max age)

Eğer kapsayan ağaçtaki farklı bir köprü uzun süre selamlama paketi yollamazsa, ölü olarak kabul edilir. Bu sürenin dolması şöyle ayarlanır:

# brctl maxage  bridgename time

Örnek Ayarlama

Bir köprünün örnek ayarlaması şöyle yapılır:

 # ifconfig eth0 0.0.0.0
 # ifconfig eth1 0.0.0.0
 # brctl addbr mybridge
 # brctl addif mybridge eth0
 # brctl addif mybridge eth1 
 # ifconfig mybridge up

Bu ayarlar saf bir köprü olarak ev sahipliği yapar, kendisinin ip adresi bulunmaz, böylece TCP/IP yolu ile uzaktan erişilemez (veya hacklenemez).

Alternatif olarak, ağınızda yer tutması için sanal bağdaştırıcı mybridge yapılandırabilirsiniz. Bir bağdaştırıcı gibi davranır (normal ağ kartı gibi). Tam olarak sizin yapılandrdığınız biçimde, önce kmutu şu şekildeyapılır:

# ifconfig mybridge 192.168.100.5 netmask 255.255.255.0

Eğer köprünüzün otomatik olarak IP adresini ADSL modemden DHCP(veya benzer bir yapılandırma) yolu ile yapılandırmasını istiyorsanız, şunu yapın:

 # ifconfig eth0 0.0.0.0
 # ifconfig eth1 0.0.0.0
 # brctl addbr mybridge
 # brctl addif mybridge eth0
 # brctl addif mybridge eth1 
 # dhclient mybridge

Eğer bunu defalarca yaparsanız, bir çok dhclient işlemi ile bitirebilirsiniz. zorla bunları bitirebilirsinizin veya bunun hakkında omshell(1) den bilgi alabilirsiniz

/etc/net İle Yapılandırma

[Etcnet|/etc/net]] 'de biz ilk 2 eternet aygıtını port0 ve port1 'e ayarladık:

 # cat >> /etc/net/iftab
 port0 mac 00:13:46:66:01:5e
 port1 mac 00:13:46:66:01:5f
 ^D
 # mkdir /etc/net/ifaces/port0
 # cat > /etc/net/ifaces/port0/options
 TYPE=eth
 MODULE=via-rhine
 # mkdir /etc/net/ifaces/port1
 # cat > /etc/net/ifaces/port1/options
 TYPE=eth
 MODULE=via-rhine
 ^D

Sonra köprüyü tasvir ettik:

 # mkdir /etc/net/ifaces/mybridge
 # cat > /etc/net/ifaces/mybridge/options
 TYPE=bri
 HOST='port0 port1'
 ^D
 # cat > /etc/net/ifaces/mybridge/brctl
 stp AUTO on
 ^D

Şimdi "ifup mybridge" 'i kullanıp bırakabiliriz. port0 ve port1 otomatik olarak bırakacaktır.

SSS

Bir köprü ne yapar?

Bir köprü farklı ağ bağdaşçıları arasında saydam olarak trafiği geçirir. Bunun düz İnglizcedeki (burda Tütkçe yazsammı) anlamı bir köprü iki veya daha fazla eternet karrtını bağlar ve büyük bir yerel ağ oluşturur.

protocol'den bağımsız mıdır?

Evet. Köprü protokoller hakkında hiç bir şey bilmez, sadece eternet çerçevelerini görür. Şunun gibi, köprüleme işlevi protokolden bağımsızdır, kesinlikle A IPX, NetBEUI, IP, IPv6, vb. gönderirken sorun olmamalı.

Neden bu kod switch(Anahtar)'dan daha iyi?

Lütfen şunu aklınızdan çıkarmayın, bu kod linux kutularını dikkate alan adanmış donanım ile yazılmamıştır. Linux köprüleme kodunun switch'lerin yerini alabileceğini düşünmeyin, ama Linux ağ yeteneklerini genişlettiğinden tercih edin. Bazı durumlarda Linux router adanmış routerdan daha iyidir bazı durumlarda ise bunun tersidir. bazende linux köprü adanmış köprüden daha iyidir, bazende bunun tersidir.

Linux köprüleme kodunun gücü esnekliğinden gelmektedir. Most of the power of the Linux bridging code lies in its flexibility. Linux ile zaten bir sürü acayip şey yapabiliyoruz ( Linux uman routing ve trafik kontrol belgesini okuyup olasılıkları ögrenin), karıştırma içine köprüleme kodu daha fazla filitre uygulayabilir.

Adanmış çözüm yerine, Linux çözümünün en önemli avantajı geniş firewll yetenekleridir. tam işlevsel net filitresini (iptabloları) köprüleme ile birlikte kullanmak mümkündür, bunu çoğu patentliler sunamıyor.

Neden bu kod switch'den kötü?

Bir köprü olarak davranmak için ağ aygıtının ayrımsız modda çalışmasını gerektirir, bu ağdaki bütün trafiği alması anlamına gelir. Gerçekden yoğun bir ağda, bu işlemciden önemli miktarda bant genişliği yiyebilir, hafıza yavaşlaması ve sistem çökmesi olabilir. cevap ayrılmış bir adanmış linux kutusunu köprü olarak kullanın, yada ayrı bir donanımsal switch kullanın.

Köprünün performansı nedir?

Performans ağ kartı ve işlemci tarafından sınırlandırılmıştır. Depaul Universitesinden James Yu Linux köprüleme ve bir Catalyst switch'in karşılaştırma araştırma belgesini yayınlamıştır. Yu-Linux-TSM2004.pdf

Benim köprüm traceroute içinde gösterilmiyor!

Bunun yapılması doğru bulunmuyor. Köprünün işlevi (olması gereken) ağ için tam saydam olmalıdır, Köprünün birleştirdiği ağlar bir büyük ağ gibi görünmelidir. Bu köprünün traceroute'da görünmememsinin nedenidir; paketler alt ağ sınırlarını aşıyormuş gibi hissedilmiyor.

Bunun hakkında daha fazla bilgi için, TCP/IP ağlar hakkında bir kitap okuyun.

Bu Çalışmıyor!

Köprü eklemeye çalıştığımda şunu söylüyor!: "br_add_bridge: bad address"

Kerneliniz eski (2.2 veya daha eski), yada kernelinizin içine Ethernet köprülemeyi yapılandırmayı unuttunuz.

Hiç Trafik Alınamıyor (ARP ve STP hariç)

kernel'inizin ethernet filtresi etkin olabilir(ebtables, bridge-nf, arptables) , ve trafik filtreye takılmakta olabilir. Bunu kapalı konuma getirmenin en kolay yolu go to /proc/sys/net/bridge adresine gidin. bridge-nf-* girişlerinin 1'e ayarlı olup olmadığına bakkın; bu durumda, bunları sıfıra ayarlayın ve tekrar deneyin.

 # cd /proc/sys/net/bridge
 # ls
 bridge-nf-call-arptables  bridge-nf-call-iptables
 bridge-nf-call-ip6tables  bridge-nf-filter-vlan-tagged
 # for f in bridge-nf-*; do echo 0 > $f; done

köprüleme 2.2'de çalışır mı ?

2.2 için temel kernel kodu, şuanki köprüleme kodunu desteklemez. orijinal geliştirilmesi 2.2 üzerindeydi, ve onun için kullanılmış yamalar bulunmaktadır. ama bu yamalar artık daha fazla bakım görmüyor.

RSTP (802.1w) desteği planlanıyor mu?

Evet, gelecekteki 2.6 dağıtımında RSTP desteği bütünleşik olacak. Kod 2.4 sürümü için yapılmıştı ve temizlenmesi gerekli.

Neler köprülenebilir?

Linux köprüleme çok esnektir; LAN'lar, geleneksel eternet aygıtları, veya PPP gibi yalancı aygıtlar, VPN'ler veya VLAN'lar. Aygıtlar hakkındaki tek kısıtlama :

  • Bütün aygıtlar aynı en fazla paket büyüklüğünü paylaşırlar (MTU). Köprü paketleri kırmaz.
  • Aygıtlar eternet gibi görünmeli. örneğin b bit kaynak hedef adres olmalı.
  • Karmaşık işleme desteği. Köprü bütün ağ trafiğini almalıdır, sadece kendi adresi hedef gösterilenleri değil.
  • Kaynak adresi aldatmasına izin verme. Köprü ağa başka bir sunucymuş gibi veri yollayabilmeli.

Köprülemeyi netfilter/iptables ile kombinasyon şeklinde yapabilirmiyim?

Evet. Bunun için çoğu çekirdekte kodlar bulunmaktadır. ebtables projesine bakın.

Token Ring , FDDI, veya Firewire ile birlikte çalışır mı?

Hayır, adreslemesi ve kare boyutları farklı.

Sürekli retransmitting tcn bpdu! mesajı alıyorum

Bunun anlamı Linux köprünüz tekrar Topoloji Değişimi Uyarısı Köprü Protokolü Veri Birimi ( şimdi harflerin ne olduğunu alıyorsunuz :-). Cidden belki yakınında spanning tree protocol (kapsayan ağaç protokolü) (köpsüler bunu konuşur) kurallarını derlemeyen farklı bir switch (veya Linux köprüsü) var .

Her köprülenen yerel ağda, bir 'Ana köprü (master bridge)', ayrıca kök köprü (root bridge) olarakda adlandırılır. Hangi köprünün brctl kanllanmakta olduğunuda bulabilirsiniz.

Köprülenmiş bir yerel ağın topolojisi değiştiğinde (örneğin birisi iki köprü arasında kablo çıkarırsa), bunu belirleyen köprü, kök köprüye topoloji değişimi mesajı yollar. Kök köprü ise selamlama paketinde topoloji değişti bit'i X (X genelde 30 kadardır). Bu yolla, bütün köprüle topoloji değişimini ögrenir, böylece ölçümler alırlar örneğin MAC girişlerinde daha hızlıdır.

Topoloji değişti uyarısını yolladıktan sonra, eğer köprü alınan selamlama paketlerinde topoloji değişti bit'i bulamazsa, (var olması durumunda tpoloji değişti uyarısının onayı olarak görev yapar), topoloji değişti uyarısı kayboldu diye sonlanır. Bundan onu dolayı tekrar iletir.Ancak, bazı köprüler, topoloji değişim bildirimlerini dikkate almamalarına yol açan Kapsayıcı Ağaç Protokollerinin kendinden özerk uygulamalarını yürütürler. Kök köprü olarak bu köprülerden birine sahip seniz, bütün diğer köprüler topoloji değişti uyarısını vermeye devam edecektir. bu türde syslog mesajlarına neden olacaktır.

Yapabileceğiniz bir kaç şey var:

  • Hangi köprünün kök köprü olduğunu bulun, yerleşim yerini bulun, ve hangi internet çalıştıran yazımını çalıştırdığını bulun. Lütfen bu bilgiyi eposta listesine rapor edin (yada doğrudan bana), böyle bir kara liste tutabilirim.
  • Linux köprüsünün kök köprü olması için zorla. şuanki kök köprünüzün önceliğine bakın, ve brctl 'setbridgeprio' komutunu kullanarak linux köprüsünün önceliğini 1'e düşürün ( en düşük önceliğe sahip köprü her zaman kök köprü olur. )
  • Bütün linux köprünüzde kapsayan ağaç protokolünü kapatın. Bu durumda, köprüleme döngülerinini izleyin! Eğer topolojinizde döngüler var ise

ve eğer kapsayan ağaç protokolünde köprü yoksa, önünüze kargaşa çıkacaktır, paketler sonsuzadek ötelenektir. Bunu kesinlikle tapmayın(TM).

Bu benim sıradan Eternet kartınla çalışmıyor!

Ne yazık ki, bazı ağ kartlarının sürücüleri hatalı yüklerken çöküyor. durum geliştiriliyor, güncel çekirdeğe ve ağ sürücüsüne sahip olmak yardımcı olabilir. Ayrıca başka bir marka ile değiş tokuşu deneyebilirsiniz.

Lütfen tüm problemleri Köprü posta listesine rapor edin bridge@osdl.org . Eğer network kartınız çalışmıyor ise (hatta köprü olmadan bile) o zaman linux ağ posta listesini deneyin linux-net@vger.kernel.org .

Benim Kablosuz kartımla çalışmıyor!

Bu bilinen bir sorun, ve bu köprü kodundan kaynaklanmıyor. çoğu kablosuz kart kaynak adresin spoof(taklit edilmesi)ne izin vermiyor. bu bazı çip takımlarında olan donanım yazlımından olan bir kısıtlama sorunu. köprü posta listelerinde biraz bilgi bulabilirsiniz.

Herhangi biri hiç bir şey için izin vermemesine ragmen MAC adresi için Wavelan çevresinden dolaşmanın bir yolunu buldumu? ( Has anyone found a way to get around Wavelan not allowing anything but its own MAC address?) (Michael Renzmann için cevaplayın (mrenzmann at compulan.de))

Bilgisayar kullanıcılarının %99'u bundan kurtulmanın bir yolunu asla bulamayacak. Bu işlev için özel bir donanımsal yazılım gerekmekte. Bu donanım yazılımı her hangi bir WaveLAN kartının RAM'ine yüklenebilmeli, böylece köprüleme işlevini yapabilmeli. bağdaştıcı için halka açık bir belge bulunmuyor. bunun tek yolu kartın tüm işlevlerini kontrol eden ve kartın RAM'ine ulaşımı olan tam sürüm hcf kütüphanesine sahip olmaktır. bu tam sürüm Lucent için onlar finansal bir kazanç olduğunu bilmeleri gerekli, ve NDA üzerinde imzaları olacak. Lucent bu klonudaki fikrini değiştirmeden, bu yazılım parçasına ulaşamayacağız. (Hiç şüphem yok bu asla olmayacak).

Eğer acilen köprüleme yapabilen bir kablosuz ağ kartına ihtiyacınız varsa, kartında prism çipsetini taşıyanları tercih edin ( Harris Intersil tarafından üretilmiştir). bu kartlar için gerekli sürücüler şu adrestedir www.linux-wlan.com (Absoval 'dan bir sitedir), ve linux için halka açık bir yükleme aracı ve donanım yazılımı bulunduğu hakkında bir posta aldım. Eğer bir ulaşım noktası (access point) ek özelliklerine ihtiyacınız varsa, Absoval ile görüşün.

Ben Hala Anlamadım!!

kablosuz (802.11)'e tam köprüleme yapmak için WDS desteği gerekli. Şu anki yürütme bunu yerine getirmiyor.

Bazı kablosuz sürücüleri ile sınırlı kablosuz Eternet işlevleri yapmak mümkün. Farklı yollayıcı adresi ve kaynak adrelerini destekleyen aygıt gerekli. Bu WDS 'nin yaptığı şeydir.

Bunun çalışmasının çeşitli yolları var ancak, onun kipleri, çerçeve başlıları tam açık değil ve 802.11 anlaşılmadan doğru alınamayacaktı.

Ben şu hatayı alıyorum 'too much work in interrupt' (çok fazla iş kesintiye uğradı)

Bunun neden ağ kartı çok fazla paket alıyor. deneyebileceğizniz bir kaç şey var. Birinci olarak, sürücüyü NAPI desteği ile yapın ( eğer bu öntanımlı değil ise). NAPI anlamı sürücü, alma işlemini düşük seviye kesintiden değil, IRQ yazılımından yapacaktır.

Eğer sürücünüz NAPI'yi detseklemiyorsa, sürücünün kesintide yapacağı iş sayısını artırabilirsiniz. 3c59x için bu max_interrupt_work seçeneği ile yapılmıştır (yani /etc/modules.conf dosyasına şunun gibi bir şey ekleyin 'options 3c59x max_interrupt_work=10000' ), diğer kartların benzer seçenekleri vardır.

DHCP işi bir köprünün üzerinden/içinden(over/through),çalışacak ?

Köprü DHCP trafiğini (yayınları) iletecek ve cevaplayacaktır. Yarıca siz DHCP'yi köprünün yalancı bağdaştırıcısı ile yerel IP adresine ayarlayabilirsiniz.

Ortak bir hata ise köprü iletme gecikmesi ayarını 30 saniye yapmak. Bir bağdaştırıcı köprüye katıldıktan ilk 30 saniye sonra, hiç bir şey yollamayacaktır. Bunun nedeni eğer köprü karmaşık bir topoloji kullanıyorsa, döngüler yapmamak için , yeni köprüleri keşfetmeli. bu anında kapsayan ağaç protokolünün(Rapid Spanning Tree Protocol) (RSTP) oluşturulma nedenidir.

Eğer köprü yalnız kullanılıyorsa ( yanında hiç bir köprü yoksa) köprüye bir bağdaştırıcı eklemeden önce, iletim gecikmesini kapatmak ( sıfıra ayarlamak) güvenlidir. Sonra DHCP alıcısını çalıştırabilirsiniz.

 # brctl setfd br0 0
 # brctl addif br0 eth0
 # dhclient eth0

Tercüme Eden

Çağatay Oltulu

İlgili bağlantılar

Kaynak: http://linux-net.osdl.org/index.php/Bridge