web-dev-qa-db-ja.com

Debianでのネットワークのトラブルシューティング方法

今日、Linuxボックスを再起動しました。再起動後、Linuxボックスにはネットワーク接続がありません。

これが私がこれまでに試したことです:

  1. 他のコンピューターで動作する別のイーサネットケーブルを使用します。変化なし。

  2. NetworkManager(KDE)で、有線ネットワーク接続を削除して再作成します。うまくいきませんでした。画面の右下隅にシステム通知がまだ表示されます

    Network Interface
    Connection New Wired Connection failed
    
  3. > Sudo /etc/init.d/networking restart正常に再起動したようですが、まだネットワーク接続がありません。
  4. /etc/network/interfacesを確認しました。そこにある唯一のコードは、インターネットがそれがそうであるはずであると言っているものです:

    auto lo
    
    iface lo inet loopback
    
  5. GoogleのパブリックDNSサーバーの1つにpingを実行して、それがDNSの問題だけではないことを確認しました

    $ ping 8.8.8.8
    connect: Network is unreachable
    

    DNSの問題ではないようです。

  6. [〜#〜] new [〜#〜]ルーティングを修正します。 routeコマンドを使用して、ルーターのIPアドレスを指すデフォルトゲートウェイを追加しました(@chaosに感謝)。

    $ /sbin/route -n
    Kernel IP routing table
    Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
    0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth0
    
  7. [〜#〜] new [〜#〜] IPアドレスを持っているかどうかを確認

    $ /sbin/ifconfig -a
    eth0      Link encap:Ethernet  HWaddr 74:d4:35:5f:0b:09  
      inet6 addr: fe80::76d4:35ff:fe5f:b09/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:2999 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:1711 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:365026 (356.4 KiB)  TX bytes:0 (0.0 B)
      Interrupt:73 Base address:0xc000 
    
    
    lo        Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:4913 errors:0 dropped:0 overruns:0 frame:0
      TX packets:4913 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:1559718 (1.4 MiB)  TX bytes:1559718 (1.4 MiB)
    

IPv6アドレスはあるがIPv4アドレスはないようですか? eth0にはinet addr:で始まる行があるはずですが、ありません。

それでは、どうすればIPアドレスを取得できますか?

役立つかもしれない(またはそうでないかもしれない)いくつかの詳細情報を次に示します。

システム情報

$ uname -a
Linux mocha 3.2.0-4-AMD64 #1 SMP Debian 3.2.65-1 x86_64 GNU_Linux

イーサネットコントローラー

$ lspci | grep -i eth
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 06)

次に何をすればいいですか?

7
dinosaur

私は(このコマンドはすべてrootとして)ifconfig -aインターフェースにIPアドレスがあるかどうかを確認します。問題が見つからない場合は、問題があればnetstat -rnルートが正しいかどうかを確認します。もしそうなら、私はiptables -L許可していないファイアウォールルールがあるかどうかを確認します。すべて問題なければ、IPアドレスがルーターネットワークに属していない可能性があります。

3
YoMismo

connect: Network is unreachableは、そのネットワークへの欠落したルート(この場合はデフォルトのルート)を指します。

使用する:

route -n

現在のルーティングテーブルを表示します。次のようなルートがあるはずです。

Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         <gateway-ip>    0.0.0.0         UG    0      0        0 eth0

<gateway-ip>はルーター/ゲートウェイのIPアドレスです。また、システムに複数のネットワークインターフェイスがある場合は、Ifaceも異なる場合があります。

ただし、次のコマンドを使用して、デフォルトルートを手動で追加します。

route add default gw <gateway-ip>
3
chaos

ここでの問題は、有線インターフェース(eth0)にIPv4アドレスがないないことです。 IPv4ルートを手動で追加しましたが、IPv4アドレスがないと、(システムの)ソースIPにIPアドレスを割り当てることができないため、トラフィックをルーティングできません。

環境の詳細情報がわからない場合(DSL接続を使用していますか?企業ネットワークに参加していますか?だれがIPアドレスを提供する必要がありますか?)再起動する前に、静的に構成されたIPアドレスまたは機能しているものがあると思いますDHCPサーバー。静的に構成されたアドレス(構成には表示されません)があった場合、再起動後に失われました。

IPv6アドレスが表示されるのは、そのアドレスが「自動構成」されているためです。まだ設定していないため、有線インターフェースはローカルネットワークとの通信に使用できるインターフェースを作成するだけです。

入力したifconfig情報から、ネットワークカードがイーサネットパケットを受信して​​いるが送信していないようです。奇妙なことに、それはまた多くのドロップされたパケットを示しています。

手始めに、私はあなたが次のことをすることをお勧めします:

  1. ネットワークIPアドレス指定スキームの情報を取得します。ネットワーク管理者に問い合わせるか、ISPから提供された情報を確認してください。または、(太字の場合)tcpdump -ni eth0を実行してネットワーク上のネットワークトラフィックをリッスンし、システムが受信するパケットに基づいて内部ネットワークのアドレスを推測することもできます。

    これは非常に一般的であるため、これからはネットワークがプライベートIPアドレスの範囲にあると仮定します。現在、多くのネットワークは192.168.1.0/24のスペース範囲で事前構成されています。つまり、IPアドレスは192.168.1.1で始まり、192.168.1.254で終わります。

  2. Network Managerを使用して(つまり、デスクトップを使用して)、または/etc/network/interfacesを適切に構成して、静的IPアドレスとゲートウェイでネットワークインターフェイスを構成します。これは Debian Wiki で完全に説明されています。

    注:ip addr add 192.168.1.15 dev eth0; ip route add default via 192.168.1.1を実行して手動で構成することもできます。しかし、これはシステムの再起動後もできません

  3. パケットを送信してゲートウェイに到達するかどうかを確認してください。これは、ゲートウェイがping -c 10 192.168.1.1を実行して192.168.1.1であると想定して、簡単に行うことができます。コマンドが10個のテストすべてが正常に機能したことを返した場合は、ゲートウェイを確認できます。

  4. 次に、よく知られているパブリックIPアドレスにアクセスしてみます。たとえば、Google DNSサーバーはping -c 10 8.8.8.8を実行しています。これが機能しない場合は、traceroute -n 8.8.8.8を使用してトレーステストを実行し、パケットがドロップされている場所を確認してください。

  5. 最後に、Host www.google.comまたはping -c 10 www.google.comを実行して、DNS解決を適切に実行できることを確認します。

すべてがステップ5までうまくいけば、将来の問題を診断するために ifupdown-extra パッケージをインストールすることをお勧めします。 network-test ツールがインストールされます。このツールは、ネットワークの問題や設定ミスがないかどうかを診断するために、上記のネットワークテストの多く(およびその他)を実行します。

静的IPアドレスを使用して接続できます。 DHCPを使用した動的IP構成であったと思われる以前の状態に戻してください。

これをする:

  1. 動的IPアドレスを使用するようにインターフェースを再構成します。

  2. Network Managerがその仕事をするのを待ちます。デスクトップ環境では、失敗したかどうかを確認できますが、システムログで詳細情報を取得することもできます。より具体的には/ var/log/syslogです。 Network Managerログをフィルタリングすると、かなり多くの情報がわかります。grep NetworkManager /var/log/syslogを実行して出力を確認するだけです。

  3. network-testを実行して、正しく接続されているかどうかを確認します

  4. ネットワークに接続していない場合は、dhclient eth0を実行しているIPアドレスを手動で要求して、IPアドレスが提供されるかどうかを確認してください。

上記のテストに基づいて、ネットワークで何が故障し、何が機能するかをよりよく理解し、それに応じてシステムを構成する必要があります。

0
Julian Garla