NGINX SSL, IPv6 üzerinden yanıt vermiyor


10

Nginx ile bir Debian sunucusunda, HTTPS ve IPv6 üzerinden bir web sunucusundan yanıt alamıyorum. HTTP iyi çalışıyor.

  • netstat, IPv6 adresini dinleyen bağlantı noktası 443'ü bildiriyor
  • güvenlik duvarı açık, ipv6scanner.com 443 numaralı bağlantı noktasını açık bildirdi
  • yerel olarak (terminal üzerinden) wget ve curl doğru bir yanıt alır, böylece nginx yapılandırması tamam
  • nginx error.log ile ilgili bir hata belirtisi yok
  • Başarısız olduğunda access.log dosyasında kayıt yok, bu yüzden iletişim muhtemelen web sunucusuna ulaşmıyor
  • DNS iyidir. Çeviri çalışıyor ve IP adresine doğrudan erişilse bile bağlantı çalışmıyor

"Dışarıdan" (ağın dışında, internetten) bağlanma girişimleri başarısız olur (web tarayıcısı, telnet, ipv6-test.com, curl ...). Hiç yanıt yok.

Www.ekasparova.eu adresinde test edilebilir. Ben clueless. Başka neleri kontrol edebilirim?

Düzenle:

çıktısı traceroute6 --mtu www.google.comaşağıdaki gibidir:

traceroute to www.google.com (2a00:1450:4014:800::2004), 30 hops max, 65000 byte packets
1  * F=1500 * *
2  * * *
~
30  * * *

Yani asla sona ulaşmaz ...

edit2:

Benim ip6tables-save çıkışı (yerel güvenlik duvarı):

