[ntp:questions] broadcastclient ignoring packets on Solaris 10 with auth disabled

John Warburton jwarburton at gmail.com
Mon Aug 16 05:06:38 UTC 2010


Hello All

I seem to be having a problem with NTP broadcastclient on Solaris 10.
It seems to be ignoring any packets that get sent to the UDP broadcast
interface.

I have tried this with the following versions of NTP:
ntp-4.1.1 (yes, really)
ntp-4.2.6p2
ntp-dev-4.2.7p41
SUNWntp4u (4.2.5p172 at 1.1845-o)

# cat /etc/inet/ntp.conf
disable auth
driftfile /var/ntp/ntp.drift
broadcastclient

I see the packets on the network:
  45.3.255.2 -> BROADCAST    NTP  broadcast [st=5] (2010-08-16
01:01:24.08884)
  45.3.255.3 -> BROADCAST    NTP  broadcast [st=5] (2010-08-16
01:02:21.70679)
  45.3.255.2 -> BROADCAST    NTP  broadcast [st=5] (2010-08-16
01:02:28.08907)
  45.3.255.3 -> BROADCAST    NTP  broadcast [st=5] (2010-08-16
01:03:25.70711)

NTPd sets up the broadcast interface on fd 20, then at the last
moment, says it will drop them

bind(20) AF_INET, addr 0.0.0.0%0#123, flags 0x89
flags for fd 20: 0x1082
Searching for addr 0.0.0.0 in list of addresses - NOT FOUND
Added addr 0.0.0.0 to list of addresses
addto_syslog: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
created interface #0: fd=20, bfd=-1, name=v4wildcard, flags=0x89,
scope=0, sin=0.0.0.0, bcast=0.0.0.0, mask=255.255.255.255, Disabled:
Dumping interface: 1030e0
fd = 20
...
interface_action: interface wildcard default wildcard drop


Then we see the daemon ignore the packets:
ignore on (10) fd=20 from 45.3.255.2
ignore on (10) fd=20 from 45.3.255.2

Full debug details below

Note that Sun's NTP3 implementation works fine - SUNWntp (xntpd 3-5.93e
+sun), and so do RHEL 5.1 clients (ntp-4.2.2p1-7.el5.x86_64) on the
same subnet & config

Any ideas what I am doing wrong?

Thanks

John

# /opt/local/pkgs/ntp-dev-4.2.7p41/bin/ntpd -A -D66 -c /etc/inet/
ntp.conf
ntpd 4.2.7p41 at 1.2176 Thu Aug 12 00:16:45 UTC 2010 (1)
filegen_register(peerstats, ac2c4)
adding new filegen
filegen_register(loopstats, ac2d8)
adding new filegen
filegen_register(clockstats, ac2ec)
adding new filegen
filegen_register(rawstats, ac300)
adding new filegen
filegen_register(sysstats, ac314)
adding new filegen
filegen_register(protostats, ac328)
adding new filegen
addto_syslog: set_process_priority: Leave priority alone:
priority_done is <2>
addto_syslog: proto: precision = 0.417 usec
loop_config: item 1 freq 0.000000
event at 0 0.0.0.0 c01d 0d kern kernel time sync enabled
proto_config: code 3 value 0 dvalue 0.000000
Starting parse
Entering state 0
Reading a token: yylex: lexeme 'disable' -> T_Disable
Next token is token T_Disable ()
Shifting token T_Disable ()
Entering state 9
Reading a token: yylex: lexeme 'auth' -> T_Auth
Next token is token T_Auth ()
Shifting token T_Auth ()
Entering state 88
Reducing stack by rule 168 (line 843):
   $1 = token T_Auth ()
-> $$ = nterm system_option ()
Stack now 0 9
Entering state 96
Reducing stack by rule 167 (line 833):
   $1 = nterm system_option ()
-> $$ = nterm system_option_list ()
Stack now 0 9
Entering state 95
Reading a token:        <end of command>
Next token is token T_EOC ()
Reducing stack by rule 165 (line 821):
   $1 = token T_Disable ()
   $2 = nterm system_option_list ()
