
slack.comのようないくつかのサイトにアクセスできません。調べてみたところ、Ubuntu 16.04システムにMTUに関連する問題があることがわかりました。いくつかのpingリクエストを試したところ、サイズが1497以上のデータパケットが送信されていないことがわかりました。そこで、MTUを再設定するために、
sudo ifconfig enp7s0 mtu 1497
しかし、このコマンドを実行するとすぐにインターネット接続が切断され、それ以上接続できなくなります。私は DSL 接続を使用しています。
この問題を解決する方法についていくつか提案をお願いします。
答え1
再起動して元の MTU サイズ (1500) に戻すか、... を使用して設定し、 sudo ifconfig enp7s0 mtu 1500
netaccess を復元します。
サポートされていない、または誤って構成された VLAN 設定がない限り、MTU は問題になりません。MTU は、ネット内の各コンピューターとルーターのセット間でネゴシエートされ、パッケージは MTU に適合するサイズに分割されて送信されます。
答え2
問題は、DSL 接続の MTU 設定にあります。
Ubuntu のネットワーク構成には MTU 設定があり、ルーターには WAN MTU 設定があります。
DSL の場合、一般的な MTU 設定は 1492 です。まずはこの値を試してみて、Web サイトにアクセスできるかどうかを確認してください。
正しい設定を決定するには、すべての MTU 設定を 1500、VPN をオフにして開始します (VPN には別のテストが必要です)。
ターミナルで:
ping [-c count] [-M do] [-s packet_size] [host]
使用されるオプションは次のとおりです。
c count
: pingする回数M hint
: パス MTU 検出戦略を選択します。do
(ローカルであっても断片化を禁止する)、want
(PMTU 検出を実行し、パケット サイズが大きい場合はローカルで断片化する)、またはdont
(DF フラグを設定しない) のいずれかになります。s packet_size
: 送信するデータバイト数を指定します。
常に 1472 から始めて、毎回 10 ずつ減らしていく必要があります。応答を受け取ったら、断片化されたパケットを取得するまで 1 ずつ増やします。その値 (最後の有効な値) を取得し、さまざまな TCP/IP ヘッダーを考慮して値に 28 を追加します。たとえば、1452 が適切なパケット サイズ (ping に対して最初に ICMP 応答を受け取った値) だったとします。実際の MTU サイズは 1480 で、これは作業しているネットワークに最適なサイズです。
ping -c 4 -M do -s 1472 8.8.8.8 # this will probably show fragmentation
ping -c 4 -M do -s 1462 8.8.8.8 # may show fragmentation
ping -c 4 -M do -s 1452 8.8.8.8 # no fragmentation?
ping -c 4 -M do -s 1453 8.8.8.8 # still no fragmentation?