# Generated by ip6tables-save v1.6.0 on Wed Oct 17 06:25:40 2018
*filter
:INPUT DROP [32:9320]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
:ufw6-after-forward - [0:0]
:ufw6-after-input - [0:0]
:ufw6-after-logging-forward - [0:0]
:ufw6-after-logging-input - [0:0]
:ufw6-after-logging-output - [0:0]
:ufw6-after-output - [0:0]
:ufw6-before-forward - [0:0]
:ufw6-before-input - [0:0]
:ufw6-before-logging-forward - [0:0]
:ufw6-before-logging-input - [0:0]
:ufw6-before-logging-output - [0:0]
:ufw6-before-output - [0:0]
:ufw6-logging-allow - [0:0]
:ufw6-logging-deny - [0:0]
:ufw6-reject-forward - [0:0]
:ufw6-reject-input - [0:0]
:ufw6-reject-output - [0:0]
:ufw6-skip-to-policy-forward - [0:0]
:ufw6-skip-to-policy-input - [0:0]
:ufw6-skip-to-policy-output - [0:0]
:ufw6-track-forward - [0:0]
:ufw6-track-input - [0:0]
:ufw6-track-output - [0:0]
:ufw6-user-forward - [0:0]
:ufw6-user-input - [0:0]
:ufw6-user-limit - [0:0]
:ufw6-user-limit-accept - [0:0]
:ufw6-user-logging-forward - [0:0]
:ufw6-user-logging-input - [0:0]
:ufw6-user-logging-output - [0:0]
:ufw6-user-output - [0:0]
-A INPUT -j ufw6-before-logging-input
-A INPUT -j ufw6-before-input
-A INPUT -j ufw6-after-input
-A INPUT -j ufw6-after-logging-input
-A INPUT -j ufw6-reject-input
-A INPUT -j ufw6-track-input
-A INPUT -j LOG --log-prefix "[IPTABLES] " --log-tcp-options
-A INPUT -j LOG --log-prefix "[IPTABLES] " --log-tcp-options
-A FORWARD -j ufw6-before-logging-forward
-A FORWARD -j ufw6-before-forward
-A FORWARD -j ufw6-after-forward
-A FORWARD -j ufw6-after-logging-forward
-A FORWARD -j ufw6-reject-forward
-A FORWARD -j ufw6-track-forward
-A FORWARD -j LOG --log-prefix "[IPTABLES] " --log-tcp-options
-A FORWARD -j LOG --log-prefix "[IPTABLES] " --log-tcp-options
-A OUTPUT -j ufw6-before-logging-output
-A OUTPUT -j ufw6-before-output
-A OUTPUT -j ufw6-after-output
-A OUTPUT -j ufw6-after-logging-output
-A OUTPUT -j ufw6-reject-output
-A OUTPUT -j ufw6-track-output
-A ufw6-after-input -p udp -m udp --dport 137 -j ufw6-skip-to-policy-input
-A ufw6-after-input -p udp -m udp --dport 138 -j ufw6-skip-to-policy-input
-A ufw6-after-input -p tcp -m tcp --dport 139 -j ufw6-skip-to-policy-input
-A ufw6-after-input -p tcp -m tcp --dport 445 -j ufw6-skip-to-policy-input
-A ufw6-after-input -p udp -m udp --dport 546 -j ufw6-skip-to-policy-input
-A ufw6-after-input -p udp -m udp --dport 547 -j ufw6-skip-to-policy-input
-A ufw6-after-logging-forward -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw6-after-logging-input -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw6-before-forward -m rt --rt-type 0 -j DROP
-A ufw6-before-forward -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw6-before-forward -p ipv6-icmp -m icmp6 --icmpv6-type 1 -j ACCEPT
-A ufw6-before-forward -p ipv6-icmp -m icmp6 --icmpv6-type 2 -j ACCEPT
-A ufw6-before-forward -p ipv6-icmp -m icmp6 --icmpv6-type 3 -j ACCEPT
-A ufw6-before-forward -p ipv6-icmp -m icmp6 --icmpv6-type 4 -j ACCEPT
-A ufw6-before-forward -p ipv6-icmp -m icmp6 --icmpv6-type 128 -j ACCEPT
-A ufw6-before-forward -p ipv6-icmp -m icmp6 --icmpv6-type 129 -j ACCEPT
-A ufw6-before-forward -j ufw6-user-forward
-A ufw6-before-input -i lo -j ACCEPT
-A ufw6-before-input -m rt --rt-type 0 -j DROP
-A ufw6-before-input -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw6-before-input -m conntrack --ctstate INVALID -j ufw6-logging-deny
-A ufw6-before-input -m conntrack --ctstate INVALID -j DROP
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 1 -j ACCEPT
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 2 -j ACCEPT
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 3 -j ACCEPT
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 4 -j ACCEPT
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 128 -j ACCEPT
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 129 -j ACCEPT
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 133 -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 134 -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 135 -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 136 -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 141 -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 142 -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-input -s fe80::/10 -p ipv6-icmp -m icmp6 --icmpv6-type 130 -j ACCEPT
-A ufw6-before-input -s fe80::/10 -p ipv6-icmp -m icmp6 --icmpv6-type 131 -j ACCEPT
-A ufw6-before-input -s fe80::/10 -p ipv6-icmp -m icmp6 --icmpv6-type 132 -j ACCEPT
-A ufw6-before-input -s fe80::/10 -p ipv6-icmp -m icmp6 --icmpv6-type 143 -j ACCEPT
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 148 -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 149 -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-input -s fe80::/10 -p ipv6-icmp -m icmp6 --icmpv6-type 151 -m hl --hl-eq 1 -j ACCEPT
-A ufw6-before-input -s fe80::/10 -p ipv6-icmp -m icmp6 --icmpv6-type 152 -m hl --hl-eq 1 -j ACCEPT
-A ufw6-before-input -s fe80::/10 -p ipv6-icmp -m icmp6 --icmpv6-type 153 -m hl --hl-eq 1 -j ACCEPT
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 144 -j ACCEPT
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 145 -j ACCEPT
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 146 -j ACCEPT
-A ufw6-before-input -p ipv6-icmp -m icmp6 --icmpv6-type 147 -j ACCEPT
-A ufw6-before-input -s fe80::/10 -d fe80::/10 -p udp -m udp --sport 547 --dport 546 -j ACCEPT
-A ufw6-before-input -d ff02::fb/128 -p udp -m udp --dport 5353 -j ACCEPT
-A ufw6-before-input -d ff02::f/128 -p udp -m udp --dport 1900 -j ACCEPT
-A ufw6-before-input -j ufw6-user-input
-A ufw6-before-output -o lo -j ACCEPT
-A ufw6-before-output -m rt --rt-type 0 -j DROP
-A ufw6-before-output -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A ufw6-before-output -p ipv6-icmp -m icmp6 --icmpv6-type 1 -j ACCEPT
-A ufw6-before-output -p ipv6-icmp -m icmp6 --icmpv6-type 2 -j ACCEPT
-A ufw6-before-output -p ipv6-icmp -m icmp6 --icmpv6-type 3 -j ACCEPT
-A ufw6-before-output -p ipv6-icmp -m icmp6 --icmpv6-type 4 -j ACCEPT
-A ufw6-before-output -p ipv6-icmp -m icmp6 --icmpv6-type 128 -j ACCEPT
-A ufw6-before-output -p ipv6-icmp -m icmp6 --icmpv6-type 129 -j ACCEPT
-A ufw6-before-output -p ipv6-icmp -m icmp6 --icmpv6-type 133 -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-output -p ipv6-icmp -m icmp6 --icmpv6-type 136 -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-output -p ipv6-icmp -m icmp6 --icmpv6-type 135 -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-output -p ipv6-icmp -m icmp6 --icmpv6-type 134 -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-output -p ipv6-icmp -m icmp6 --icmpv6-type 141 -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-output -p ipv6-icmp -m icmp6 --icmpv6-type 142 -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-output -s fe80::/10 -p ipv6-icmp -m icmp6 --icmpv6-type 130 -j ACCEPT
-A ufw6-before-output -s fe80::/10 -p ipv6-icmp -m icmp6 --icmpv6-type 131 -j ACCEPT
-A ufw6-before-output -s fe80::/10 -p ipv6-icmp -m icmp6 --icmpv6-type 132 -j ACCEPT
-A ufw6-before-output -s fe80::/10 -p ipv6-icmp -m icmp6 --icmpv6-type 143 -j ACCEPT
-A ufw6-before-output -p ipv6-icmp -m icmp6 --icmpv6-type 148 -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-output -p ipv6-icmp -m icmp6 --icmpv6-type 149 -m hl --hl-eq 255 -j ACCEPT
-A ufw6-before-output -s fe80::/10 -p ipv6-icmp -m icmp6 --icmpv6-type 151 -m hl --hl-eq 1 -j ACCEPT
-A ufw6-before-output -s fe80::/10 -p ipv6-icmp -m icmp6 --icmpv6-type 152 -m hl --hl-eq 1 -j ACCEPT
-A ufw6-before-output -s fe80::/10 -p ipv6-icmp -m icmp6 --icmpv6-type 153 -m hl --hl-eq 1 -j ACCEPT
-A ufw6-before-output -j ufw6-user-output
-A ufw6-logging-allow -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW ALLOW] "
-A ufw6-logging-deny -m conntrack --ctstate INVALID -m limit --limit 3/min --limit-burst 10 -j RETURN
-A ufw6-logging-deny -m limit --limit 3/min --limit-burst 10 -j LOG --log-prefix "[UFW BLOCK] "
-A ufw6-skip-to-policy-forward -j DROP
-A ufw6-skip-to-policy-input -j DROP
-A ufw6-skip-to-policy-output -j ACCEPT
-A ufw6-track-output -p tcp -m conntrack --ctstate NEW -j ACCEPT
-A ufw6-track-output -p udp -m conntrack --ctstate NEW -j ACCEPT
-A ufw6-user-input -p tcp -m tcp --dport 20 -j ACCEPT
-A ufw6-user-input -p tcp -m tcp --dport 21 -j ACCEPT
-A ufw6-user-input -p tcp -m tcp --dport 25 -j ACCEPT
-A ufw6-user-input -p tcp -m tcp --dport 53 -j ACCEPT
-A ufw6-user-input -p tcp -m tcp --dport 80 -j ACCEPT
-A ufw6-user-input -p tcp -m tcp --dport 110 -j ACCEPT
-A ufw6-user-input -p tcp -m tcp --dport 143 -j ACCEPT
-A ufw6-user-input -p tcp -m tcp --dport 587 -j ACCEPT
-A ufw6-user-input -p tcp -m tcp --dport 993 -j ACCEPT
-A ufw6-user-input -p tcp -m tcp --dport 995 -j ACCEPT
-A ufw6-user-input -p tcp -m tcp --dport 8080 -j ACCEPT
-A ufw6-user-input -p tcp -m tcp --dport 8081 -j ACCEPT
-A ufw6-user-input -p tcp -m tcp --dport 10000 -j ACCEPT
-A ufw6-user-input -p udp -m udp --dport 53 -j ACCEPT
-A ufw6-user-input -p tcp -m multiport --dports 29799:29899 -j ACCEPT
-A ufw6-user-input -p udp -m udp --dport 25 -j ACCEPT
-A ufw6-user-input -p tcp -m tcp --dport 8082 -j ACCEPT
-A ufw6-user-limit -m limit --limit 3/min -j LOG --log-prefix "[UFW LIMIT BLOCK] "
-A ufw6-user-limit -j REJECT --reject-with icmp6-port-unreachable
-A ufw6-user-limit-accept -j ACCEPT
COMMIT
# Completed on Wed Oct 17 06:25:40 2018

Edit3:

Herkesin yardımı sayesinde veri merkezi operatörünü sorunun kendi altyapısında olduğuna ikna edebildim. Sorun gerçekten internet yolunda sanal bir yönlendirici MTU ayarında oldu.


Outside = Ağın ayrı bir LAN segmentinde mi yoksa aynı LAN segmentinde oturan bir bilgisayardan mı?
IceMage

1
@IceMage Dışarıdan internetten demek. Ağın dışında.
Açıklığa

Sunucuda bir güvenlik duvarı yapılandırdınız mı? Sunucu Linux çalıştırıyorsa, çıktısı ip6table-savealakalı olacaktır.
kasperd

@kasperd ICMP ile ilgili tüm kuralları soruya
ekledim

@ j.kaspar ip6tables-saveGörmek istediğim çıktı . Bu komut tüm kuralları verir.
kasperd

Yanıtlar:


19

Bir MTU sorununuz var.

wget -O /dev/null https://www.ekasparova.euİle trafiği gözlemlerken test ettim tcpdump. Ben de öyle gördüm:

19:56:57.048361 IP6 2001:db8::1.47386 > 2a04:f310:100:3:f816:3eff:fea3:4553.443: Flags [S], seq 262121609, win 28800, options [mss 1440,sackOK,TS val 298423713 ecr 0,nop,wscale 7], length 0
19:56:57.087457 IP6 2a04:f310:100:3:f816:3eff:fea3:4553.443 > 2001:db8::1.47386: Flags [S.], seq 2396216876, ack 262121610, win 28560, options [mss 1440,sackOK,TS val 82836580 ecr 298423713,nop,wscale 7], length 0
19:56:57.087490 IP6 2001:db8::1.47386 > 2a04:f310:100:3:f816:3eff:fea3:4553.443: Flags [.], ack 1, win 225, options [nop,nop,TS val 298423723 ecr 82836580], length 0
19:56:57.087692 IP6 2001:db8::1.47386 > 2a04:f310:100:3:f816:3eff:fea3:4553.443: Flags [P.], seq 1:322, ack 1, win 225, options [nop,nop,TS val 298423723 ecr 82836580], length 321
19:56:57.126190 IP6 2a04:f310:100:3:f816:3eff:fea3:4553.443 > 2001:db8::1.47386: Flags [.], ack 322, win 232, options [nop,nop,TS val 82836590 ecr 298423723], length 0
19:56:57.141224 IP6 2a04:f310:100:3:f816:3eff:fea3:4553.443 > 2001:db8::1.47386: Flags [P.], seq 2857:3678, ack 322, win 232, options [nop,nop,TS val 82836594 ecr 298423723], length 821
19:56:57.141301 IP6 2001:db8::1.47386 > 2a04:f310:100:3:f816:3eff:fea3:4553.443: Flags [.], ack 1, win 248, options [nop,nop,TS val 298423736 ecr 82836590,nop,nop,sack 1 {2857:3678}], length 0

