NGINX SSLはIPv6を介して応答しません


10

nginxがインストールされているDebianサーバーで、HTTPSおよびIPv6を介してWebサーバーから応答がありません。HTTPは正常に動作します。

  • netstatは、IPv6アドレスでリッスンしているポート443を報告します
  • ファイアウォールが開いている、ipv6scanner.comがポート443が開いていると報告する
  • ローカルで(ターミナルを介して)wgetとcurlが正しい応答を受信するため、nginxの設定はOK
  • nginx error.logからのエラーの兆候なし
  • 失敗したときにaccess.logにレコードがないため、通信がWebサーバーに到達していない可能性があります
  • DNSは問題ありません。変換は機能し、IPアドレスに直接アクセスしても接続は機能しません

「外部」(ネットワークの外部、インターネットから)からの接続はすべて失敗します(Webブラウザ、Telnet、ipv6-test.com、curl ...)。全く応答がありません。

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-save出力(ローカルファイアウォール):

# 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セグメント上にあるコンピューターから?
IceMage 2018年

1
@IceMage外部はインターネットからの意味です。ネットワーク外。明確にするために質問を編集します
j.kaspar

サーバーにファイアウォールを設定しましたか?サーバーがLinuxを実行している場合は、の出力ip6table-saveが適切です。
kasperd

@kasperd私はicmp関連のすべてのルールを質問に追加しました
j.kaspar 2018年

@ j.kaspar ip6tables-save見たかった出力です。そのコマンドは完全なルールを出力します。
kasperd 2018年

回答:


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バイトのTCPペイロードでパケットを受信し、ヘッダーをカウントして、合計で1500バイトのIPトラフィックになることができます。これは、イーサネットが一般的にサポートしているものです。

次の2つのパケットは、クライアントのHelloと、サーバーが受信した確認応答です。

最後の2パケットは、物事が面白くなる場所です。デフォルトでtcpdumpは相対シーケンス番号が表示されます。この場合、キャプチャが読みやすくなります。サーバーからのパケットで、これは興味深い部分seq 2857:3678です。から1へのジャンプが見2857られます。これは、クライアントがまだ受信していない2856バイトのギャップがあることを意味します。2856バイトは、1428バイトの2つのパケットに対応します。1440と1428の違いは、タイムスタンプオプションのサイズです。

したがって、サーバーは3つのパケットに分けてサーバーhelloを送信しました。しかし、最初の2つはネットワークには大きすぎて、クライアントに配信されませんでした。

クライアントからサーバーへの最後のパケットで、これがわかりますsack 1 {2857:3678}。これは、これまでに受信したデータにギャップがあることをサーバーに通知する、クライアントから送信される選択的な確認応答です。

おそらく、サーバーは2つの失われたパケットを繰り返し送信し続けます。しかし、同じ2つのパケットを何度再送しても、ネットワークには大きすぎるままです。また、パス上のルーターは、パケットが大きすぎて小さいパケットで再送信する必要があることを通知するエラーメッセージをサーバーに送り返します。

サーバーがこれらのエラーメッセージを受信した場合、サーバーは必要に応じてより小さなパケットを再送信します。また、後続のリクエストでこの検出手順を繰り返す必要がないように、小さいPMTUを記憶します。

これのすべての考えられる説明は、サーバーがより小さなパケットでデータを再送信する必要があることを通知するすべてのエラーメッセージをドロップする、誤って構成されたファイアウォールがあることです。


1
面白い。ありがとうございました!これらのエラーメッセージ-ICMPプロトコルだと思います...テストする方法はありますか?サーバー上のファイアウォール、およびサーバーとインターネット間のファイアウォールは、すべてのICMP通信に対して開いている必要があります。
j.kaspar

@ j.kasparファイアウォールとは何ですか?それらはどのように構成されますか?それらをどのようにテストしましたか?
マイケルハンプトン

@MichaelHamptonサーバーに直接インストールされているiptablesファイアウォールがあります。2つ目はデータセンターに属しており、そのルールを管理できます。ICMPをテストする方法がわかりません。しかし、両方のルールはどこにも設定されている< - >どこでもICMPに許可
j.kaspar

