Linuxディストリビューションのping=20秒、Windows/Androidのping=即時。なぜ?

Linuxディストリビューションのping=20秒、Windows/Androidのping=即時。なぜ?

これがLinuxネットワーキング愛好家にとって興味深い質問であることを願っています。とにかく、40Mbit/sの帯域幅を提供するISPに接続された新しい広帯域モデム/ルーターがあります。ただし、Linuxディストリビューションではブラウザを使用して最初にWebサイトに接続するのに20秒かかりますが、Android携帯電話またはWindowsではWebサイトが期待どおりにすぐに開きます。 pingコマンド(ドメイン名を含む)また、すべての出力(IPアドレスを含む)を表示するのに20秒かかります。 pingに集中しましょう:

  • IPアドレスを介してpingを行うには問題はありません。ドメイン名でpingするときにのみ20秒遅れます

  • ライブLinux USBで試しても、20秒のping遅延が発生します。ManjaroかLinux Mintか

  • Linux Liveを起動している他のコンピュータで試しても遅延が発生する

  • Windowsを実行しているのと同じノートブックでpingを実行すると、ほとんどすぐに結果が返されます。一度も訪れたことのないドメインも同様です。

  • Androidを実行しているPixel 2XL携帯電話の端末でpingを実行すると、すぐに結果が返されます。

  • Wi-Fi経由またはEthernetケーブルを介してラップトップをルーターに接続すると、問題が発生します。

  • 同じノートブックに同じLinuxディストリビューションをモバイルホットスポットに接続すると、いいえ問題がある

  • IPv4を強制するPing -4は役に立ちません。遅延時間はまだ20秒です。

  • Manjaroフォーラムのシニアメンバーが提案したように、openresolvからsystemd-resolvedに移行しようとしましたが、これにより待ち時間が2分以上に増加し、変更をロールバックする必要がありました。

  • pingについて説明したので、LinuxでFirefoxがどのように機能するかを説明します。どのウェブサイトでも初めて訪問するのに20秒かかりますが、その後は一度も行ったことのないサイトを訪れても期待通りに開きます。 Firefoxを閉じて新しいインスタンスを開くと、数秒間経っても、最初にアクセスしたWebサイトにアクセスするには20秒待ってください。 Googleでも同じです。

ご存知のように、これは「興味深い」質問ではなく、やや混乱し、私にとってはほとんど衝撃的な質問です。問題は特にLinuxとこの新しいルーターの組み合わせにありますが、どこで解決策を見つけるべきかわかりません。もちろん、Manjaroフォーラムで長い間議論をしましたが、行き詰まった路地に至りました。

読んでくれてありがとう!最高 - ラム

インターネット情報

ルーター内部LANIPv4アドレス:192.168.9.1

プライマリDNS:125.22.47.125、セカンダリDNS 203.145.160.4

(また、基本DNSとして8.8.8.8を試しました)

私のラップトップ:192.168.9.6

*例とテスト出力:

次のコマンドを入力し、20〜30秒後に「PING」で始まる応答が表示されます。

[ramkumarr@RR-W520 ~]$ ping www.google.com
PING www.google.com (142.250.192.132) 56(84) bytes of data.
64 bytes from bom12s18-in-f4.1e100.net (142.250.192.132): icmp_seq=1 ttl=118 time=25.1 ms. 
[ramkumarr@RR-W520 ~]$ ping -n www.google.com
PING www.google.com (142.250.192.100) 56(84) bytes of data.
64 bytes from 142.250.192.100: icmp_seq=1 ttl=59 time=29.4 m
---> Again a 20s delay before any output appears.

Windowsでは、応答はほぼ即時です(0.5秒未満)。

Pinging www.google.com [142.250.182.36] with 32 bytes of data:
Reply from 142.250.182.36: bytes=32 time=11ms TTL=118

Linuxでは以下のIPアドレスを使用しますが、ドメイン名は使用しません。www.google.com:

[ramkumarr@RR-W520 ~]$ ping -W 0.001 8.8.8.8
PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data.

/etc/nsswitch.confの内容

# Name Service Switch configuration file.
# See nsswitch.conf(5) for details.

passwd: files mymachines systemd
group: files [SUCCESS=merge] mymachines systemd
shadow: files

publickey: files

hosts: files mymachines mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns mdns4 myhostname
networks: files

protocols: files
services: files
ethers: files
rpc: files

netgroup: files

nslookupの出力www.google.com- LinuxとWindowsの両方でタイムアウトで終了します。。 Linuxでは、「アドレス:142.250.192.132」行までの出力は一時的で、その後に遅延が発生した後にタイムアウトメッセージが表示されます。

[ramkumarr@RR-W520 ~]$ nslookup www.google.com
Server:         192.168.9.1
Address:        192.168.9.1#53

Non-authoritative answer:
Name:   www.google.com
Address: 142.250.192.132
;; connection timed out; no servers could be reached

[ramkumarr@RR-W520 ~]$ 

...そしてWindowsでは

C:\Users\ramku>nslookup www.google.com
Server:  TJ2100N.Home
Address:  192.168.9.1

DNS request timed out.
    timeout was 2 seconds.
Non-authoritative answer:
DNS request timed out.
    timeout was 2 seconds.
Name:    www.google.com
Address:  142.250.195.100

/etc/resolv.confの内容

# Generated by NetworkManager
search Home
nameserver 192.168.9.1

Windowsで

C:\Users\ramku>ipconfig /all | find /i "dns servers"
   DNS Servers . . . . . . . . . . . : 192.168.9.1

C:\Users\ramku>

Linuxの場合:

