パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

DragonFly BSD 1.4.0リリース」記事へのコメント

  • dntpd (スコア:5, 参考になる)

    おお、dntpd すごそうですね!

    commits List 2005-04 [dragonflybsd.org]:

    OpenNTPD はそもそも、あんまり精密に時刻を同期させるような仕組みではない。 Joerg が頑張ってハックしてくれているけど、まだまだ大変みたいだ。 その労を念頭に置きながら書いてみたら、一日で少なくとも xntpd と同じ程度 (つまり OpenNTPD よりだいぶまし) なアルゴリズムができた。 まだいろいろあるけど、最も厄介なところはできたよ。 時刻を同期させるだけだから単純かと思うけど、面倒なんだね。

    users List 2005-11 [dragonflybsd.org]:

    OpenNTPD は、は

    • Re:dntpd (スコア:5, 参考になる)

      ただ、OpenBSD 陣営の名誉のために言っておくと、確かに
      OpenNTPD は簡易なもの [openntpd.org]として設計されています。
      あまり精密さを求めたり本格的な NTP サーバにするというのではなく、
      「面倒だからだれも NTP を使わない」という状況を正すための、
      そしてそれだけのためのものなのです。

      • Re:dntpd (スコア:2, おもしろおかしい)

        > 「面倒だからだれも NTP を使わない」という状況を正すための

        最近、「面倒だからだれも NTP を使わない」
        というサーバにお目にかかりました。
        10 分違っていて log の解析時に思考が停止しました。

        時間精度が低いと、ロードバランサー配下のサーバ log 調査時、労力が高くなります。
        # ntpd が動いてなかったのは問題外ですが

        OpenNTPD が簡易なものであり、
        dntpd がちゃんとした物であるなら
        secure であると診断してもらって
        OpenBSD に取り込んで欲しいです。
        # もちろん Free, Net にも。

        # xntpd のフォローは無いんですかね?
        • Re:dntpd (スコア:2, 参考になる)

          取り敢えず、下記で公開されているソースコードを
          使って、FreeBSDでコンパイルできることは確認しましたが
          sysctlにkern.basetimeが無いので実行は出来ないです。

          そこで、これとSYSCTLマクロ宣言や扱いが似ている
          kern.boottimeを使うようにしてお茶を濁すと実行は
          できますが、果たしてこれで良いのか...
          (FreeBSDのkern.boottimeが入り組んでて訳わからんもんで)

          http://www.dragonflybsd.org/cgi-bin/cvsweb.cgi/src/usr.sbin/dntpd/ [dragonflybsd.org]
          • Re:dntpd (スコア:2, 参考になる)

            boottime はブートした時刻なので変化しませんが、
            dntpd は kern.basetime を何度も取得して差を出したり
            しているみたいです (client.c の lin_regress あたり?)。

            clock_gettime(CLOCK_MONOTONIC, &ts); とかに
            書き換えたほうが意図に合っているのかなあ。

            • Re:dntpd (スコア:1, 参考になる)

              by Anonymous Coward on 2006年01月12日 12時45分 (#863433)
              私も FreeBSD 上で試してます。

              sysntp_getbasetime の中身を gettimeofday(tvp, NULL); にして、dntpd -d -f dntpd.conf としてデバッグモードで起動して確認した所、slope の値が、-1.000004 とかみたいな値になっていました。

              kern.basetime の代わりに、kern.boottime を使うパターンだと、slope は、大体 0.00005 とかあたりで安定。

              恐らく後者の方が動作がより近いと思うので、kern.basetime は基本的にはいつも変わらない数値なのだけど、別のユーティリティが書き換える可能性があるって事なのかな。dntpd のソース群の中にはkern.basetime を書き換えるような動作は見られないし。

              しかし、lin_regressのslopeを求める式をみてもよくわかりません。例えば、(info->lin_count * info->lin_sumxy - info->lin_sumx * info->lin_sumy) とか、(info-lin_count - 1) * info_lin_sumxy じゃ駄目なのかとか。
              親コメント
              • Re:dntpd (スコア:1, 参考になる)

                by Anonymous Coward on 2006年01月15日 0時10分 (#864689)
                #863433 [srad.jp]のACです。

                今までためしにkern.basetimeをboottimeに書き換える方法でntpサーバーを一つだけ指定して動かしてみたところ、誤差がはげしくなっていました。10秒以上ずれていました。

                FreeBSDのxntpdやntpdateのソースと比べて確認してみないといけないか。
                親コメント

「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」

処理中...