NGINX SSL IPv6 पर कोई प्रतिक्रिया नहीं देता है


10

Nginx के साथ एक डेबियन सर्वर पर, मुझे HTTPS और IPv6 पर एक वेब सर्वर से कोई प्रतिक्रिया नहीं मिलती है। HTTP ठीक काम करता है।

  • netstat IPv6 पते पर पोर्ट 443 की रिपोर्ट करता है
  • फ़ायरवॉल खुला है, ipv6scanner.com पोर्ट 443 ओपन की रिपोर्ट करता है
  • स्थानीय रूप से (टर्मिनल पर) wget और कर्ल को एक सही प्रतिक्रिया मिलती है, इसलिए nginx कॉन्फ़िगरेशन ठीक है
  • nginx error.log से किसी त्रुटि का कोई संकेत नहीं है
  • जब यह विफल होता है, तो access.log में कोई रिकॉर्ड नहीं है, इसलिए संचार संभवतः वेब सर्वर तक नहीं पहुंच रहा है
  • डीएनएस ठीक है। अनुवाद कार्य करता है, और कनेक्शन तब भी काम नहीं करता है जब आईपी एड्रेस सीधे पहुंच जाता है

"बाहर" (नेटवर्क से बाहर का अर्थ, इंटरनेट से) कनेक्ट करने का हर प्रयास विफल रहता है (वेब ​​ब्राउज़र, टेलनेट, ipv6-test.com, कर्ल ...)। इस पर कोई प्रतिक्रिया नहीं है।

यह www.ekasparova.eu पर परीक्षण किया जा सकता है। मैं क्लूलेस हूं। मैं और क्या जांच सकता हूँ?

संपादित करें:

इस traceroute6 --mtu www.google.comप्रकार का उत्पादन निम्नानुसार है:

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

इसलिए यह कभी भी अंत तक नहीं पहुंचता है ...

EDIT2:

मेरा ip6tables- आउटपुट (स्थानीय फ़ायरवॉल) सहेजें:

# 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:

सभी की मदद के लिए धन्यवाद मैं डेटासेंटर ऑपरेटर को समझाने में सक्षम था कि समस्या उनके बुनियादी ढांचे में है। समस्या वास्तव में इंटरनेट के लिए एक आभासी रूटर पर MTU सेटिंग में थी।


बाहर = एक अलग LAN खंड पर नेटवर्क के बाहर, या एक ही LAN खंड पर बैठे कंप्यूटर से?
आइसमैज

1
@ इंटरनेट से बाहर का अर्थ है। नेटवर्क के बाहर। मैं स्पष्ट करने के लिए प्रश्न को संपादित करने जा रहा हूँ
j.kaspar

क्या आपने सर्वर पर फ़ायरवॉल कॉन्फ़िगर किया है? यदि सर्वर लिनक्स चला रहा है, तो आउटपुट ip6table-saveप्रासंगिक होगा।
कास्परड

@kasperd मैंने सभी icmp से संबंधित नियमों को प्रश्न में
जोड़ दिया

@ j.kaspar यह ip6tables-saveमैं देखना चाहता था का उत्पादन है । वह आदेश पूर्ण नियमों का उत्पादन करेगा।
कैस्परड

जवाबों:


19

आपको MTU की समस्या है।

मैंने wget -O /dev/null https://www.ekasparova.euयातायात का अवलोकन करते हुए परीक्षण किया tcpdump। यह वही है जो मैंने देखा:

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

पहला 3 पैकेट हैंडशेक है। दोनों समाप्ति की घोषणा mss 1440करते हैं जिसका अर्थ है कि वे टीसीपी पेलोड के 1440 बाइट्स के साथ पैकेट प्राप्त करने में सक्षम हैं, हेडर की गिनती के साथ-साथ यह आईपी ट्रैफ़िक के 1500 बाइट्स का योग है, जो कि ईथरनेट आमतौर पर समर्थन करता है।

अगले 2 पैकेट क्लाइंट हैलो और पावती है जो इसे सर्वर द्वारा प्राप्त किया गया था।

अंतिम 2 पैकेट वह जगह है जहां चीजें दिलचस्प होती हैं। डिफ़ॉल्ट रूप से tcpdumpसापेक्ष अनुक्रम संख्या दिखाता है, जो इस मामले में कैप्चर को पढ़ना आसान बनाता है। सर्वर से पैकेट में यह दिलचस्प हिस्सा है seq 2857:3678। हम से एक कूद को देखने 1के लिए 2857जो साधन 2856 बाइट्स जो ग्राहक अभी तक प्राप्त नहीं किया था के अंतराल नहीं है। 2856 बाइट्स 1428 बाइट्स के दो पैकेट से मेल खाती है। 1440 और 1428 के बीच का अंतर टाइमस्टैम्प विकल्प का आकार है।

इसलिए, सर्वर ने 3 पैकेटों में सर्वर हेल्लो स्प्लिट भेजा। लेकिन पहले दो नेटवर्क के लिए बहुत बड़े थे और क्लाइंट को डिलीवर नहीं किए गए थे।

क्लाइंट से सर्वर तक के अंतिम पैकेट में हम इसे देखते हैं sack 1 {2857:3678}। यह क्लाइंट द्वारा सर्वर को सूचित करने के लिए भेजा गया एक चयनात्मक पावती है कि डेटा में एक अंतर है जो इसे अब तक प्राप्त हुआ है।

संभवतः सर्वर दो खोए हुए पैकेट को बार-बार भेजता रहता है। लेकिन कोई फर्क नहीं पड़ता कि कितनी बार यह उन्हीं दो पैकेटों को वापस ले लेता है जो वे नेटवर्क के लिए बहुत बड़े होते हैं। और शायद पथ पर एक राउटर सर्वर को एक त्रुटि संदेश भेजता है यह सूचित करता है कि पैकेट बहुत बड़े हैं और छोटे पैकेटों में वापस ले जाने की आवश्यकता है।

यदि सर्वर को वे त्रुटि संदेश मिले, तो वह पैकेट को आवश्यकतानुसार छोटा कर देगा। और यह छोटे पीएमटीयू को ऐसे याद रखेगा कि बाद के अनुरोधों पर इसे इस खोज चरण को दोहराना न पड़े।

इस सब के लिए एक संभावित व्याख्या यह है कि आपके पास एक गलत फ़ायरवॉल है जो सभी त्रुटि संदेशों को आपके सर्वर को सूचित करता है जो डेटा को छोटे पैकेट में फिर से जमा करने की आवश्यकता है।


1
दिलचस्प। धन्यवाद! उन त्रुटि संदेश - मुझे लगता है कि यह ICMP प्रोटोकॉल है ... क्या इसका परीक्षण करने का कोई तरीका है? सर्वर पर फ़ायरवॉल, और सर्वर और इंटरनेट के बीच फ़ायरवॉल, सभी ICMP संचार के लिए खुला होना चाहिए।
j.kaspar

@ j.kaspar फायरवॉल क्या हैं? वे कैसे कॉन्फ़िगर किए गए हैं? आपने उनका परीक्षण कैसे किया?
माइकल हैम्पटन

@Michael Hampton सर्वर पर सीधे iptables फ़ायरवॉल स्थापित है। दूसरा एक डेटासेंटर का है और मैं इसका प्रबंधन करने में सक्षम हूं। मैं वास्तव में ICMP का परीक्षण करना नहीं जानता। लेकिन दोनों पर नियम ICMP के लिए कहीं भी <-> कहीं भी सेट किए गए हैं
j.kaspar

1
@ j.kaspar लिनक्स सर्वर पर, आउटपुट लाइनों या आउटपुट लाइनों में सम्मिलित करने के traceroute6 --mtu www.google.comलिए प्रयास करें और देखें F=####जहां कोई प्रतिक्रिया बिल्कुल नहीं आती है। दूसरे विचार पर, बस इसे चलाएं और आउटपुट के साथ अपने प्रश्न को संपादित करें।
माइकल हैम्पटन

