質問: ### 前提・実現したいこと C#で設計したWindowsアプリケーションでNTPサーバに接続し、時刻同期したい。PC起動後の初回取得時のタイムアウトを解消したい C#で設計したWindowsアプリケーションでNTPサーバに接続し、時刻を同期するようなプログラムを設計しています。 接続構成は [PC]-[L3SW]-[L3SW]-[NTPサーバ]です。 L3SWのメーカーはシスコです。 通常時は問題なく通信できており、時刻校正も問題なく行えます。 しかし、長時間[PC]のみ半日くらい電源をOFFしておき、電源ON⇒スタートアップによって起動した上記プログラムがすぐにNTPサーバに接続して時刻を取得しようとすると初回だけタイムアウトとなります。(1分後に再度取得すると問題なく行えます) し発生頻度は毎回ではなく時々です。 原因は[L3SW]のARPテーブルが4時間以上経過して初期化されたためと思われますが、 この初回のタイムアウトエラーを防ぐには何をするのが一般的なのでしょうか? 「PC起動後〇分待つ」、「プログラム側で[L3SW]にpingを放つ」、「[L3SW]で●●設定をする」等、 Windows側(プログラム側)、[L3SW]側で何をすべきでしょうか? ### 発生している問題・エラーメッセージ NTPサーバに接続して時刻を取得しようとすると初回だけタイムアウトとなる。 ### 該当のソースコード ``` C# VisualStudio2015 ソースコード ``` ### 試したこと ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: > > 原因は[L3SW]のARPテーブルが4時間以上経過して初期化されたためと思われますが、 > > > [L3SW]の[PC]が接続しているポートに`spanning-tree`の設定が入ってたりしませんか? もし入っているのであればそのポートにハブが接続したりしてループする可能性がなければ `spanning-tree portfast`の設定を入れるかRSTPに変更することを検討してください。 STPとは 要するにループを検知するための~~Cisco独自の実装~~プロトコルです。これが設定されていると インタフェースがUPしてから実際に通信できるまで50秒ほどかかります。