私のインターネット接続は、以前はプロバイダーへの直接LAN接続でした。当時は、WindowsとUbuntuの両方ですべてが正常にロードされていました(デュアルブート)。しかし、しばらく前に、ユーザー名とパスワードを使用してダイヤル(PPPoE)する必要がありました。ゲートウェイ、サブネットマスク、IP、DNSサーバーはすべて同じままでした。しかし、それ以来、Windowsでそのような問題が発生していなくても、Ubuntuで特定のWebサイトを閲覧することができませんでした。 Webサイトの例としては– Oviのサインインページ(share.ovi.comは正常に読み込まれ、nokia.comは正常に読み込まれます)、Live Mail(Chrome(ium)とOperaで動作しますが、Firefox(3.6と4の両方)では動作しません)MozillaアドオンのWebサイトおよびその他のランダムなWebサイト。
ロードされない一部のWebサイトはタイムアウトメッセージを表示し、一部のWebサイト(mozアドオンなど)では、ブラウザーは終了せずにロードを試み続けます(私は何時間もそのように残しましたが、何も変わったことに気づきませんでした起こる)。
DNSサーバーをパブリックサーバーに変更してみました。 Fedora LiveCDから起動してみて、 DNSをそれら(さらにはOpenDNSのもの)に変更しますが、まったく同じことが起こります。この問題を引き起こしているLinux自体の構成の本質的に何が間違っている可能性がありますか?
なぜこれが起こっているのか、そしてどのように修正できるのか誰かが知っていますか?
注:この質問はSUにクロスポストされていますが、回答は得られていません。
更新: ここで、他の誰かが同様の問題を抱えていることを確認し、 NetworkManager.confを配置することで問題を解決しました。 /etc/NetworkManager
内のファイル 。そのファイルには何が必要ですか?
承認された回答:
MTUの症状があります 問題:一部のTCP接続がフリーズし、特定のコマンドまたはURLに対してほぼ再現性がありますが、全体的なパターンを簡単に識別できません。明らかな症状は、インタラクティブなsshセッションは正常に機能しますが、ファイル転送はほとんどの場合失敗することです。さらに、pppoeは、ホームユーザーにとってMTU問題の最大の原因です。そこで、MTUチェックを処方します。
それはなんですか? m aximum t 送信u nitは、ネットワークリンク上のパケットの最大サイズです。 MTUは、輸送媒体ごとに異なります。有線イーサネットとwifi(802.11)には異なるMTUがあり、ATMリンク(長距離インフラストラクチャの大部分を構成する)にはそれぞれ独自のMTUがあります。 PPPOEはカプセル化されたプロトコルです。つまり、すべてのパケットは数バイトのヘッダーとそれに続く基になるパケットで構成されます。したがって、最大パケットサイズはヘッダーのサイズだけ小さくなります。 IPを使用すると、ルーターは、パケットがネクストホップには大きすぎることを検出した場合にパケットをフラグメント化できますが、これが常に機能するとは限りません。理論的には、適切なMTUが自動的に検出されるはずですが、これも常に機能するとは限りません。特にグーグルは、Network ManagerがMTUディスカバリーから取得したMTU情報に常に適切に対応するとは限らないことを示唆していますが、影響を受けるバージョンや問題のあるユースケースはわかりません。
関連:Linux – Debianパッケージのインストールからsystemd.serviceを有効にするための推奨/慣用的な方法?
測定方法。 tracepath
がある場合 Linux iputilsから、tracepath 8.8.8.8
を実行します GoogleのDNSサーバーへのパスを介してMTUを確認します。
ご使用のバージョンのtraceroute
の場合 --mtu
があります オプションで、traceroute -n --mtu 8.8.8.8
を実行します 。
その他のオプションについては、「私と宛先IP間のMTUの検出」を参照してください。
自動化されたツールがないため、手動で測定できます。特定のサイズのpingパケットを、それらに応答する外部ホストに送信してみてください。 ping -c 1 -s 42 8.8.8.8
(Linuxの場合、他のシステムでは、ping
のドキュメントを調べてください 指図)。パケットは42の十分に小さい値で通過する必要があります(42が機能しない場合は、何かがpingをブロックしています)。値が大きい場合、パケットは通過しません。インフラストラクチャの制限部分がローカルイーサネットネットワークである場合、1464は一般的な最大値です。運が良ければ、大きすぎるパケットを送信すると、Frag needed and DF set (mtu = 1492)
のようなメッセージが表示されます。 。運が悪ければ、最大値が見つかるまで値を試してから、28(-s
)を追加します。 ペイロードサイズを指定し、それに加えて28バイトのヘッダーがあります。
UbuntuフォーラムでMTUとRWINを使用してインターネット接続を最適化する方法も参照してください。
設定方法 (1454を決定したMTUに置き換え、eth0
ネットワークインターフェイスの名前で)
- 1回限りの場合(Linux):
ifconfig eth0 mtu 1454
を実行します - 永続的(Network Managerを使用していない場合はDebianおよびUbuntuなどの派生物):
/etc/network/interfaces
を編集します 。ネットワークインターフェイスのエントリの直後(iface eth0 …
の後) ディレクティブ)、pre-up ifconfig $IFACE mtu 1454
で行を追加します 。または、IPアドレスが静的な場合は、mtu 1454
を追加できます。iface eth0 inet static
のパラメータ ディレクティブ。 -
恒久的に(DebianおよびUbuntuなどの派生物、Network Managerの有無にかかわらず):
/etc/network/if-pre-up.d/mtu
というスクリプトを作成します 次の内容で、ワールド実行可能にします(chmod a+rx
):#!/bin/sh ifconfig $IFACE mtu 1454
その他のリソース
- 信頼性の低い接続を診断する方法は? (特にMike Penningtonの回答)ここで説明する単純な測定と制限のアプローチが機能しない場合は、役立つ可能性があります。