@ मिचेल हैम्पटन किया। हालांकि मुझे यकीन नहीं है कि परिणाम की व्याख्या कैसे करें। इसका मतलब यह है, कि संचार दूसरे हॉप बिल्कुल नहीं पारित करता है?
j.kaspar

1

मैं @kasperd से सहमत हूं कि यह MTU मुद्दा है। उदाहरण के लिए, डिफ़ॉल्ट रूप से wget -6 -O/dev/null http://www.ekasparova.euकाम नहीं करेगा (यह https://www.babysoul.cz/एक ही आईपी पर कम पुनर्निर्देशित होगा , लेकिन फिर अगले बड़े पैकेट पर लटका होगा)। फिर मैंने आपके होस्ट के लिए MSS को कम कर दिया:

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

और उसके बाद wgetसामान्य रूप से काम करता है। तो, यह एमटीयू मुद्दा है। mtr -6 -n --psize 1410 www.ekasparova.eu(जो काम करता है) के आउटपुट की तुलना करने से mtr -6 -n --psize 1411 www.ekasparova.euसंकेत मिलता है कि समस्या आपके होस्ट 2a04:f310:100:3:f816:3eff:fea3:4553या उसके अपस्ट्रीम पर है2a04:f310:100::125

आप वर्कअराउंड के रूप में क्या कर सकते हैं (अपने अपस्ट्रीम से संपर्क करने से अलग):

