Router paketi nereye yönlendireceğini nasıl biliyor?


68

Yerel adresleri olan birçok bilgisayar (192.168.0. #) Bir yönlendiriciye bağlıysa ve her bilgisayar bir web tarayıcısı açar ve HTTP üzerinden bir sayfa isterse, bu TCP: 80 paketleri gönderildiğinde, yönlendirici yerel adresiyle birlikte değiştirir. yönlendiricinin statik IP'si (ör. IP verilen Sağlayıcı), böylece sunucu uygun adrese cevap verebilir.

Ancak, yönlendirici HTTP hangi iletiyi yanıtlayacağını nasıl bilmektedir, çünkü TCP başlığı yerel IP adresini içermez (öyle mi?) Ve tüm bilgisayarlar 80 numaralı bağlantı noktasını kullanıyor mu?

Bunun MAC adresleriyle bir ilgisi var mı?

Bu tam olarak nasıl çalışıyor?

Yanıtlar:


78

Çoğu ev yönlendiricisi PAT adında özel bir NAT kullanır.

Ayrıca NAPT veya IP Maskeleme olarak adlandırıldığını göreceksiniz. İkinci terimlerin üçü de genel kullanımda aynı şeyi ifade eder. (Kısaltmalar - Ağ Adresi Çevirisi / Bağlantı Noktası Adresi Çevirisi / Ağ Adresi Bağlantı Noktası Çevirisi)

Paket dahili makinenizden çıktığında, kaynak adres bildiğiniz gibi yeniden yazılır. Kaynak bağlantı noktası da genellikle yüksek bir sayıya değiştirilir ve yönlendirici, bir adres çeviri tablosunu tutar.

Örneğin, www.google.com adresine giden bir müşteri makineniz olduğunu varsayalım. Bilgisayarınız (örn. 192.168.1.100) bu adrese bakar ve rastgele bir kaynak portu kullanarak dahili IP adresinizden 80. portta 72.14.204.147 ile TCP bağlantısı kurar.

Bilgisayarınız için bağlantı şöyle görünür:

192.168.1.100:37641   <-->  72.14.204.147:80

Bilgisayarınız paketi yönlendiriciye gönderir, bu da yeni bir rasgele yüksek bağlantı noktası seçer ve paketi yeniden yazar. Her giden bağlantı yönlendiricideki kendi bağlantı noktasını alır. Yönlendirici daha sonra paketi bağlantı tablosuna ekledikten sonra ISS'nize iletir:

PrivateIP        PrivatePort   PublicIP      PublicPort    Remote          RemotePort
-------------    ----------    -----------   -----------   ----------      -----------
192.168.1.100    37641         *10.6.23.5    59273         72.14.204.147   80

* Örneğin, 10 ile başlayan bir adres kullandım, ancak bunlar halka açık değil. Tablo ayrıca biraz fazla basitleştirilmiştir.

Google'a gitmek için bağlantı şöyle görünür:

10.6.23.5:59273   <-->  72.14.204.147:80

Google, 59273 numaralı bağlantı noktasında 10.6.23.5’e yanıt gönderir. Yönlendiriciniz tablodaki bilgileri arar ve paketi 192.168.1.100:37641’e iletir.


3
Özetlemek gerekirse, Router yerel ağın dışından nelerin ağın içindekilere gittiğini hatırlamak için port numaralarını kullanır. Ancak, bu www.google.comilk isteği göndermezsem beni nasıl bulacağını açıklamaz . Başka bir deyişle, yönlendirici aracılığıyla ilk olarak bir istek gönderdiğimde iletiler yalnızca yönlendiriciden bana ulaşabilir
CodyBugstein

2
@Imray google.com (veya İnternet'teki başka herhangi bir şey), bilgisayarınız isteği başlatmamışsa bilgisayarınızı bulamaz. Bu yüzden yönlendiriciye sahip olmak çok fazla güvenlik sağlar.
Jason,

6
@ Jason Bu tehlikeli bir efsane. Güvenlik duvarının olması güvenlik ekler. Tipik bir SoHo yönlendiricinin işi, işleri durdurmak için değil işleri yürütmek içindir. Se burada daha fazla bilgi için.
David Schwartz

1
@Jason Yorumunuzu silmemek daha iyi, okumak için değersiz bir tartışma olurdu, okumak mümkün olmaz.
barlop

2
Güzel bir örnek, ancak bu tüm yüksek sayıdaki bağlantı noktalarının yönlendiricilerimizde her zaman açık olduğu anlamına mı geliyor?
jiggunjer

1

Yerel ağ ile internetin geri kalanı arasındaki yönlendiriciler, NAT adı verilen bir teknik kullanır.

Basit kuzeninin Basic NAT eksiklikleri hakkında bir kelime ile NAPT hakkında sadece TCP / IP Illustrated Volume 1'den bir alıntı:

Temel NAT, yalnızca IP adreslerinin yeniden yazılmasını sağlar. Temel olarak, özel bir adres, genellikle bir havuzdan veya bir ISS tarafından sağlanan genel adreslerden oluşan bir genel adres olarak yeniden yazılır. Bu NAT türü en popüler değildir, çünkü IP adreslerine olan ihtiyacı önemli ölçüde azaltmaya yardımcı olmaz - küresel olarak yönlendirilebilir adreslerin sayısı, Internet'e aynı anda erişmek isteyen dahili ana bilgisayarların sayısına eşit veya fazla olmalıdır. Çok daha popüler bir yaklaşım olan NAPT, NAT'ın özel tarafında hangi konağın belirli bir paket ile ilişkili olduğunu ayırt etmek için aktarım katmanı tanımlayıcılarını (yani, TCP ve UDP portları, ICMP için sorgu tanımlayıcıları) kullanmayı içerir (bkz. Şekil 7- 4). Bu, çok sayıda dahili ana bilgisayara izin verir (yani, (binlerce kişi) Internet'e aynı anda yalnızca birkaç tane olmak üzere sınırlı sayıda genel adres kullanarak eşzamanlı olarak erişmek için. Farklı bir bağlamda önemli olmadıkça, normal olarak NAT terimini hem geleneksel NAT hem de NAPT'yi dahil etmek için kullanacağız.

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.