Anahtar bir anahtar tablosunu nasıl öğrenir?


22

Anahtar tablosunun boş olduğunu söyle. Eğer A bilgisayarı B bilgisayarına yönlendirilmiş bir çerçeve gönderirse, anahtar B'nin mac adresini kimin aldığını soracak şekilde yayınlanacaktır. Anahtarın yanlışlıkla B bilgisayarının B bilgisayar olduğunu düşünmemesi için mekanizma nedir? A bilgisayarının istediği hedefin mac adresini hatırlıyor mu ve C A'yı almaya çalıştığında da kendi mac adresini de içeriyor ve anahtarın A bilgisayarının istediği hedefle aynı olmadığını görüyor mu?

Temel olarak, bir anahtar ana bilgisayar A tarafından gönderilen bir istek için bilinmeyen bir mac adresi için taşdığında, hedefin ana bilgisayar A'ya yanıt verdiğini veya başka bir ana bilgisayarın sadece A'ya iletildiğini nasıl anlar?


Herhangi bir cevap size yardımcı oldu mu? Eğer öyleyse, cevabı kabul etmelisin ki soru sonsuza kadar ortaya çıkmayacak, bir cevap arayacaksın. Alternatif olarak, kendi cevabınızı verebilir ve kabul edebilirsiniz.
Ron Maupin

Yanıtlar:


34

Katman 2 anahtarları (köprüler), bir MAC adresi ve port numarası içeren bir MAC adres tablosuna sahiptir. Anahtarlar, paketleri iletmek için bu basit algoritmayı takip eder:

  1. Bir kare alındığında, anahtar SOURCE MAC adresini MAC adres tablosuyla karşılaştırır. SOURCE bilinmiyorsa, anahtar tabloya paketin alındığı port numarası ile birlikte eklenir. Bu sayede, anahtar her bir verici cihazın MAC adresini ve portunu öğrenir.

  2. Anahtar daha sonra HEDEF MAC adresini tabloyla karşılaştırır. Bir giriş varsa, anahtar çerçeveyi ilgili porttan dışarı doğru yönlendirir. Giriş yoksa, anahtar, paketi çerçevenin alındığı bağlantı noktası dışında tüm bağlantı noktalarına gönderir (Taşma).

Anahtarın, cihazdan bir çerçeve alana kadar MAC hedefini öğrenemediğini unutmayın.


Daha iyi açıkladığınız için @Ron teşekkür ederiz. Şimdi sel olduğunu biliyorum. Ayrıca en.wikipedia.org/wiki/Unicast_flood
Damon

Bu sorduğum soruyu cevaplamadı.
Celeritas

5
@Celeritas Sorunuzdaki varsayımınız yanlış. Anahtar kimin mac adresi olduğunu "sormuyor". Hedef MAC'i bilmiyorsa, çerçeveyi tüm bağlantı noktalarından siler. Yalnızca bir çerçeve aldığında kaynak MAC'leri öğrenir. Yani sorunuza göre, anahtar B ve C arasındaki farkı söyleyebilir çünkü farklı kaynak MAC adresleri vardır.
Ron Trunk

