Arch Linuxを最後に数回起動してもネットワークにアクセスできないことがわかりました。netctl
私のアダプタに静的IPv4アドレスを提供するために設定ファイルを使用していますが、それ自体はうまく機能します。
だからログをチェックしてみると、エラーは次のようになります。
インターフェイス 'enp0s25' で冗長アドレス検出に時間がかかりすぎます。
netctl
その後、コードを使用して終了し、1
ネットワークを未設定のままにします。
netctl
冗長アドレス検出は、設定ファイルに次の行が含まれているときに使用されるIPv6の機能です。
IPv6=stateless
IPv6は自動的に設定する必要があります。誰かがドアを開くこれに関する質問Githubプロジェクトでは、著者はnetctl
次のように主張します。
[...] DADが3秒(デフォルト)以上かかる場合、ネットワークが複雑、遅い、または誤って設定されている可能性があります。
そして:
ネットワークのどの部分が正しく設定されていないようです。 [...]
しかし、私のネットワークに正確に何が問題なのでしょうか?とてもシンプルなインフラです。 ISPのモデム/ルーターコンボとPC 2台、ワイヤレスデバイスの数個、デジタルTVセットトップボックスの数個だけが必要です。私たちの家のインターネットの品質は一般的に非常に良いです。問題は数週間前に始まった。
現在の解決策はDADを無効にするか、時間制限を増やすことですが、どちらも気にしません。
答え1
DADはフィードバックなしで動作する必要があるため、本質的に遅いです。
DADがどのように機能するかは、インターフェイスでアドレスがアクティブになる前に、そのIPアドレスを持つホストのMACアドレスを要求するネイバー検索要求が送信されることです。
アドレスが重複すると、そのアドレスがすでに存在するホストが応答し、DADは迅速に失敗します。
ただし、アドレスが正しく設定されていると重複が発生しないため、要求に応答しません。
送信者は応答がどれだけ早く来るのか分からないので、待つ必要があります。 DADが完了する速度は、送信者が応答を待つように設定された時間に依存します。
残りのネットワーク構成ではなく、要求送信者の構成にのみ依存することは注目に値します。複雑なネットワークのためにDADが遅くなると思う人は、おそらくそれがどのように機能するのか理解していないでしょう。
複数の要求を中間遅延で送信し、応答なしで特定の時間が経過した後にのみアドレスを割り当てるようにデバイスを設定できます。これらの構成は明らかにDAD速度を低下させる。
インターフェイスにIPアドレスを割り当てるシステムコールは、DADが完了するのを待つことをブロックしません。ただし、DADが完了する前にそのアドレスにソケットをバインドしようとすると失敗します。これにより、起動中にサービスが開始されない競合状態が発生する可能性があります。表示されるエラーメッセージは、これらの競合状態を回避するためにDADが完了するのを待つように設計されたコードフラグメントによって生成されます。これらのコードで簡単に発生する間違いの1つは、重複したアドレスが原因でDADが失敗した場合でも、DADが完了するまで待機することです。
場合によっては、DADによって引き起こされる問題を処理する最良の方法は、単にDADを無効にすることです。ただし、実際にアドレスが重複していないことをまず確認する必要があります。重複したアドレスがある場合、DADを有効、無効、または再構成しても問題は解決しません。
あなたのシステムがIPアドレスの唯一の正当なユーザーであり、他のいくつかのノードがそのIPに対するND要求に応答する場合、問題はNDスプーフィングであり、これが解決すべき最初の問題です。
ただし、IPアドレスが動的に構成され、複数のノードのいずれかでIPアドレスを正当に要求できる場合は、DADを使用すると競合を防ぐのに役立ちます。