【いま何時?】NTPサーバ【ソーネダイタイネー】
>>65 GPSはビルの谷間だとほとんど衛星が捕捉できないので かなり開けた場所か屋上が使えるような状況にないと ちょっと精度の良いクオーツ時計になりはててしまう ちょっと悲しい 今日ふとしたことからノーパソ (Windows XP Home Edition) で netstat してみたんですが、すると 123/udp が空いている じゃあありませんか。 Windows XP Home Edition って、 NTP サーバの機能も持ってましたっけ? ntpdate であるホスト host_a に同期しようとしてもできません。 ntpdate -vq host_a などとすると確かに時刻は取れているようです。 ただし、自分が stratum 11 で host_a が stratum 16 のためか no server sitable for synchronization found と表示され、 同期してくれないようです。これを強制的に同期させることは できますか? 自分が Stratum 11 ということは、少なくともひとつの Stratum 10 の時刻源から 時刻を得てるわけですよね。その時刻ではいけないのですか? また、host_a がStratum 16 という事はその NTP は信用できる時刻源ではないので、 むしろ host_a の方をどうにかしないといけないのではないでしょうか。 Windows XPでSNTPではなく、NTPサーバーとして機能する一番良いソフトは何ですか? >>74 ありがとうございます。 やっぱりこれしかないんですね。 設定方法について、詳しく書かれているページはご存じないですか? >>75 ntp.confで検索すれば馬鹿にでも解るサイトが山のように出てくるだろ。 74のソフトをインストールして、設定ファイルもいじりましたが、 ntpq -pを実行しても、*が表示されず同期されません。 何が原因ですか? >>77 5〜20分ほど経過しないと同期が完了しないわけだが、それでもダメか? >>77 5〜20分しても同期されません。 ntpdateを実行するとちゃんと同期されます。 >>79 そっちのことかよ。 ntpdはntpdateと違って少しずつ(1ms以下)時刻を合わせていく仕様で、 これは時刻の巻き戻りやスキップによる影響が動作中のアプリケーションに 及ばないように、との配慮からだ。 それがイヤならntpdateと併用すれ。 漏れ様は起動時にntpdateを走らせて後は全部ntpdだ。 まぁ起動(再起動)する機会ってあんまりないけど。 >>77 ルーター使ってる場合、ソイツが原因の場合もある。 自分コレガのBAR-Pro3でntpdがどうやっても同期してくれなかった。 設定の見直ししまくってもダメでした。ルータ替えたら何の問題も無く同期はじめましたが。 実際は、自分のルータ設定ミスの可能性も有りますけどねorz UDPだから、うっかりパケットフィルタをかけちゃってても気づかなかったりするよね? まずNTPとSNTPが混同されているケースが多いが NTPの方が(アルゴリズム的に?)精度が高いというのは分かった…のですが WinSRV2003はレジストリ編集してNTPにはなれないのでしょうか? Webで必死に探しても英語サイトばかりで萎えます(T_T) >>84 なれない。NTPサーバになるためにはまず時刻の補正についてクロック動作を速めたり 遅くしたりする機能 (adjtime() API) が必要だが、Windowsにはそれがない。 この機能があれば「時刻をスキップさせずに時刻修正を行なう」という技ができる。 たとえば 1 [秒] を 1.1 [秒] でカウントしておけば時刻が早まることになるし、 1 [秒] を 0.9 [秒] でカウントすれば時刻が遅くなる。 http://docs.hp.com/ja/B2355-60104-05/adjtime.2.html Windowsではこういう機能がないので、SNTPを使って時間を一気にずらす意外に手段が 無いというわけだ。 W32Timeサービスのレジストリから想像すると、そういう動作をしてくれるような気もするけど。 >85 いくらWinが糞だからと言っても、adjtime() 相当のAPIが無いとは 思えないんだが。そんなんでは業務用鯖には使えないだろ。 時刻の整合性が無くなったら、データの時系列も崩壊して恐ろしい 事になりうるのだが。 それにPOSIX認証にも通らないと思うがな。 adjtime() がsever editionにしかないといった話なら、「やっぱり MSは...」と納得もできなくは無いが。 >88 そのURLを参考にして、後は@IT等で調べてレジストリをいじってみたのですが Network機器(Ciso等)は時刻をWin2003から取れなかったです。 >85 どうもありがとうございます。 まだちゃんとみてないのですが、頂いたヒントをもとに 色々と確認します。助かります。 >>89 WinのNTPはSNTPだから、その機器が対応してないとだめだと思うよ。 f5(かノーテルのどっちか忘れたけど)のL2S/Wは確か出来たが、シスコはシラネ。 >91 そうですよね。Winは(某HPでは)NTPと言っているが SNTPですよね…(このへんがややこしいですね) というよりは、Win2003がNTPクライアントにはなれるけど 鯖にはなれないってことみたいですね。うぅ〜む。 ネットワーク機器はほとんどNTPじゃないと時刻同期出来ないっぽいです。 >>92 VBやパール等で、ソケットプログラムかいて起動させればおk なんだけどね。パールなら数行で書けそうな予感。 >94 NTPはVer.4が最新じゃなかったでしたっけ? Ver.3からイケるってことでしょうか。 >95 プロトコルのバージョンを上げる方法…??? 無知で申し訳ありません。 サーバに関してはNTPもSNTPも関係なかった気が… クライアントがNTP、SNTPどちらで接続するかはクライアント次第なのだし そのサーバがNTPかSNTP、どちらのクライアントなのかが問題なのであって サーバとしての機能はどちらも同じだったような 違ったっけ? >>87 POSIXのrequirementには入ってないよ。 >>88 よく読めばわかるが "最大何秒進めるか" "最大何秒遅らせるか" という設定値が あるところからも「時刻をスキップさせずに調整する」機能が存在しないことが わかる。本当の意味で時刻同期をするのであればそんな設定値は存在し得ないはず。 >>97 NTPサーバとしての機能は確かにいずれでも同じ。 ただ>>85 という事情があるのでNTPクライアントとしての動作はSNTPと同レベルになる。 Microsft社曰く、W32Time (Windows Time Synchronization サービス) は、SNTP に完全準拠した実装だそうです。( NTP ではない ) W32Time の動き クライアントは、認証しているドメイン コントローラにコンタクトします。 2台のコンピュータ間の通信待ち時間を決定するために、パケットが交換されます。 W32Time は、ローカルで統一すべき現在時刻を決定します。 クライアントは、ローカル時刻を調整します。 サーバの時刻とクライアント時刻でクライアントが遅れている時は、クライアント時刻は、サーバの時刻に即座に設定されます。(時間を進める) サーバの時刻とクライアント時刻でクライアントが進んでいる場合は、その差が 3 分を超えていなければ、2 つの時刻が合うまで、クライアントの時計を遅く進めます。 3 分 以上の差がある場合、時刻は即座に設定されます。 クライアントは定期的なチェックを行います。 クライアントは、各 "周期" に 1 回、認証しているドメイン コントローラに接続します。 最初のデフォルトの周期は 45 分です。 時刻の同期試行が 3 回連続して成功した場合は、周期は 8 時間に増えます。 時刻の同期試行が 3 回連続して成功しない場合は、45 分にリセットされます こんなのあるけどttp://www.venus.dti.ne.jp/~yoshi-o/NTP/W2K_Time_synchronization.html >100 C:\>tracert ntp.nict.jp 11 25 ms 23 ms 24 ms tokyo-core1-10G15-0.sinet.ad.jp [150.99.196.25] 12 25 ms 25 ms 23 ms tokyo-core2-P0-0.sinet.ad.jp [150.99.197.230] 13 24 ms 23 ms 24 ms nii-IX2-G2-0-4091.sinet.ad.jp [150.99.63.254] 14 25 ms 25 ms 24 ms nii-ix-3550-63.10.sinet.ad.jp [150.99.63.10] 15 23 ms 23 ms 24 ms CRL.gw.sinet.ad.jp [150.99.198.198] 16 28 ms 25 ms 26 ms 133.243.240.1 17 * * * Request timed out. C:\>tracert ntp*.sinet.ad.jp 11 25 ms 25 ms 24 ms tokyo-core1-10G15-0.sinet.ad.jp [150.99.196.25] 12 24 ms 25 ms 25 ms nii-S1-P4-0.sinet.ad.jp [150.99.197.22] 13 25 ms 25 ms 24 ms ntp*.sinet.ad.jp [150.99.100.*] Trace complete. だめじゃん。 >>103 途中経路がICMP echoに応答してないだけだろ。 っていうか、今更tracerouteの結果を知って何をしようというのだ? その人の環境次第の事をダメとか遠くのよりとか言ってもしょうがないじゃない >>85 >時刻の補正についてクロック動作を速めたり遅くしたりする機能 Windows にもあるよ。 NT 3.5 以降(2000 と XP も含む)なら使える。 API は、 SetSystemTimeAdjustment GetSystemTimeAdjustment 前科からM$が信用できないのは分かるけどこれくらいはある。 試しに正確な時刻から1分ずらした時刻をセットした上で、 WindowsTime サービスを有効にすると時刻が合うまで ちゃんと秒針の速度が変わる。 >>104 hop数が少ないほど良いと解説しているサイトがあるから、 それを見たんでしょ。 どっちも25msくらいで返って来てるから、たいして差はない。 NMEAのGPSレシーバつないでPPS同期のntpd走らせてる。 $ ntpdc -c kerninfo pll offset: 6.537e-06 s pll frequency: 108.147 ppm maximum error: 0.002883 s estimated error: 2e-06 s status: 2107 pll ppsfreq ppstime ppssignal nano pll time constant: 10 precision: 9.89e-07 s ・・・・ 仕事がらみで走らせてるけど、まあ気持ちいいかも。 >>107 その、「じわじわっと」ずらせてくれるNTPクライアントのプログラムってどこかで 手に入りませんか? あるいはNTPクライアントを自分で作るための資料はどこかで手に入りますか? >>112 >>111 の言うところのソフトはどこにあるのじゃ? あい、112のntpdってやつ。 ttp://www.meinberg.de/english/sw/ntp.htm と言うかいわゆるNTPソフトではっきりNTPです(SNTPじゃなく)って 書いてあるものなら大体は遅延制御(とでも言うのかな?)されてないかな? ほんとはNTPと遅延制御は別問題だけどNTP対応を作るほどなら対応してそうな気がする。 普通に使うならGUIの利いた一般的なのの方が使いやすいかもだけど。 >>117 一般にNTPと書いてあればRFC1305準拠という意味なので遅延制御にも対応してるだろう。 GPSや電波時計使った自前NTP鯖あると気分的にいいよ。 >>120 >>121 今もあわなかった なんででしょうね >>125 普通にPCカードとかUSB接続のGPSカードを買ってくれば簡単だぞ。 電源を入れたまま放っておけばGPS衛星を捕捉して時刻を自動修正してくれる。 PCからのアクセスはシリアル(RS-232C)で4800bpsってのが標準だから、 あとはちょこっとプログラムを書いて時刻を修正すればいい。 ntpdと協調させたいのならドライバを書けばいい。 自鯖で自前NTP鯖やるのであれば、業務用の高価なものは不要だと思う。 俺はSonyのGPSユニットをシリアルで繋げて使っているけど、このユニットも もう手に入らないのでどうするか考慮中。予算は出しても3万までだな。 参考URL 電波時計を使ったPCの時刻補正 http://www.c-dex.co.jp/main/1.html GPSユニットを使った時刻同期 http://www.rakuten.co.jp/gps/387357/387363/ 秋月電子の電波時計キットで十分だろう。 ntp.orgので標準対応してるし。 ntpd って大幅に時刻がずれているときには同期してくれないけど、 ntpdate だといきなり同期してしまってそれはそれで困ることがある。 逆行してしまうこともあるし。なので、その中間的な時刻同期は できないものかと考えているんだけど、何かいい方法有りませんかね? >>130 OS起動時にntpdate→ntpdでずれ防止 下のログが延々と吐かれるようになってしまいました。頻度は不定期です。 何か解決方法はないでしょうか。 >Oct 16 08:00:07 host ntpd[6387]: frequency error 510 PPM exceeds tolerance 500 PPM ntpq -pの結果は下記です remote refid st t when poll reach delay offset jitter ============================================================================== *ntp01.so-net.ne 210.132.247.45 2 u 21 64 377 6.235 38.586 10.036 設定 restrict default ignore restrict 127.0.0.1 restrict 192.168.1.0 mask 255.255.254.0 nomodify notrap restrict 210.139.246.140 no modify notrap noquery server ntp.so-net.ne.jp driftfile /etc/ntp/drift >>132 /etc/ntp/driftを消し、touch /etc/ntp/driftで空のファイルを付くって 再起動させてみれ。おそらくdriftに書かれたクロックの誤差値が正しくないため、 本来あるべき以上にクロックがズレてるはず。 (1) そのログが出るよりも前にCPUの種類やクロックを変えたのであれば、 driftファイルに書かれた値は正しくなくなる。 (2) Pentium-M,4,CoreDuo,Core2Duoであれば発熱時に強制的にクロックを落とす機能が あるので、CPUクーラーが正しく動作していない場合にクロックがズレる。 (3) その他マイナーな問題(メモリエラーとかATAバスエラーとか)が原因かもしれない。 >>134 オレが見た例だとおなじサーバを三つ指定してあったんだけど、 なんで別のサーバを指定しないんだろうね。 >>135 ntp.nict.jpのようにDNSラウンドロビンになってるとか。 鯖を3つ指定してあればどれか一つ狂っても問題無し だから同じ鯖を3つ指定って何やりたいんだが ラウンドロビンの場合は同じものでも3つ指定した方が、ぐるぐる回るということでしょうか? >140 同意. ntpdを改造して、bindに頼らず直接DNSサーバに問い合わせれば できない事はないが、そんな事しても労力に対して得られる物が ほとんど無い.それにntpを公開している相手に対して迷惑になる だろ. NICT関連のNTPサーバなら、時刻源が日本標準時を決めている 原子時計と同程度に正確な原子時計を使っているので、1台 設定しておけば十分.複数設定するなら、別組織のNTPサーバ を設定した方がいいと思うが. #NICTだってサーバ落ちる可能性は否定できないし、法定電気 定期点検期間にサーバを別電源(大型ディーゼル発電機など) で動かしてくれるかどうかは予算と担当者の意識次第なんだ から. 上の方で >>117 氏が紹介しているntpdをWinXP SP2に入れてみた。 んで、入れたマシン(鯖)はちゃんとntp.nict.jpなどに同期するのだが、 クライアントWinXPの「日付と時刻のプロパティ」でその鯖に繋ぐと、 なぜか「同期中にエラーが発生しました」と言われる orz FirewallというかNORTON Internet Securityとかの設定は問題ないし、 クライアントからntp.nict.jpには同期できるのだが...... 原因がわからん。 どなたか、何か思いあたるフシがあったら教えてください。 ntp.confの書き方が悪いのかなあ。こんな感じなんだけど。 restrict default ignore restrict 127.0.0.1 restrict 192.168.1.0 mask 255.255.255.0 notrust nomodify nopeer noquery server 127.0.0.1 fudge 127.127.1.1 stratum 10 server 127.127.1.1 restrict ntp.nict.jp server ntp.nict.jp iburst minpoll 7 maxpoll 15 Windows NTのはバージョン3プロトコルしかしゃべらんから >>144 そ、そうなのか!? とりあえずntpdateしてみたけど、 >ntpdate -v 192.168.1.5 3 Nov 02:35:33 ntpdate[1280]: ntpdate 4.2.0b@1.1430-o Dec 11 20:58:13 (UTC+01:00) 2005 (3) 3 Nov 02:35:38 ntpdate[1280]: no server suitable for synchronization found うーん...... PCの時計をきちんとしてもお前のルーズは治らないと思うけどな。 でも鯖の時計を合わすのは不測の事態対策だよな。 >>147 複数のサーバを持っていればそれらの間で前後関係をきちんと確保するために時刻修正 する場合もあるし、そもそもメールサーバやWebサーバでヘッダの時刻が正しくないと 気持ちが悪いというのもあるな。 windowsとnistのntp繋がらないね。かれこれ一週間以上になるか。 どうしたんだろう。 >>150 time-nw.nist.govは繋がるぞ。 time.windows.comはWindowsサーバが落ちたんだろう。 >>117 のを入れたけど、ntpdateができないな。 C:\Program Files\NTP\bin>ntpdate -s -v ntp.nict.jp Error : servname not supported for ai_socktype ローカルにあるntp鯖(FreeBSD)を指定してもmfeedでも同じだ。 WinXPのsystem32\drivers\etc\servicesを手動編集して123/tcpを追加しても変化なかった (あのテキストファイルに意味はないのだろうか)。 >>152 ai_socktypeエラーならポート番号の問題ではなくてプロトコルの問題だろう。 ntp.nict.jpはIPv6でも解決可能なホスト名なので、 IPv4を使うようにすれば動作するはず。 ntpdate -4 ntp.nict.jpでうまくいかないか試せ。 >>153 試してみたけどうまくいかない。 C:\>ntpdate -4 ntp.nict.jp Error : servname not supported for ai_socktype 22 Apr 20:50:56 ntpdate[1940]: can't find host ntp.nict.jp 22 Apr 20:50:56 ntpdate[1940]: no servers can be used, exiting C:\>ntpdate -4 192.168.0.5 Error : servname not supported for ai_socktype 22 Apr 20:50:59 ntpdate[840]: can't find host 192.168.0.5 22 Apr 20:50:59 ntpdate[840]: no servers can be used, exiting 192.168.0.5がFreeBSD6.1鯖ね(6.2にすんのマンドクセ)。WindowsXPのntp.confでは ntpサーバーとして191.168.0.5だけを指定して上手く動いてる (192.168.0.5のntp.confはntp.nict.jp、ntp.mfeed.ad.jpなどを参照)。 >>154 んじゃ services の ntp 123/udp は? >>155 servicesのntp123/udpは最初から設定されてる。 なんか1週間ぶりに鯖起動したらntp.nict.jpと同期できなくなってるんだが うちもnictと同期できない。 mfeedは大丈夫。 nictと同期できない奴はIPv6で同期しようとしてるんだろ。 10月くらいからIPv6のアドレスも付与されてるが、今のところアクセスできない模様。 "server -4 ntp.nict.jp minpoll 6 maxpoll 8" として IPv4 を強制すれ。 (というか以前からnictはこの設定を推奨してたが) >>163 その通りでしたorz どうもありがとう nict.jpのパケットモニタ 10/31の夜から11/1にかけて徹夜で仕事したヒトが日本にはたくさん居る w restrict -6 ::1 この-6とか::1ってなんですか? Vine→CentOSにしたら 標準でntp.confにこれ書いてあるから気になる…。 read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる