BIG-IP 自身が名前解決や時刻同期をするには、DNS サーバと NTP サーバを設定します。この記事では、DNS サーバに 8.8.8.8 と 8.8.4.4 を、NTP サーバに time.google.com を設定し、名前解決と時刻同期ができていることを CLI で確かめます。
- DNS サーバ(DNS Lookup Server List)を設定する
- 名前解決できることを ping と nslookup で確かめる
- タイムゾーンを Asia/Tokyo にする
- NTP サーバ(Time Server List)を設定する
- ntpd の起動と時刻同期を ntpq で確かめる
BIG-IP 16.1.2 で検証しています。16.1 系はすでに F5 のサポート期間が終わっているので、これから構築する場合はサポート中のバージョンを選んでください。
設定の全体像
NTP サーバをホスト名(time.google.com)で指定するので、先に DNS サーバを設定して名前解決できるようにしておきます。DNS の問い合わせは UDP 53、NTP は UDP 123 を使います。
DNS サーバの設定
DNS サーバを登録する
System ›› Configuration ›› Device ›› DNS を開きます。Properties の DNS Lookup Server List で、Address 欄に 8.8.8.8 を入力して Add をクリックします。同じように 8.8.4.4 も追加し、画面下の Update をクリックして反映します。
この記事の画面は、実際の画面ではなく、検証時の画面から設定する項目(見るポイント)を抜き出して描いたイメージです。バージョンによって、項目の並びや表記は変わります。
| 1DNS Lookup Server List | Address: 8.8.4.4 Add 8.8.8.8 8.8.4.4 Edit Delete Up Down |
| ⋮ (中略) | |
| DNS Cache | ☐ |
| IP Version | IPv4 |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | DNS Lookup Server List | Address 欄に DNS サーバのアドレスを入れて Add で一覧に追加します。8.8.8.8 と 8.8.4.4 の2つを登録します。順番は Up/Down で変えられます |
| 2 | Update | クリックして反映します。Add だけでは反映されません |
設定は tmsh の list /sys dns name-servers でも確認できます。
BIG-IP(tmsh)
[admin@bigip-1:Active:Standalone] ~ # tmsh
admin@(bigip-1)(cfg-sync Standalone)(Active)(/Common)(tmos)# list /sys dns name-servers
sys dns {
name-servers { 8.8.8.8 8.8.4.4 }
}
名前解決を確かめる
tmsh から ping time.google.com を実行すると、ホスト名が IP アドレス(216.239.35.0)に変換されて ping が通ります。名前解決ができていることがわかります。
admin@(bigip-1)(cfg-sync Standalone)(Active)(/Common)(tmos)# ping time.google.com
PING time.google.com (216.239.35.0) 56(84) bytes of data.
64 bytes from time1.google.com (216.239.35.0): icmp_seq=1 ttl=94 time=37.6 ms
64 bytes from time1.google.com (216.239.35.0): icmp_seq=2 ttl=94 time=37.7 ms
64 bytes from time1.google.com (216.239.35.0): icmp_seq=3 ttl=94 time=37.7 ms
64 bytes from time1.google.com (216.239.35.0): icmp_seq=4 ttl=94 time=37.5 ms
bash で shell モードに移り、nslookup でも確かめます。Server が設定した 8.8.8.8 になっていて、time.google.com の IPv4 アドレス4つと IPv6 アドレス4つが返っています。
admin@(bigip-1)(cfg-sync Standalone)(Active)(/Common)(tmos)# bash
[admin@bigip-1:Active:Standalone] ~ # nslookup
> time.google.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: time.google.com
Address: 216.239.35.8
Name: time.google.com
Address: 216.239.35.4
Name: time.google.com
Address: 216.239.35.0
Name: time.google.com
Address: 216.239.35.12
Name: time.google.com
Address: 2001:4860:4806:8::
Name: time.google.com
Address: 2001:4860:4806::
Name: time.google.com
Address: 2001:4860:4806:c::
Name: time.google.com
Address: 2001:4860:4806:4::
>
NTP サーバの設定
名前解決ができるようになったので、time.google.com を NTP サーバとして指定します。その前に、表示する時刻を日本時間にするため、タイムゾーンを設定します。
タイムゾーンを設定する
System ›› Platform を開き、General Properties の Time Zone で Asia/Tokyo(日本標準時、UTC+9)を選んで、画面下の Update をクリックします。
| Management Config IPV4 | ◉ Automatic (DHCP)○ Manual |
| Management Config IPV6 | ◉ Automatic (DHCP)○ Manual |
| Host Name | bigip-1.hirotanoblog.local |
| Host IP Address | Use Management Port IP Address |
| 1Time Zone | Asia/Tokyo |
| ⋮ (中略) | |
| SSH IP Allow | * All Addresses |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | Time Zone | 一覧から Asia/Tokyo を選びます |
| 2 | Update | クリックして反映します(Update は画面のいちばん下にあります) |
tmsh では list /sys ntp timezone で確認できます。
admin@(bigip-1)(cfg-sync Standalone)(Active)(/Common)(tmos)# list /sys ntp timezone
sys ntp {
timezone Asia/Tokyo
}
NTP サーバを登録する
System ›› Configuration ›› Device ›› NTP を開きます。Time Server List の Address 欄に time.google.com を入力して Add をクリックし、画面下の Update をクリックして反映します。
| 1Time Server List | Address: time.google.com Add time.google.com Edit Delete |
| No. | 項目 | 設定内容 |
|---|---|---|
| 1 | Time Server List | Address 欄に NTP サーバのホスト名か IP アドレスを入れて Add で一覧に追加します |
| 2 | Update | クリックして反映します |
tmsh では list /sys ntp servers で確認できます。
admin@(bigip-1)(cfg-sync Standalone)(Active)(/Common)(tmos)# list /sys ntp servers
sys ntp {
servers { time.google.com }
}
time.google.com(Google Public NTP)は、うるう秒を前後の時間に少しずつ分散させる「リープスミア」をしています。Google は、スミアをする NTP サーバとしない NTP サーバを混ぜて使わないよう案内しているので、ほかの NTP サーバと併用するときは注意してください。
時刻同期を確かめる
ntpd が起動しているか(show sys service ntpd)
NTP のサービス ntpd が動いているかを確かめます。Active: active (running) なら起動しています。ログの clock_step +0.392805 s は、起動直後に時刻を約 0.39 秒ずらして合わせたことを示しています。
[admin@bigip-1:Active:Standalone] ~ # tmsh admin@(bigip-1)(cfg-sync Standalone)(Active)(/Common)(tmos)# show sys service ntpd * ntpd.service - start and stop ntpd Loaded: loaded (/etc/rc.d/init.d/ntpd; enabled; vendor preset: enabled) Active: active (running) since Tue 2022-04-19 20:31:36 JST; 5min ago Process: 25035 ExecStop=/etc/rc.d/init.d/ntpd stop (code=exited, status=0/SUCCESS) Process: 25045 ExecStart=/etc/rc.d/init.d/ntpd start (code=exited, status=0/SUCCESS) CGroup: /system.slice/ntpd.service `-25048 ntpd -g Apr 19 20:31:37 bigip-1.hirotanoblog.local ntpd[25048]: Listen normally on 12 mgmt fe80::4db:78ff:fedd:526f UDP 123 Apr 19 20:31:37 bigip-1.hirotanoblog.local ntpd[25048]: Listen normally on 13 eth0 fe80::4db:78ff:fedd:526f UDP 123 Apr 19 20:31:37 bigip-1.hirotanoblog.local ntpd[25048]: Listen normally on 14 external fe80::450:64ff:fef3:c313 UDP 123 Apr 19 20:31:37 bigip-1.hirotanoblog.local ntpd[25048]: Listening on routing socket on fd #31 for interface updates Apr 19 20:31:37 bigip-1.hirotanoblog.local ntpd[25048]: 0.0.0.0 c016 06 restart Apr 19 20:31:37 bigip-1.hirotanoblog.local ntpd[25048]: 0.0.0.0 c012 02 freq_set kernel 0.000 PPM Apr 19 20:31:37 bigip-1.hirotanoblog.local ntpd[25048]: 0.0.0.0 c011 01 freq_not_set Apr 19 20:31:44 bigip-1.hirotanoblog.local ntpd[25048]: 0.0.0.0 c61c 0c clock_step +0.392805 s Apr 19 20:31:44 bigip-1.hirotanoblog.local ntpd[25048]: 0.0.0.0 c614 04 freq_mode Apr 19 20:31:45 bigip-1.hirotanoblog.local ntpd[25048]: 0.0.0.0 c618 08 no_sys_peer
同期しているサーバ(ntpq -np)
shell モードで ntpq -np を実行し、時刻の同期先を確かめます。-n はアドレスをホスト名に変換せずに表示し、-p は NTP サーバ(ピア)の一覧を表示するオプションです。
admin@(bigip-1)(cfg-sync Standalone)(Active)(/Common)(tmos)# bash
[admin@bigip-1:Active:Standalone] ~ # ntpq -np
remote refid st t when poll reach delay offset jitter
==============================================================================
*216.239.35.12 .GOOG. 1 u 31 64 37 37.574 -2.733 2.112
| 表示 | 意味 |
|---|---|
| *(先頭の記号) | このサーバを同期先(system peer)として選んでいる。+ は同期先の候補、空白は使っていないサーバ |
| remote | NTP サーバのアドレス。time.google.com のアドレスの1つ(216.239.35.12) |
| refid | そのサーバの時刻の参照元。.GOOG. は Google の時刻源 |
| st | stratum(階層)。1 は時刻源に直接つながったサーバ |
| when/poll | 最後に応答を受けてからの秒数/問い合わせの間隔(秒) |
| reach | 直近8回の応答の有無を8進数で表したもの。37(2進数で 11111)は、ntpd の起動後5回の問い合わせにすべて応答があったことを示します |
| delay/offset/jitter | 往復の遅延、サーバとの時刻のずれ、ずれのばらつき(いずれもミリ秒) |
現在の時刻(show sys clock/date)
現在の時刻は、tmsh の show sys clock か、shell モードの date で確認できます。どちらも JST(日本時間)で表示されています。
admin@(bigip-1)(cfg-sync Standalone)(Active)(/Common)(tmos)# show sys clock
----------------------------
Sys::Clock
----------------------------
Tue Apr 19 21:37:08 JST 2022
[admin@bigip-1:Active:Standalone] ~ # date
Tue Apr 19 21:37:54 JST 2022
GUI では、画面の左上に日付と時刻が表示されます。
| Hostname | bigip-1.hirotanoblog.local | 1Date | Apr 19, 2022 | User | admin |
| IP Address | (伏せています) | Time | 9:37 PM (JST) | Role | Administrator |
| ONLINE (ACTIVE) Standalone | |||||
| No. | 表示 | 意味 |
|---|---|---|
| 1 | Date/Time | BIG-IP の日付と時刻。タイムゾーンを Asia/Tokyo にしたので JST で表示されます |
うまくいかないとき
| 状態 | よくある原因 | 確認すること |
|---|---|---|
| ping や nslookup でホスト名が引けない | DNS サーバに届かない、または Update をクリックしていない | list /sys dns name-servers の内容、BIG-IP から DNS サーバへのルート、途中のファイアウォールで UDP 53 が通るか |
ntpq で * が付かない | 起動直後でまだ同期先を選んでいない、または NTP サーバから応答がない | 数分待ってから再度確認する。reach が 0 のままなら、UDP 123 が通るかとホスト名の名前解決を確認する |
| 表示される時刻が日本時間とずれている | タイムゾーンが Asia/Tokyo になっていない | list /sys ntp timezone が Asia/Tokyo か |
まとめ
| 設定 | GUI | 確認(tmsh) | この記事の値 |
|---|---|---|---|
| DNS サーバ | System ›› Configuration ›› Device ›› DNS | list /sys dns name-servers | 8.8.8.8、8.8.4.4 |
| タイムゾーン | System ›› Platform | list /sys ntp timezone | Asia/Tokyo |
| NTP サーバ | System ›› Configuration ›› Device ›› NTP | list /sys ntp servers | time.google.com |
CLI で設定する場合は、modify sys dns name-servers add { … }、modify sys ntp timezone …、modify sys ntp servers add { … } を使い、最後に save sys config で保存します。GUI で設定した場合は自動で保存されます。
コメント