[ramkumarr@RR-W520 ~]$ sudo iptables -nvL
[sudo] password for ramkumarr: 
Chain INPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain FORWARD (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         

Chain OUTPUT (policy ACCEPT 0 packets, 0 bytes)
 pkts bytes target     prot opt in     out     source               destination         
[ramkumarr@RR-W520 ~]$ 
[ramkumarr@RR-W520 ~]$ ip route get 192.168.9.1
192.168.9.1 dev wlp3s0 src 192.168.9.10 uid 1000 
    cache 
[ramkumarr@RR-W520 ~]$
--> 192.168.9.10 is my laptop ip address

回避策/ソリューション?以下の提案された答えの1つとして、Wi-Fiの[基本設定]タブでクライアントのDNSを設定すると、ラップトップはGoogle DNSにアクセスしますが、設定がない場合、ラップトップは次のように192.168.9.1をDNSとして報告します。

WiFi環境設定でDNSを「自動(アドレスのみ)」に設定します。

[ramkumarr@RR-W520 ~]$ ( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS
IP4.DNS[1]:                             8.8.8.8
IP4.DNS[2]:                             8.8.4.4

クライアントが「自動」状態で、DNSが指定されていません。

[ramkumarr@RR-W520 ~]$ ( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS
IP4.DNS[1]:                             192.168.9.1

答え1

一般的なテストシナリオでは、Linux Mintを強制的に使用しようとします。Google パブリック DNS:

  • デフォルトのDNSリゾルバー:8.8.8.8(IPv4)
  • セカンダリDNSリゾルバ:8.8.4.4(IPv4)

次のように比較的簡単にこれを実行できます。

  1. Wi-Fi / LANアイコンを右クリックします。

    ここに画像の説明を入力してください。

  2. メニューで、ネットワーク接続をクリックします。

    ここに画像の説明を入力してください。

  3. 対応するWiFi / LANをダブルクリックします。

    ここに画像の説明を入力してください。

  4. 接続設定で次に進みます。IPv4設定ブランド:

    ここに画像の説明を入力してください。

  5. メソッドをDHCPに変更住所のみをクリックして、記載されているDNSサーバーを入力します。

    ここに画像の説明を入力してください。

  6. [保存]をクリックしてWiFi / LANリンクをオフまたはオンにします。


最後に、小さな実験が正常に完了したことを確認するには、次をコピーして端末に貼り付けます。

( nmcli dev list || nmcli dev show ) 2>/dev/null | grep DNS

現在使用中のDNSを表示します。

IP4.DNS[1]:                             8.8.8.8
IP4.DNS[2]:                             8.8.4.4

それでは、pingドメイン名を試してみてください。


婦人声明

したがって、私はGoogle製品の使用を直接推奨したり、他の人にはお勧めしません。

この回答はテスト目的でのみ使用されます。私は同僚にこれらのDNSリゾルバをお勧めしません。すべての人に例が必要な場合はお勧めします。1.1.1.1Cloudflare DNSサービスアドレス:

IPv4

  • 基本的な:

    1.1.1.1
    
  • 中高等グレード:

    1.0.0.1
    

IPv6

  • 基本的な:

    2606:4700:4700::1111
    
  • 中高等グレード:

    2606:4700:4700::1001
    

Cloudflare DNSリゾルバはプライバシーに焦点を当てており、ある点でははるかに安全です。詳細については、ここをクリックしてください。

また、本人は上記の会社と本人との間のいかなる提携も否定します。

答え2

あなたのDNSサーバー192.168.9.1はDNS要求を処理しません。これはWindowsおよびLinuxシステムで見ることができます(Androidは無視されます)。

Windows:

nslookup www.google.com
Server:  TJ2100N.Home
Address:  192.168.9.1

DNS request timed out.
    timeout was 2 seconds.
Non-authoritative answer:
DNS request timed out.
    timeout was 2 seconds.
Name:    www.google.com
Address:  142.250.195.100

Linux:

nslookup www.google.com
Server:         192.168.9.1
Address:        192.168.9.1#53

Non-authoritative answer:
Name:   www.google.com
Address: 142.250.192.132
;; connection timed out; no servers could be reached

どちらの場合も、信頼できない応答の後にタイムアウトが表示されることがあります。これは各システムのローカルDNSキャッシュで発生し、Time-to-Live(TTL)を超えるレコードで発生した可能性があります。

以前に参照されたことのないホストを見つけようとすると、WindowsまたはLinuxベースのシステムの両方が名前をアドレスに解決できないことが予想されます。

192.168.9.1のサーバーを調査し、これが問題であるため、DNS要求を提供しない理由を特定する必要があります。

答え3

こことManjaroフォーラムで非常に有用な入力で学んだすべての知識のおかげで、ISPに問題を提起してルーターを変更することができました。この回答のコメントは、他の回答の説明を補完します。

この問題は、192.168.9.1 のルータ ファームウェアが 192.168.9.1 の DNS 要求を処理する方法に関連しているようです。 WindowsがDNSアドレスを取得すると、これをDNSリゾルバキャッシュにキャッシュするようです(私の考えでは)、Windowsは明らかに大丈夫です。ただし、Linuxはここで説明されているようにOSレベルのDNSキャッシュを実行していないようです。https://stackoverflow.com/questions/11020027/dns-caching-in-linux1なので、ping要求があるたびにルーターは192.168.9.1をDNSサーバーと見なすため、20秒間中断されます。ルーターのファームウェアが正確にどこで悪意のある動作を示しているかは不明ですが、クライアント側にGoogle DNSサーバーを追加すると悪意のあるファームウェアを効果的にバイパスできることは明らかです。ルータを変更すると問題が解決しました。

関連情報