VPN akışında istemci kaynak portu ile sunucu dinleyicisi
Tek bir tüneldeki iki port numarasını karşılaştırın: sunucunun sabit dinleyicisi ve istemcinin kısa ömürlü kaynağı, ayrıca aralarında yönlendiricinin çevirisinin nasıl durduğu.
Aynı konuşmada iki numara görünür ve ikisi de yanlış değildir. Sunucu günlüğü hizmeti sunan dinleyiciyi, dizüstü bilgisayar datagramı gönderen soketi gösterir ve aradaki yönlendirici çıkışta ikincisini yeniden yazabilir. Konuşmanın iki ucunu karşılaştırmak rakamları karşılaştırmaktan daha yararlıdır. Aşağıdaki karşılaştırma dinleyiciyi, istemci soketini ve çevrilmiş kaynağı ayrı tutar, çünkü farklı soruları yanıtlarlar.
Zıt uçları tanımlayan iki numara
Sunucunun yapılandırılmış portu, istemcinin aradığı hedeftir. Politika tarafından sabitlenir, profilde görünür ve sunucu tarafında açık olmalıdır. İstemcinin kaynak portu yerel olarak, genellikle kısa ömürlü aralıktan seçilir ve yanıtın inecek bir yeri olması için vardır. Her yeniden bağlanmada değişebilir ve tasarımda hiçbir şey onun kararlı olmasına bağlı değildir.
Aradaki yönlendirici bu kaynağı kendi 'NAT' eşlemesine yeniden yazabilir. Bu yüzden sunucuda görülen numaranın dizüstü bilgisayarın seçtiği numarayla çoğu zaman hiçbir ilişkisi yoktur.
Kaynak numarası çıkışta nerede değişir
Uydurma bir IPv4 örneği alın: çeviri yapan bir yönlendiricinin arkasında istemci, tek 'UDP' dinleyicisi olan bir sunucu ve ikisinden de geçen tek bir datagram. Tablo, paketi üç gözlem noktasında yeniden oynatmak yerine her ucu ve ona ne olduğunu adlandırır.
| Endpoint | What stays fixed | What changes on reconnect | Who owns it |
|---|---|---|---|
| Server listener | The service port and the address the profile names | Nothing; the listener does not follow the client | The server operator |
| Client socket | The destination it dials | The local source port, chosen per socket | The client, or its operating system |
| Translated source | Usually the public address of the router | The port, and sometimes the address after a network switch | The NAT device or the upstream carrier |
Hedef her satırda sabittir ve yalnızca kaynağın kimliği değişir. UDP NAT gereksinimleri iç adres ile portu dış eşlemeden ayırır ve bu tam olarak ikinci ile üçüncü satır arasındaki farktır. Yönlendirici istemcinin kaynak portunu koruyabilir veya başka bir tane seçebilir; korunması bir uygulamanın varsayması gereken bir şey değildir.
Üç ucu da ana bilgisayarların kendisinden okuyun
Aşağıdaki listeler üç farklı makineden gelir ve birlikte tüm konuşmayı gösterir. Birincisini sunucuda, ikincisini istemcide, üçüncüsünü eşlemenin bulunduğu her yerde çalıştırın. Tek bir günlük satırı hiçbir zaman üçünü birden göstermez.
ss -lunp 'sport = :1194'
ss -unp | grep 1194
conntrack -L -p udp | grep 1194
İlk liste sunucunun hizmet portuna bağlı olduğunu kanıtlar ve hangi sürecin ona sahip olduğunu gösterir. İkincisi istemcinin yerel soketini ve aradığı hedefi gösterir. Üçüncüsü yönlendiricinin oluşturduğu eşlemeyi gösterir ve çevrilmiş kaynağın göründüğü tek yer orasıdır. Bunları bu sırayla okuyun, iki numara artık çelişkili görünmez.
Yeniden bağlanma neyi değiştirir, neyi değiştirmez
Bazı yönlendiriciler istemcinin kaynak portunu boşken korur, bazıları her seferinde farklı bir tane atar. İki davranış da normaldir ve ilkini zorunlu kılan uygulama ikincisinde bozulur. Yeniden bağlanma veya ağ değişiminden sonra eşlemenin değişmesi sunucu arızası değildir: istemci yeni bir soket açar, yönlendirici elindekini atar ve sunucu aynı dinleyicide yeni bir kaynak görür. Arıza, sunucunun rastgele bir istemci portuna gönderilen trafiği kabul edeceğini beklemektir.
Topluluktaki OpenVPN istemcileri bu davranışı nobind aracılığıyla elde eder; bu, işletim sisteminin yerel portu seçmesine izin verir, uzak port ise hâlâ profilden gelir. Açıkça bağlamak bilinçli bir seçimdir, protokol gereği değildir. Sunucu tek bir uç sunmaya devam ederken istemciler kendi yerel kimliklerini seçer.
Kayıtta katmanları ayrı ayrı etiketleyin
Tünelin içinde kendi portları olan ikinci bir konuşma vardır. Tünelin taşıdığı HTTPS isteğinin hedefi TCP 443 iken dış şifreli bağlantı UDP 1194 kullanır, bu yüzden dış kaynak portunu değiştirmek iç hizmette hiçbir şeyi değiştirmez.
Dış katmanda bile protokol önemlidir. UDP 1194 ve TCP 1194 farklı uçlardır ve bir 'TCP' dinleyicisi numara eşleştiği için hiçbir zaman UDP datagramı almaz. Bir kurulumu belgelerken sunucu dinleyicisini, istemci soketini ve çevrilmiş kaynağı üç ayrı şey olarak etiketleyin ve her birine taşımayı ekleyin.
Sonra politika rolleri izlesin. Sunucu amaçlanan taşımayı dinleyicisinde açar ve yine de karşı tarafı doğrular; istemcinin güvenlik duvarı gelen bir hizmet yayımlamadan kendi giden alışverişinin yanıtlarını kabul eder. Durumsuz bir filtrenin dönüş yönünün açıkça yazılması gerekir ve bu ayrımın düzenli diyagramların ötesinde önemli olmasının pratik nedeni budur.