1
@ j.kaspar Linuxサーバーで、出力行に挿入されているか、応答がまったく返されない出力行traceroute6 --mtu www.google.comを探してみてくださいF=####。考え直して、それを実行し、出力で質問を編集してください。
マイケルハンプトン

@MichaelHampton完了しました。ただし、結果の解釈方法はわかりません。それは、通信が2番目のホップをまったく通過しないことを意味しますか?
j.kaspar 2018年

1

MTUの問題だと@kasperdに同意します。たとえば、デフォルトでwget -6 -O/dev/null http://www.ekasparova.euは機能しません(https://www.babysoul.cz/同じIP へのリダイレクトが短くなりますが、次に大きなパケットでハングします)。次に、ホストのMSSを強制的に削減しました。

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

その後はwget正常に動作します。つまり、MTUの問題です。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正常に動作します)。次に、次のいずれかを実行します。

  • (悪い)MSSをデフォルトのIPv6ルートにクランプする(上記で行ったように)。はTCPに対してのみ機能することに注意してください。たとえば、UDP DNSパケットは引き続き壊れます、または
  • (より良い)インターフェースMTUを減らします(たとえば ifconfig eth0 mtu 1200)。これはすべてのパケットで機能するはずです。問題は、途中のMTUがさらに低い場合、それらと通信できないことです。また、MTUを下げると、パフォーマンスが多少低下します(通常、大規模なサイトでない限り、それほど大きな問題ではありません)。
  • (ベスト)IPv6ファイアウォール(自分のものと自分のアップスチーム)を削除することが役立つ場合は試してください。そして、問題が発生した場合は、問題のある行が見つかるまで、PMTUの検出を中断せずに、段階的に元に戻してみてください。問題は、ISPによる追加の作業と協力を必要とすることです(ファイアウォールを開くと、当面の間、脆弱になる可能性があります)。

デフォルトルートでMSSを削減することは悪い提案ではありません。これは、他の人のネットワークでMTUの問題を回避するために本番環境で私が行っていることです。私は1000ほど低くはありません。1220は、IPv6がエンドツーエンドで機能することを保証する1280バイト以内に完全なパケットを保持するのに十分なほど小さいです。ただし、問題の問題は、一方向のパケットサイズにのみ影響するため、デフォルトルートのMSSを削減しても軽減されません。
kasperd

移動中にMSSを壊すことができます(で可能になるはずですip6tables)。これを行うことは想定されていませんが、送信中にMSSを最大1220にクランプすることは、MTUの問題に対する非常に効率的な回避策であることがわかります。また、エンドポイントまたは中間のルーターで実行でき、双方向のTCPのMTU問題を軽減します。
kasperd

エンドポイントのMTUを下げると、発信MSSに影響し、より高いMSSを受信した場合でも、送信するパケットが制限されます。したがって、エンドポイントのMTUが低いほど、双方向のTCPのMTU問題を軽減できます。ただし、一方向のUDPにのみ役立ちます。また、中間のルーターのMTUを減らすと、状況に応じてMTUの問題を軽減したり、新しいMTUの問題を引き起こしたりする可能性があります。したがって、MSSを削減することは、新しいMTU問題を潜在的に発生させずに役立つ1つの緩和策です。
kasperd

@kasperdは、3ウェイハンドシェイク中にTCPセッション全体で(より低いMSSとして)ネゴシエートされるため、片側のMSSを両方の方法で流れるトラフィックに対して下げるべきではありませんか?MTUを下げて着信UDPを壊すことについては、それは問題を解決しませんが、大きすぎるUDPは機能しないため、追加の問題が発生することはありません(破損したアップストリームがとにかくドロップするため) 。
Matija Nalis

1
いいえ。MSSは2つの方向で独立して交渉されます。各側は、送信する最大値を知っており、受信する最大値を相手側に伝えます。設定advmssすると、送信するセグメントではなく、受信するセグメントのサイズにのみ影響します。送信する意思のある最大値が通知されていません-必要がないためです。どちらもMTUからデフォルト値を取得します。2つのうちの1つはでオーバーライドできますadvmss。ルーティングエントリが他のエントリをオーバーライドする方法はわかりませんが、方法がある場合は、学びたいと思います。
kasperd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.