टेस्ट किस पैकेट के आकार का है (यह wget -6 -O/dev/null http://v6.testmyipv6.com/MTUtest/1500.datसंभवत: आपके लिए काम नहीं करेगा, जबकि यह wget -6 -O/dev/null http://v6.testmyipv6.com/MTUtest/1000.datठीक काम करेगा), और फिर या तो:

  • (बदतर) डिफ़ॉल्ट IPv6 मार्ग (जैसा मैंने ऊपर किया था) के लिए अपने एमएसएस को क्लैंप करें। ध्यान दें कि केवल टीसीपी के लिए काम करेगा; उदाहरण के लिए यूडीपी डीएनएस पैकेट अभी भी टूट जाएगा, या
  • (बेहतर) अपने इंटरफ़ेस को कम करें MTU (उदाहरण के लिए ifconfig eth0 mtu 1200)। यह सभी पैकेट के लिए काम करना चाहिए। समस्या यह है कि अगर रास्ते में कुछ भी कम MTU है, तो आप उनके साथ संवाद करने में सक्षम नहीं होंगे। और एमटीयू को कम करने से कुछ हद तक कम प्रदर्शन होगा (यह एक बड़ी बात नहीं है जब तक कि आप आमतौर पर एक बड़ी साइट न हों)
  • (सबसे अच्छा) IPv6 फ़ायरवॉल को हटाने का प्रयास करें (आपका, और आपके ऊपर) मदद करता है; और जब आपको पता चले कि यह करता है, तो पीएमटीयू की खोज को तोड़े बिना इसे एक साथ वापस लाने की कोशिश करें, जब तक कि आपको समस्याग्रस्त लाइन न मिल जाए। समस्या यह है कि आपके आईएसपी से अधिक काम और सहयोग की आवश्यकता है (और फ़ायरवॉल खोलना आपको समय के लिए असुरक्षित बना सकता है)।

डिफ़ॉल्ट मार्ग पर एमएसएस को कम करना एक बुरा सुझाव नहीं है। यह कुछ ऐसा है जो मैं उत्पादन वातावरण में अन्य लोगों के नेटवर्क में एमटीयू समस्याओं के आसपास काम करने के लिए कर रहा हूं। मैं 1000 के रूप में कम के रूप में जाना नहीं है, हालांकि। 1220, 1280 बाइट के भीतर पूरे पैकेट को रखने के लिए काफी छोटा है जिसे IPv6 एंड-टू-एंड काम करने की गारंटी देता है। हालाँकि प्रश्न में समस्या को डिफ़ॉल्ट मार्ग पर MSS को कम करके कम नहीं किया गया होगा क्योंकि यह केवल एक दिशा में पैकेट के आकार को प्रभावित करता है।
कैस्परड

एक व्यक्ति ट्रांजिट में एमएसएस का प्रबंधन कर सकता है (इसके साथ ऐसा करना संभव होना चाहिए ip6tables)। आप ऐसा करने वाले नहीं हैं, लेकिन यह पता चला है कि MSS को अधिकतम 1220 में स्थानांतरित करने के लिए MTU समस्याओं के लिए एक बहुत ही कुशल समाधान है। और यह एंडपॉइंट या किसी भी इनबेटीन राउटर पर किया जा सकता है, और यह दोनों दिशाओं में टीसीपी के लिए एमटीयू समस्याओं को कम करेगा।
कैस्परड

एमटीयू को एक समापन बिंदु पर कम करने से निवर्तमान एमएसएस पर प्रभाव पड़ेगा और यह आपके द्वारा भेजे गए पैकेटों को भी सीमित करेगा भले ही आपको उच्चतर एसआरएस प्राप्त हो। इस प्रकार एक बिंदु पर कम MTU दोनों दिशाओं में TCP के लिए MTU मुद्दों को कम कर सकता है। हालांकि यह केवल एक दिशा में यूडीपी के लिए मदद करता है। और रूटर्स इनबेटन पर MTU को कम करना MTU समस्या को कम कर सकता है या परिस्थितियों के आधार पर नई MTU समस्याओं को पेश कर सकता है। इसलिए एमएसएस को कम करना एक शमन है जो संभावित रूप से नई एमटीयू समस्याओं को पेश किए बिना मदद कर सकता है।
कैस्परल्ड

@kasperd को दोनों तरफ से ट्रैफ़िक के लिए MSS को एक तरफ से कम करने का काम नहीं करना चाहिए, क्योंकि यह 3way हैंडशेक के दौरान पूरे TCP सत्र के लिए (कम MSS के रूप में) बातचीत की जाती है? एमटीयू को कम करने और इसे आने वाले यूडीपी को तोड़ने के लिए, जबकि यह सच है कि यह समस्या का समाधान नहीं करेगा, इससे अतिरिक्त समस्याएं पैदा नहीं होनी चाहिए क्योंकि बड़े यूडीपी वैसे भी काम नहीं करेंगे (क्योंकि उनका टूटा हुआ अपस्ट्रीम उन्हें वैसे भी गिरा देगा) ।
मतिजा नलिस

1
दो दिशाओं के लिए स्वतंत्र रूप से एमएसएस पर बातचीत की जाती है। प्रत्येक पक्ष को पता है कि वे अधिकतम भेजने के लिए तैयार हैं और दूसरे छोर को बताएं कि वे अधिकतम प्राप्त करने के लिए तैयार हैं। जब आप सेट करते हैं advmssतो आप केवल उन खंडों के आकार को प्रभावित करते हैं जिन्हें आप प्राप्त नहीं करने वाले खंडों को प्राप्त करने जा रहे हैं। अधिकतम जिसे आप भेजने को तैयार हैं, उसका संचार नहीं किया गया है - क्योंकि उसकी कोई आवश्यकता नहीं है। दोनों एमटीयू से अपना डिफ़ॉल्ट मूल्य प्राप्त करते हैं, दोनों में से एक के साथ ओवरराइड किया जा सकता है advmss। मैं दूसरे को ओवरराइड करने के लिए एक रूटिंग प्रविष्टि के लिए एक रास्ता नहीं जानता, लेकिन अगर कोई रास्ता है, तो मैं सीखना चाहूंगा।
कास्परड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.