-> $$ = nterm system_option_command ()
Stack now 0
Entering state 64
Reducing stack by rule 14 (line 342):
   $1 = nterm system_option_command ()
-> $$ = nterm command ()
Stack now 0
Entering state 53
Next token is token T_EOC ()
Shifting token T_EOC ()
Entering state 192
Reducing stack by rule 3 (line 318):
   $1 = nterm command ()
   $2 = token T_EOC ()
-> $$ = nterm command_list ()
Stack now 0
Entering state 52
Reading a token: yylex: lexeme 'driftfile' -> T_Driftfile
Next token is token T_Driftfile ()
Shifting token T_Driftfile ()
Entering state 11
Reading a token: yylex: lexeme '/var/ntp/ntp.drift' -> T_String
Next token is token T_String ()
Shifting token T_String ()
Entering state 102
Reading a token:        <end of command>
Next token is token T_EOC ()
Reducing stack by rule 203 (line 963):
   $1 = token T_String ()
-> $$ = nterm drift_parm ()
Stack now 0 52 11
Entering state 103
Reducing stack by rule 191 (line 918):
   $1 = token T_Driftfile ()
   $2 = nterm drift_parm ()
-> $$ = nterm miscellaneous_command ()
Stack now 0 52
Entering state 66
Reducing stack by rule 16 (line 344):
   $1 = nterm miscellaneous_command ()
-> $$ = nterm command ()
Stack now 0 52
Entering state 191
Next token is token T_EOC ()
Shifting token T_EOC ()
Entering state 285
Reducing stack by rule 2 (line 317):
   $1 = nterm command_list ()
   $2 = nterm command ()
   $3 = token T_EOC ()
-> $$ = nterm command_list ()
Stack now 0
Entering state 52
Reading a token: yylex: lexeme 'broadcastclient' -> T_Broadcastclient
Next token is token T_Broadcastclient ()
Shifting token T_Broadcastclient ()
Entering state 4
Reducing stack by rule 49 (line 433):
   $1 = token T_Broadcastclient ()
-> $$ = nterm other_mode_command ()
Stack now 0 52
Entering state 58
Reducing stack by rule 8 (line 336):
   $1 = nterm other_mode_command ()
-> $$ = nterm command ()
Stack now 0 52
Entering state 191
Reading a token:        <end of command>
Next token is token T_EOC ()
Shifting token T_EOC ()
Entering state 285
Reducing stack by rule 2 (line 317):
   $1 = nterm command_list ()
   $2 = nterm command ()
   $3 = token T_EOC ()
-> $$ = nterm command_list ()
Stack now 0
Entering state 52
Reading a token: Now at end of input.
Reducing stack by rule 1 (line 313):
   $1 = nterm command_list ()