İlk 3 paket el sıkışmasıdır. Her iki uç mss 1440da, 1440 bayt TCP yükü olan paketleri alabilecekleri, başlıkların sayıldığı ve toplamda 1500 baytlık IP trafiğinin olduğu, yani Ethernet'in yaygın olarak desteklediği anlamına gelen duyurur .

Sonraki 2 paket istemci merhaba ve sunucu tarafından alındığının onaylanmasıdır.

Son 2 paket, işlerin ilginçleştiği yerdir. Varsayılan olarak tcpdump, bu durumda yakalamanın okunmasını kolaylaştıran göreli sıra numaraları gösterilir. Sunucudan gelen pakette bu ilginç kısımdır seq 2857:3678. Biz bir sıçrama yaşandığını görebilirsiniz 1için 2857istemci henüz almadı 2856 bayt bir boşluk var olduğu anlamına gelir. 2856 bayt, 1428 baytlık iki pakete karşılık gelir. 1440 ve 1428 arasındaki fark, bir zaman damgası seçeneğinin boyutudur.

Böylece, sunucu 3 paket arasında bölünmüş sunucu merhaba gönderdi. Ancak ilk ikisi ağ için çok büyüktü ve istemciye teslim edilmedi.

İstemciden sunucuya son pakette bunu görüyoruz sack 1 {2857:3678}. Bu, istemcinin sunucuya bugüne kadar aldığı verilerde bir boşluk olduğunu bildiren seçici bir bildirimdir.