4
@Celeritas - Anahtar, herhangi bir ana bilgisayarın Ana Bilgisayar A'ya neden bir şey gönderdiğini bilmiyor veya umursamıyor. Bir ana bilgisayarın Ana Bilgisayar A'ya yanıt vermesi veya başka bir ana bilgisayarın Ana Bilgisayar A'ya başka bir şey göndermesi neden önemli olsun? Anahtar yalnızca hedef MAC'in Host A için olmasını önemser (ve MAC adres tablosunda değilse, kaynak MAC'in ne olduğu). Yalnızca Ana Bilgisayar A, alınan çerçevenin, orijinal olarak çerçeve gönderilen ana bilgisayardan gelen bir yanıt olup olmadığını önemser.
Ron Maupin

Ron'un dediği gibi, bu kavram ARP'den ayrı.
Jordan Head

4

Sorunuz, anahtarın iki ana bilgisayar arasındaki iletişim / konuşmaya dahil olduğunu veya farkında olduğunu varsayar (Bu, A ile B arasında mı yoksa A ile C arasında mı?). Anahtar, iki ana bilgisayar arasındaki iletişim / sohbete dahil değildir. Belirli bir MAC adresi için hangi portun hangi port ile iletildiğini (veya anahtarların) hangi port ile ilişkili olduğunu (veya hangi portun MAC adresi ile ilişkili olduğunu öğrendikten sonra) ne olursa olsun, basitçe bilir (veya öğrenir). kaynak B veya C veya başka bir anahtar portuna bağlı herhangi bir başka ana bilgisayardır.

Katman 2'deki işi değiştirir. Oturum yönetimi daha yüksek katmanların sorumluluğundadır.


-2

Anahtar tablosu denmez; MAC tablosu. Şimdi MAC masasının boş olduğunu düşünün. A, B'ye bir paket göndermeye çalıştığında; Paket, A ve B MAC adreslerini içerir. Anahtar, MAC tablosundaki A'nın MAC adresini günceller. Şimdi, B'nin bağlandığı bağlantı noktasını bilmediğinden, tüm bağlantı noktalarında ARP paketini yayınlar ve tüm ana bilgisayarların yanıt vermesini bekler.

Şimdi aynı zamanda C A'ya bir paket göndermeye çalışırsa, C'nin MAC adresini bu paketten alır ve MAC tablosuna kaydeder. MAC adresi zaten MAC tablosunda bulunduğundan, hangi portun A'ya bağlı olduğunu bilir. Veri paketlerini hatırla, hem kaynak hem de hedefin MAC adresini içerir. Dolayısıyla B & C'nin MAC adresi farklıdır. Böylece anahtarın kafası karışmaz. Şimdi paketi C'den A'ya getirin (her ikisinin de aynı VLAN'da bulunduğundan).

Paketi A'dan B'ye göndermek için B, anahtarla gönderilen ARP paketine yanıt verene kadar bekler. B'den yanıt aldığında, B tablosundaki B adresini MAC tablosunda günceller. Sonunda paket B'ye iletilir.

Dolayısıyla, veri paketleri (tcp / udp) hem kaynak hem de hedef MAC adresi içerdiğinden, anahtarın kafası karışmaz. Ve anahtarınız, son ana bilgisayar MAC adresinin değişmediği bilinen bir arayüzde bir paket iletmeyecektir. Ana bilgisayarın anahtarla gönderilen ARP yayınına yanıt vermesini beklemek zorundadır.


1
Bu tamamen doğru değil. Katman-3 anahtarı olmadıkça bir anahtar ARP değildir. ARP katman-2 ve katman-3 arasındaki çözmedir ve anahtar katman-3'ü bilmiyor. Anahtar gerçekten de her anahtar portuna bilinmeyen bir varış noktası MAC olan bir çerçeve yayınlamaktadır. Bir ana bilgisayar, kendisine ait olmayan bir MAC hedef çerçevesini yok sayar.
Ron Maupin

1
Ve Ron'un açıklığına ufak bir açıklama ... çoğunlukla sadece terminoloji düzeltmesi. Bir anahtar, özellikle MAC adresinin nerede olduğunu bilmediğinden, genellikle "taşma" olarak adlandırılan her portu (giriş portu hariç) bir paket gönderdiğinde.
Jeff McAdams

@Ron düzeltmeniz için teşekkür ederiz. Bunun katman 3 anahtarı için olduğunu unutmuşum. Ayrıca sel terimini unuttuğumu itiraf etmek gibiydi, bu yüzden katman 3 anahtarları için cevabı yazdım. Jeff söylediğin için teşekkür ederim.
Damon

@Jeff McAdams, Haklısınız, sel, teşekkür ederim. Erken kalktıktan sonra ilk fincan kahvemden önceydi ve dil anlamında yayın demek istedim, ağ anlamında değil.
Ron Maupin

@Damon, bilmediğim şey, her karenin kaynak ve hedef MAC adresini içerdiğidir.
Celeritas
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.