-> $$ = nterm configuration ()
Stack now 0
Entering state 51
Now at end of input.
Shifting token $end ()
Entering state 190
Stack now 0 51 190
Cleanup: popping token $end ()
Cleanup: popping nterm configuration ()
Finished Parsing!!
create_sockets(123)
interface_action: interface wildcard default wildcard drop
addto_syslog: ntp_io: estimated max descriptors: 256, initial socket
boundary: 20
bind(20) AF_INET, addr 0.0.0.0%0#123, flags 0x89
flags for fd 20: 0x1082
Searching for addr 0.0.0.0 in list of addresses - NOT FOUND
Added addr 0.0.0.0 to list of addresses
addto_syslog: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
created interface #0: fd=20, bfd=-1, name=v4wildcard, flags=0x89,
scope=0, sin=0.0.0.0, bcast=0.0.0.0, mask=255.255.255.255, Disabled:
Dumping interface: 1030e0
fd = 20
bfd = -1
sin = 0.0.0.0,
0002007b 00000000 00000000 00000000 00000000 00000000 00000000
00000000
bcast = 0.0.0.0,
0002007b 00000000 00000000 00000000 00000000 00000000 00000000
00000000
mask = 255.255.255.255,
00020000 ffffffff 00000000 00000000 00000000 00000000 00000000
00000000
name = v4wildcard
flags = 0x00000089
last_ttl = 0
addr_refid = 00000000
num_mcast = 0
received = 0
sent = 0
notsent = 0
scopeid = 0
peercnt = 0
phase = 0
interface_action: interface wildcard default wildcard drop
bind(21) AF_INET6, addr ::%0#123, flags 0x81
flags for fd 21: 0x1082
Searching for addr :: in list of addresses - NOT FOUND
Added addr :: to list of addresses
addto_syslog: Listen and drop on 1 v6wildcard :: UDP 123
created interface #1: fd=21, bfd=-1, name=v6wildcard, flags=0x81,
scope=0, sin=::, Disabled:
Dumping interface: 1031e0
fd = 21
bfd = -1
sin = ::,
001a007b 00000000 00000000 00000000 00000000 00000000 00000000
00000000
bcast = 0.0.0.0,
00000000 00000000 00000000 00000000 00000000 00000000 00000000
00000000
mask = ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff,
001a0000 00000000 ffffffff ffffffff ffffffff ffffffff 00000000
00000000
name = v6wildcard
flags = 0x00000081
last_ttl = 0
addr_refid = 4ae71336
num_mcast = 0
received = 0
sent = 0
notsent = 0
scopeid = 0
peercnt = 0
phase = 0
update_interfaces(123)
interface_action: interface lo0 IPv4 loopback - listen
examining interface #0: fd=-1, bfd=-1, name=lo0, flags=0x15, scope=0,
sin=127.0.0.1, mask=255.0.0.0, Enabled:
Dumping interface: ffbff4d8
fd = -1
bfd = -1
sin = 127.0.0.1,
0002007b 7f000001 00000000 00000000 00000000 00000000 00000000
00000000
bcast = 0.0.0.0,
0002007b 00000000 00000000 00000000 00000000 00000000 00000000
00000000
mask = 255.0.0.0,
0002007b ff000000 00000000 00000000 00000000 00000000 00000000
00000000
name = lo0
flags = 0x00000015
last_ttl = 0
addr_refid = 00000000
num_mcast = 0
received = 0
sent = 0
notsent = 0
scopeid = 0
peercnt = 0
phase = 1
Searching for addr 127.0.0.1 in list of addresses - NOT FOUND
create_interface(127.0.0.1#123)
bind(22) AF_INET, addr 127.0.0.1%0#123, flags 0x15
flags for fd 22: 0x1082
addto_syslog: Listen normally on 2 lo0 127.0.0.1 UDP 123
restrict: op 1 addr 127.0.0.1 mask 255.255.255.255 mflags 00003000
flags 00000001
Searching for addr 127.0.0.1 in list of addresses - NOT FOUND
Added addr 127.0.0.1 to list of addresses
created interface #2: fd=22, bfd=-1, name=lo0, flags=0x15, scope=0,
sin=127.0.0.1, mask=255.0.0.0, Enabled:
Dumping interface: 1053d0
fd = 22
bfd = -1
sin = 127.0.0.1,
0002007b 7f000001 00000000 00000000 00000000 00000000 00000000
00000000
bcast = 0.0.0.0,
0002007b 00000000 00000000 00000000 00000000 00000000 00000000
00000000
mask = 255.0.0.0,
0002007b ff000000 00000000 00000000 00000000 00000000 00000000
00000000
name = lo0
flags = 0x00000015
last_ttl = 0
addr_refid = 7f000001
num_mcast = 0
received = 0
sent = 0
notsent = 0
scopeid = 0
peercnt = 0
phase = 1
updating interface #2: fd=22, bfd=-1, name=lo0, flags=0x15, scope=0,
sin=127.0.0.1, mask=255.0.0.0, Enabled: new - created
Dumping interface: 1053d0
fd = 22
bfd = -1
sin = 127.0.0.1,
0002007b 7f000001 00000000 00000000 00000000 00000000 00000000
00000000
bcast = 0.0.0.0,
0002007b 00000000 00000000 00000000 00000000 00000000 00000000
00000000
mask = 255.0.0.0,
0002007b ff000000 00000000 00000000 00000000 00000000 00000000
00000000
name = lo0
flags = 0x00000015
last_ttl = 0
addr_refid = 7f000001
num_mcast = 0
received = 0
sent = 0
notsent = 0
scopeid = 0
peercnt = 0
phase = 1
interface_action: interface bge0 default listen
examining interface #0: fd=-1, bfd=-1, name=bge0, flags=0x19, scope=0,
sin=45.3.255.68, bcast=45.3.255.127, mask=255.255.255.128, Enabled:
Dumping interface: ffbff4d8
fd = -1
bfd = -1
sin = 45.3.255.68,
0002007b 2d03ff44 00000000 00000000 00000000 00000000 00000000
00000000
bcast = 45.3.255.127,
0002007b 2d03ff7f 00000000 00000000 00000000 00000000 00000000
00000000
mask = 255.255.255.128,
0002007b ffffff80 00000000 00000000 00000000 00000000 00000000
00000000
name = bge0
flags = 0x00000019
last_ttl = 0
addr_refid = 00000000
num_mcast = 0
received = 0
sent = 0
notsent = 0
scopeid = 0
peercnt = 0
phase = 1
Searching for addr 45.3.255.68 in list of addresses - NOT FOUND
create_interface(45.3.255.68#123)
bind(23) AF_INET, addr 45.3.255.68%0#123, flags 0x19
flags for fd 23: 0x1082
addto_syslog: Listen normally on 3 bge0 45.3.255.68 UDP 123
restrict: op 1 addr 45.3.255.68 mask 255.255.255.255 mflags 00003000
flags 00000001
Searching for addr 45.3.255.68 in list of addresses - NOT FOUND
Added addr 45.3.255.68 to list of addresses
created interface #3: fd=23, bfd=-1, name=bge0, flags=0x19, scope=0,
sin=45.3.255.68, bcast=45.3.255.127, mask=255.255.255.128, Enabled:
Dumping interface: 1058c8
fd = 23
bfd = -1
sin = 45.3.255.68,
0002007b 2d03ff44 00000000 00000000 00000000 00000000 00000000
00000000
bcast = 45.3.255.127,
0002007b 2d03ff7f 00000000 00000000 00000000 00000000 00000000
00000000
mask = 255.255.255.128,
0002007b ffffff80 00000000 00000000 00000000 00000000 00000000
00000000
name = bge0
flags = 0x00000019
last_ttl = 0
addr_refid = 2d03ff44
num_mcast = 0
received = 0
sent = 0
notsent = 0
scopeid = 0
peercnt = 0
phase = 1
updating interface #3: fd=23, bfd=-1, name=bge0, flags=0x19, scope=0,
sin=45.3.255.68, bcast=45.3.255.127, mask=255.255.255.128, Enabled:
new - created
Dumping interface: 1058c8
fd = 23
bfd = -1
sin = 45.3.255.68,
0002007b 2d03ff44 00000000 00000000 00000000 00000000 00000000
00000000
bcast = 45.3.255.127,
0002007b 2d03ff7f 00000000 00000000 00000000 00000000 00000000
00000000
mask = 255.255.255.128,
0002007b ffffff80 00000000 00000000 00000000 00000000 00000000
00000000
name = bge0
flags = 0x00000019
last_ttl = 0
addr_refid = 2d03ff44
num_mcast = 0
received = 0
sent = 0
notsent = 0
scopeid = 0
peercnt = 0
phase = 1
setting SO_REUSEADDR on lo0 at 127.0.0.1 to off
setting SO_REUSEADDR on bge0 at 45.3.255.68 to off
create_sockets: Total interfaces = 4
addto_syslog: Listening on routing socket on fd #24 for interface
updates
io_open_sockets: maxactivefd 24
proto_config: code 3 value 0 dvalue 0.000000
proto_config: code 1 value 1 dvalue 0.000000
setting SO_REUSEADDR on lo0 at 127.0.0.1 to on
setting SO_REUSEADDR on bge0 at 45.3.255.68 to on
Broadcast enabled on socket 25 for address 45.3.255.127
bind(25) AF_INET, addr 45.3.255.127%0#123, flags 0x39
flags for fd 25: 0x1082
addto_syslog: io_setbclient: Opened broadcast client on interface #3
bge0
setting SO_REUSEADDR on lo0 at 127.0.0.1 to off
setting SO_REUSEADDR on bge0 at 45.3.255.68 to off
io_setbclient: Opened broadcast clients
event at 0 0.0.0.0 c016 06 restart
loop_config: item 2 freq 0.000006
event at 0 0.0.0.0 c012 02 freq_set kernel 5.677 PPM
local_clock: mu 0 state 2 poll 3 count 0
timer: interface update
update_interfaces(123)
interface_action: interface lo0 IPv4 loopback - listen
examining interface #0: fd=-1, bfd=-1, name=lo0, flags=0x15, scope=0,
sin=127.0.0.1, mask=255.0.0.0, Enabled:
Dumping interface: ffbffa00
fd = -1
bfd = -1
sin = 127.0.0.1,
0002007b 7f000001 00000000 00000000 00000000 00000000 00000000
00000000
bcast = 0.0.0.0,
0002007b 00000000 00000000 00000000 00000000 00000000 00000000
00000000
mask = 255.0.0.0,
0002007b ff000000 00000000 00000000 00000000 00000000 00000000
00000000
name = lo0
flags = 0x00000015
last_ttl = 0
addr_refid = 00000000
num_mcast = 0
received = 0
sent = 0
notsent = 0
scopeid = 0
peercnt = 0
phase = 0
Searching for addr 127.0.0.1 in list of addresses - FOUND
updating interface #2: fd=22, bfd=-1, name=lo0, flags=0x15, scope=0,
sin=127.0.0.1, mask=255.0.0.0, Enabled: present
Dumping interface: 1053d0
fd = 22
bfd = -1
sin = 127.0.0.1,
0002007b 7f000001 00000000 00000000 00000000 00000000 00000000
00000000
bcast = 0.0.0.0,
0002007b 00000000 00000000 00000000 00000000 00000000 00000000
00000000
mask = 255.0.0.0,
0002007b ff000000 00000000 00000000 00000000 00000000 00000000
00000000
name = lo0
flags = 0x00000015
last_ttl = 0
addr_refid = 7f000001
num_mcast = 0
received = 0
sent = 0
notsent = 0
scopeid = 0
peercnt = 0
phase = 1
interface_action: interface bge0 default listen
examining interface #0: fd=-1, bfd=-1, name=bge0, flags=0x19, scope=0,
sin=45.3.255.68, bcast=45.3.255.127, mask=255.255.255.128, Enabled:
Dumping interface: ffbffa00
fd = -1
bfd = -1
sin = 45.3.255.68,
0002007b 2d03ff44 00000000 00000000 00000000 00000000 00000000
00000000
bcast = 45.3.255.127,
0002007b 2d03ff7f 00000000 00000000 00000000 00000000 00000000
00000000
mask = 255.255.255.128,
0002007b ffffff80 00000000 00000000 00000000 00000000 00000000
00000000
name = bge0
flags = 0x00000019
last_ttl = 0
addr_refid = 00000000
num_mcast = 0
received = 0
sent = 0
notsent = 0
scopeid = 0
peercnt = 0
phase = 0
Searching for addr 45.3.255.68 in list of addresses - FOUND
updating interface #3: fd=23, bfd=25, name=bge0, flags=0x39, scope=0,
sin=45.3.255.68, bcast=45.3.255.127, mask=255.255.255.128, Enabled:
present
Dumping interface: 1058c8
fd = 23
bfd = 25
sin = 45.3.255.68,
0002007b 2d03ff44 00000000 00000000 00000000 00000000 00000000
00000000
bcast = 45.3.255.127,
0002007b 2d03ff7f 00000000 00000000 00000000 00000000 00000000
00000000
mask = 255.255.255.128,
0002007b ffffff80 00000000 00000000 00000000 00000000 00000000
00000000
name = bge0
flags = 0x00000039
last_ttl = 0
addr_refid = 2d03ff44
num_mcast = 0
received = 0
sent = 0
notsent = 0
scopeid = 0
peercnt = 0
phase = 1

ignore on (10) fd=20 from 45.3.255.2
ignore on (10) fd=20 from 45.3.255.2




More information about the questions mailing list