Alışkanlık, WireGuard yanlış davranmaya başlar başlamaz MTU’yu düşürmektir ve bu alışkanlık başka bir arızayı gizler. İletmeyen bir geçit ile büyük paketleri taşımayan bir yol, ayırt edilebilir desenler üretir: biri her iki yönde ve her boyutta başarısız olur, diğeri küçük isteklerde hayatta kalır ve büyüklerde ölür. Herhangi bir sayıyı değiştirmeden önce hangi biçime sahip olduğunuzu belirleyin. Test ucuzdur ve olası nedenlerin yarısını ortadan kaldırır.

İki arıza, iki farklı biçim

Yönlendirme sorunu sunucunun hemen ardında ortaya çıkar. El sıkışma başarılı olur, tünel adresi yanıt verir ve geçidin arkasındaki hiçbir şeye küçük bir istekle bile ulaşılamaz. Paket sunucuya ulaştı ve iletilmedi ya da yanıtın dönüş yolu yoktu.

Boyut sorunu yalnızca bir eşiğin üzerinde ortaya çıkar. DNS, bir TCP el sıkışması ve küçük bir API çağrısı çalışırken dosya indirme veya büyük bir yanıt takılır. Sığan paketler uçtan uca gitti ve sığmayanlar bir yerde kullanışlı bir rapor olmadan düşürüldü.

Bu tanımlar farklı kişilere ve farklı yapılandırma dosyalarına işaret eder, bu yüzden biçimi ölçmek tahminden daha değerlidir. Geçide tek bir ping onları ayıramaz.

Bir şeyi küçültmeden önce yönlendirmeyi dışlayın

Geçidin kendisini değil, geçidin ötesindeki bir hedefi test edin. Sunucunun tünel adresine ping, yalnızca arayüzün açık olduğunu ve tüneli bitiren makineye ulaştığınızı kanıtlar. Daha geniş ağın trafiği, o makinede IP yönlendirmesinin etkin olmasına ve iletilen akışa izin veren bir güvenlik duvarına bağlıdır. İkisi de doğru olmalıdır ve biri yanlışsa aynı sessizlik ortaya çıkar.

Dönüş yönlendirmesi de aynı derecede önemlidir. Hedef ağ, istemcinin tünel adresine nasıl ulaşacağını bilmiyorsa istek gelir ve yanıt kaybolur, istemci ise düşürülmüş bir yönlendirmeyle aynı görünen bir zaman aşımı bildirir.

Tasarım adres çevirisi kullanıyorsa, çeviri kuralı o dönüş yolunun bir parçasıdır. MTU sorununu kovalarken onu kaldırmak, çalışan bir tasarımı bozuk bir tasarıma dönüştürür; bu yüzden mevcut kuralları düzenlemeden önce okuyun.

Kırılmanın nerede başladığını ölçün

Önce yönlendirme durumunu ve filtre kurallarını okuyun. Bunlar yalnızca okuma kontrolleridir ve ucuz soruyu yanıtlar:

sysctl net.ipv4.ip_forward
sudo iptables -S FORWARD
ip route get 10.30.0.9

Ardından istemciden geçidin ötesindeki bir ana bilgisayara doğru don’t-fragment bitiyle boyutları deneyin:

ping -M do -s 1200 10.30.0.9
ping -M do -s 1400 10.30.0.9

İlk test çalışır ve ikincisi bir parçalanma hatasıyla başarısız olursa, yol size kullanılabilir boyutunu söylüyor demektir. İkisi de çalışmıyorsa yönlendirmeye veya yönlendirme tablosuna bakıyorsunuz ve MTU değiştirilecek değişken değildir.

ObservationPoints towardWhere to look
Nothing beyond the gateway worksForwarding or return routeForwarding flag, filter rules, routing table
Small works, large stallsPacket size on the pathTunnel MTU and the link underneath
Only names failDNS resolutionThe resolver configured for the tunnel
Works sometimesMultiple paths or state expiryFlow selection and NAT state

Kanıtladığınız katmanı düzeltin

Arıza yönlendirme ise düzeltme, tasarımın izin verdiği ölçüde dar ifade edilmiş bir yönlendirme kuralı veya rotadır. Arıza boyut ise düzeltme, tam bu yoldaki kapsüllemeyi hesaba katan ve gereksinim duyan arayüze uygulanan, filodaki her bağdaştırıcıya değil, bir MTU’dur.

Her iki durumda da, ardından aynı görevi aynı hedefe karşı yineleyin. Özgün büyük aktarım artık tamamlanıyorsa, değişiklik başarısız olan katmanı ele almıştır. Yalnızca küçük test iyileştiyse bir belirtiyi tedavi ettiniz ve gerçek sınır hâlâ yerinde.

Değişiklikten önce hangi biçimi gözlemlediğinizi yazın. Düzeltmenin yanına kaydedilen o tek satır, bir sonraki kişinin hiçbir zaman sorun olmayan bir MTU’yu düşürmesini engelleyen şeydir.

İlgili makaleler