Soru NGINX SSL IPv6 üzerinden yanıt vermiyor


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

  • netstat IPv6 adresini dinleyen 443 numaralı bağlantı noktasını bildirdi
  • güvenlik duvarı açık, ipv6scanner.com bildiriyor bağlantı noktası 443 açık
  • yerel olarak (terminal üzerinde) wget ve curl doğru bir yanıt alır, böylece nginx yapılandırması tamamdır
  • nginx error.log dosyasında 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 iyi. Çeviri çalışır ve IP adresine doğrudan erişilse bile bağlantı çalışmaz

“Dış” dan (internetin dışındaki ağdan anlam ifade edilir) bağlantı kurma girişimleri başarısız oluyor (web tarayıcı, telnet, ipv6-test.com, curl ...). Hiç bir cevap yok.

Www.ekasparova.eu adresinden test edilebilir. Ben clueless. Başka ne kontrol edebilirim?

Düzenle:

çıktısı traceroute6 --mtu www.google.com Şöyleki:

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

Yani asla sonuna ulaşmaz ...

edit2:

İp6tables-save çıkışım (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 bir sanal yönlendirici MTU ayarında oldu.


8
2017-10-16 18:45


Menşei


Outside = Ağ dışında ayrı bir LAN segmentinde veya aynı LAN segmentinde oturan bir bilgisayardan mı? - IceMage
Dışında @IceMage internet demektir. Ağın dışında. Netleştirmek için soruyu düzenleyeceğim - j.kaspar
Sunucuda bir güvenlik duvarı mı yapılandırdınız? Sunucu Linux çalışıyorsa, çıktı ip6table-save ilgili olurdu. - kasperd
@kasperd Bütün icmp ile ilgili kuralları soruya ekledim - j.kaspar
@ j.kaspar Bu çıktı ip6tables-save Görmek istedim. Bu komut tam kuralları verecektir. - kasperd


Cevaplar:


Bir MTU sorununuz var.

Test ettim wget -O /dev/null https://www.ekasparova.eu ile trafik gözlemlerken tcpdump. Gördüğüm şey buydu:

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ışmadır. Her iki biter mss 1440 bu da, 1440 baytlık TCP veri yükü içeren paketler alabildikleri anlamına gelir, aynı zamanda Ethernet'in yaygın olarak desteklediği 1500 baytlık IP trafiğine de sahiptir.

Sonraki 2 paket, müşteri merhaba ve sunucu tarafından alındığına dair alındı.

Son 2 paket, işlerin ilginç olduğu yer. Varsayılan olarak tcpdump Bu durumda yakalamanın daha kolay okunmasını sağlayan göreli sıra sayılarını gösterir. Sunucudan paketinde bu ilginç kısmı seq 2857:3678. Bir sıçrama görüyoruz 1 için 2857 Bu, müşterinin henüz almadığı 2856 baytlık bir boşluk olduğu anlamına gelir. 2856 bayt, iki paket 1428 bayta karşılık gelir. 1440 ve 1428 arasındaki fark, bir zaman damgası seçeneğinin boyutudur.

Böylece sunucu, 3 paket arasında sunucuya bölünmüş bir mesaj gönderdi. Ancak ilk ikisi ağ için çok büyük ve müşteriye teslim edilmedi.

İstemciden sunucuya son pakette bunu görüyoruz sack 1 {2857:3678}. Bu, istemcinin gönderdiği seçici bir alındı, sunucuyu, bu kadarıyla aldığı veride bir boşluk olduğunu bildirir.

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

Sunucu bu hata mesajlarını aldıysa, paketleri gerektiği gibi daha küçük tekrar iletecektir. Ve daha küçük PMTU'yu hatırlar ki, sonraki istekler üzerinde bu keşif adımını tekrarlamak zorunda kalmaz.

Tüm bunlar için olası bir açıklama, sunucunuzun daha küçük paketler halinde veriyi yeniden iletmesi için gereken tüm hata mesajlarını engelleyen yanlış yapılandırılmış bir güvenlik duvarına sahip olmanızdır.


17
2017-10-16 19:05



İ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şimleri için açık olmalıdır. - j.kaspar
@ j.kaspar Güvenlik duvarları nelerdir? Nasıl yapılandırılır? Onları nasıl test ettin? - Michael Hampton♦
@MichaelHampton, sunucuya doğrudan yüklenen iptables güvenlik duvarı var. İkincisi veri merkezine ait ve bu kuralları yönetebiliyorum. ICMP'yi nasıl test edeceğimi bilmiyorum. Ancak her ikisinde de kurallar her yerde <-> ICMP için izin verilen her yere ayarlandı - j.kaspar
@ j.kaspar Linux sunucusunda, deneyin traceroute6 --mtu www.google.com ve aramak F=#### Çıkış çizgilerine veya yanıtın hiç geri gelmediği çıktı satırlarına eklenir. İkinci düşüncede, sadece onu çalıştırın ve sorunuzu çıktıyla düzenleyin. - Michael Hampton♦
@MichaelHampton Bitti. Ancak sonucun nasıl yorumlanacağından emin değilim. Bu, iletişimin ikinci hopu geçmediği anlamına mı geliyor? - j.kaspar


MTU sorunu olduğunu kabul ediyorum. Örneğin, varsayılan olarak wget -6 -O/dev/null http://www.ekasparova.eu işe yaramazsa (kısa yönlendirme https://www.babysoul.cz/ aynı IP üzerinde, ancak daha sonra bir sonraki büyük pakete asılacaktır). Sonra ev sahibiniz için MSS'yi zorla reddediyorum:

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

ve ondan sonra wget normal çalışır. Yani, MTU meselesi.  Çıktıyı karşılaştırmak mtr -6 -n --psize 1410 www.ekasparova.eu (ile çalışır) ile mtr -6 -n --psize 1411 www.ekasparova.eu sorunun ana makinenizde olduğunu gösterir 2a04:f310:100:3:f816:3eff:fea3:4553 ya da onun yukarısındaki 2a04:f310:100::125

Geçici çözüm olarak neler yapabilirsiniz (yukarı akışınızla bağlantı kurmanın dışında):

Hangi paket boyutunun kırıldığını test edin (ör. wget -6 -O/dev/null http://v6.testmyipv6.com/MTUtest/1500.dat Muhtemelen sizin için çalışacaktır, ama wget -6 -O/dev/null http://v6.testmyipv6.com/MTUtest/1000.dat sadece iyi çalışır) ve sonra ya:

  • (daha kötüsü) MSS'nizi varsayılan IPv6 rotası için (yukarıda yaptığım gibi) kelepçeleyin. Sadece TCP için çalışacağını unutmayın; örneğin UDP DNS paketleri hala bozuk olacak veya
  • (daha iyi) arabiriminizi MTU (örneğin) azaltın (örneğin ifconfig eth0 mtu 1200). Bu tüm paketler için çalışmalıdır. Sorun şu ki, yoldaki bir şey MTU'yu daha da düşürdüğünde, onlarla iletişim kuramayacaksınız. Ve MTU'nun düşürülmesi, biraz daha düşük performansla sonuçlanacaktır (genellikle büyük bir site olmadıkça büyük bir anlaşma değil)
  • (en iyisi) IPv6 güvenlik duvarını kaldırırsanız (sizinki ve upsteam'inizde) yardım edin; ve bunu öğrendiğinizde, sorunlu çizgi bulana kadar PMTU keşfini kırmadan adım adım tekrar bir araya getirmeyi deneyin. Sorun şu ki, ISS'nizden daha fazla iş ve işbirliği gerektirir (ve güvenlik duvarı açmak size zaman savunmasız olabilir).

1
2017-10-17 09:23



Varsayılan yoldaki MSS'yi azaltmak kötü bir öneri değildir. Bu, diğer insanların ağlarında MTU sorunları etrafında çalışmak için üretim ortamlarında yaptığım bir şey. 1000 kadar düşük olmamalıyım. 1220, IPv6'nın uçtan uca çalışmayı garanti ettiği 1280 byte'lık paketin tamamını tutacak kadar küçüktür. Bununla birlikte, söz konusu problem, MSS'nin varsayılan yol üzerindeki indirgenmesiyle azaltılmayacaktı, çünkü paket boyutlarını sadece bir yönde etkiliyordu. - kasperd
Bir MSS'yi transit olarak yönetebilir ( ip6tables). Bunu yapmak zorunda değilsiniz, ancak MSS'yi en fazla 1220'ye aktarmanın MTU problemleri için çok etkili bir çözüm olduğu ortaya çıkıyor. Ve her iki 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
MTU'nun bir uç noktaya düşürülmesi, giden MSS'yi etkileyecektir ve ayrıca daha yüksek bir MSS alsanız bile gönderdiğiniz paketleri sınırlayacaktır. Böylece bir uç noktada daha düşük MTU, her iki yönde de TCP için MTU sorunlarını hafifletebilir. Ancak sadece UDP için tek yönde yardımcı olur. MTU'yu invertördeki yönlendiriciler üzerinde azaltmak MTU problemini hafifletebilir veya koşullara bağlı olarak yeni MTU sorunları ortaya çıkarabilir. Bu nedenle MSS'nin azaltılması, yeni MTU problemleri ortaya çıkmadan yardımcı olabilecek tek azaltmadır. - kasperd
@kasperd, bir yol üzerinde MSS'yi her iki yönde akan trafik için azaltmamalı, 3way el sıkışması sırasında tüm TCP oturumu için (daha düşük bir MSS olarak) müzakere edildiği gibi mi? MTU'yu düşürmek ve gelen UDP'leri kırmak için doğru olduğu halde sorunu çözmeyecek, bu çok büyük UDP'lerin işe yaramayacağı için ek problemler yaratmamalı. . - Matija Nalis
Hayır. MSS, iki yön için bağımsız olarak müzakere edilir. Her bir taraf, göndermek istedikleri maksimum miktarı diğer tarafa göndermek istediklerini ve bildirmek istediklerini bilirler. Ayarladığınızda advmss Yalnızca göndereceğiniz bölümleri değil, alacağınız segmentlerin boyutunu etkilersiniz. Göndermeye hazır olduğunuz maksimum mesaj iletilmez - çünkü buna gerek yoktur. Her ikisi de MTU'dan varsayılan değerlerini türetir, ikisinden biri ile geçersiz kılınabilir advmss. Diğerlerini geçersiz kılmak için bir yönlendirme girişi için bir yol bilmiyorum, ama eğer bir yolu varsa, öğrenmek isterim. - kasperd