Muhtemelen sunucu iki kayıp paketi tekrar tekrar göndermeye devam eder. Ancak aynı iki paketi kaç kez iletirse iletsin, ağ için çok büyük kalırlar. Ve muhtemelen yoldaki bir yönlendirici, sunucuya paketlerin çok büyük olduğunu ve daha küçük paketlerde yeniden iletilmesi gerektiğini bildiren bir hata iletisi gönderir.

Sunucu bu hata iletilerini alırsa, paketleri gerektiği gibi daha küçük bir şekilde yeniden iletir. Ve daha küçük PMTU'yu hatırlar, böylece sonraki taleplerde bu keşif adımını tekrarlamak zorunda kalmaz.

Tüm bunlar için olası bir açıklama, sunucunuzu verileri daha küçük paketler halinde yeniden iletmesi gerektiğini bildiren tüm hata mesajlarını bırakan yanlış yapılandırılmış bir güvenlik duvarına sahip olmanızdır.


1
İlginç. Teşekkür ederim! Bu hata mesajları - sanırım ICMP protokolü ... Bunu test etmenin bir yolu var mı? Sunucudaki güvenlik duvarı ve sunucu ile internet arasındaki güvenlik duvarı tüm ICMP iletişimi için açık olmalıdır.
j.kaspar

@ j.kaspar Güvenlik duvarları nelerdir? Nasıl yapılandırılırlar? Onları nasıl test ettin?
Michael Hampton

@MichaelHampton doğrudan sunucuya yüklenmiş iptables güvenlik duvarı var. İkincisi veri merkezine aittir ve kurallarını yönetebilirim. ICMP'yi nasıl test edeceğimi gerçekten bilmiyorum. Ancak her iki kural da ICMP için izin verilen herhangi bir yere <-> ayarlanmıştır
j.kaspar

1
@ j.kaspar Linux sunucu, denemede traceroute6 --mtu www.google.comve için bakmak F=####yanıt hiç geri gelir çıkış hatları veya çıkış hatlarına takılan. İkinci düşünce, sadece çalıştırın ve çıktı ile sorunuzu düzenleyin.
Michael Hampton

@MichaelHampton Tamamlandı. Ancak sonucu nasıl yorumlayacağımdan emin değilim. Bu, iletişimin ikinci sekmeyi hiç geçmediği anlamına mı geliyor?
j.kaspar

1

@Kasperd ile MTU sorunu olduğunu kabul ediyorum. Örneğin, varsayılan olarak wget -6 -O/dev/null http://www.ekasparova.euçalışmaz ( https://www.babysoul.cz/aynı IP'ye kısa bir yönlendirme alır , ancak bir sonraki büyük pakette asılı kalır). Daha sonra sunucunuz için MSS'yi zorla indirdim:

ip -6 ro add 2a04:f310:100:3:f816:3eff:fea3:4553 advmss 1000 via $MY_GW

ve bundan sonra wgetnormal çalışır. Yani, MTU sorunu. mtr -6 -n --psize 1410 www.ekasparova.eu(Hangisinin işe yaradığı) çıktısının karşılaştırılması mtr -6 -n --psize 1411 www.ekasparova.eu, sorunun ana makinenizde 2a04:f310:100:3:f816:3eff:fea3:4553veya2a04:f310:100::125

Geçici çözüm olarak ne yapabilirsiniz (yukarı akışla iletişim kurmanın yanı sıra):

