WindowsのNTPクライアント

1日1回、TClock2chまたはWindowsが自動的にNTPサーバーにアクセスして時刻を同期しているはずなのだが、いつのまにかPCの時刻がずいぶんずれていた。手動で同期してみるとタイムアウトしてしまうので、ポートが空いていないようだ。
しかしルーターのパケットフィルタリングの設定では192.168.1.0/24に対してNTP(UDP123)を通すように設定しているし、Linux系のマシンでは同期が行えている。そこで、フィルタリングの設定ですべてのポートでの通信を許可したところ正常に同期できるようになった。
ちょっと調べてみるとWindows2000のSNTPクライアントは必ずしもsrcポートがUDP123とは限らないという事例が……。WindowsXP以降はちゃんとしたNTPクライアント(実はサーバーも)が実装されているらしいのでこれには当てはまらないはずだが、挙動を見ているとランダムにsrcポートを選んでいるようだ。自動的に応答を受けるべきdstポートもランダムになってしまうわけで……。
WinAPIを使わないで自前のNTPクライアントをもつソフトを探すのも骨が折れそうだしすべてのポートを開けるわけにはいかないので、Linuxマシンでntpdを動かすのが最良の解決策だろうか。
特定のNTPサーバーに対してのみポートを開放する方法だと、ntp.nict.jpなんかは4つIPアドレスを持っているので設定が冗長になるけどお手軽でリスクは一番低いな。