Hangi paket boyutunun kırıldığını test edin (yani, wget -6 -O/dev/null http://v6.testmyipv6.com/MTUtest/1500.datmuhtemelen sizin için çalışırken wget -6 -O/dev/null http://v6.testmyipv6.com/MTUtest/1000.datişe yaramaz , ancak iyi çalışır) ve sonra da:

  • (daha da kötüsü) MSS'nizi varsayılan IPv6 yolu için sıkıştırın (yukarıda yaptığım gibi). Bunun yalnızca TCP için çalışacağını unutmayın; örneğin, UDP DNS paketleri hala bozuk olacaktır veya
  • (daha iyisi) arayüz MTU'nuzu azaltın (örneğin ifconfig eth0 mtu 1200). Bu, tüm paketler için çalışmalıdır. Sorun şu ki, yolda bir şey daha düşük MTU'ya sahipse, onlarla iletişim kuramayacaksınız. Ve MTU'yu düşürmek biraz daha düşük performansa neden olacaktır (genellikle büyük bir site değilseniz büyük bir sorun değil)
  • (en iyisi) IPv6 güvenlik duvarını kaldırmanın (sizinki ve yukarı doğru) yardımcı olup olmadığını deneyin; ve bulduğunuzda, sorunlu bir çizgi bulana kadar PMTU keşfini bozmadan adım adım bir araya getirmeye çalışın. Sorun, ISS'nizden daha fazla çalışma ve işbirliği gerektirmesidir (ve güvenlik duvarının açılması sizi bu süre için savunmasız bırakabilir).

MSS'yi varsayılan rotada azaltmak kötü bir öneri değildir. Bu, diğer insanların ağlarındaki MTU sorunları üzerinde çalışmak için üretim ortamlarında yaptığım bir şey. Yine de 1000 kadar düşmüyorum. 1220, IPv6'nın uçtan uca çalışmayı garanti ettiği tam paketi 1280 bayt içinde tutacak kadar küçüktür. Bununla birlikte, söz konusu sorun, yalnızca bir yönde paket boyutlarını etkilediği için varsayılan yoldaki MSS azaltılarak azaltılmayacaktır.
kasperd

MSS geçişte manevra yapılabilir (bununla mümkün olmalıdır ip6tables). Bunu yapmanız gerekmiyor, ancak MSS'yi maksimum 1220'ye kadar sıkıştırmanın MTU sorunları için çok etkili bir çözüm olduğu ortaya çıkıyor. Ve uç noktada veya herhangi bir yönlendirici arasında yapılabilir ve TCP için MTU sorunlarını her iki yönde de azaltacaktır.
kasperd

Bir bitiş noktasında MTU'nun düşürülmesi, giden MSS'yi etkiler ve daha yüksek bir MSS alsanız bile gönderdiğiniz paketleri de sınırlar. Böylece, bir uç noktada daha düşük MTU, her iki yönde TCP için MTU sorunlarını azaltabilir. Bununla birlikte, sadece bir yönde UDP'ye yardımcı olur. Aradaki yönlendiricilerdeki MTU'yu azaltmak, MTU sorununu azaltabilir veya koşullara bağlı olarak yeni MTU sorunları oluşturabilir. Dolayısıyla, MSS'nin azaltılması, potansiyel olarak yeni MTU problemleri getirmeden yardımcı olabilecek bir azaltma yöntemidir.
kasperd

@kasperd, MSway'i üç yönlü el sıkışma sırasında tüm TCP oturumu için müzakere edildiğinden (daha düşük bir MSS olarak) trafik akışı için bir taraftan çalışmayı MSS'yi düşürmemelidir? MTU'yu düşürmeye ve gelen UDP'leri kırmaya gelince, sorunu çözmeyeceği doğru olsa da, çok büyük UDP'ler yine de çalışmayacağı için (sorunlu yukarı akış zaten onları düşüreceği için) ek sorunlar yaratmamalıdır. .
Matija Nalis

1
Hayır. MSS iki yön için bağımsız olarak müzakere edilir. Her bir taraf göndermek istedikleri maksimum değeri bilir ve diğer tarafa almak istedikleri maksimum değeri söyler. Ayarladığınızda advmss, yalnızca göndereceğiniz segmentlerin boyutunu değil, göndereceğiniz segmentlerin boyutunu etkiler. Göndermek istediğiniz maksimum miktar iletilmez - çünkü buna gerek yoktur. Her ikisi de varsayılan değerlerini MTU'dan türetir, ikisinden biri ile geçersiz kılınabilir advmss. Bir yönlendirme girişinin diğerini geçersiz kılması için bir yol bilmiyorum, ancak bir yol varsa, öğrenmek istiyorum.
kasperd
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.