ntpd odmawia otwarcia portu 123 na adresie wildcardowym IPv6 ::
Bartosz Lis
bartoszl w ics.p.lodz.pl
Pon, 12 Paź 2009, 18:28:48 CEST
Witam,
Testuję jądro 2.6.31.2-0.1. Mam problemy z serwerem ntp:
# /usr/sbin/ntpd -dd -c /etc/ntp/ntp.conf
ntpd 4.2.4p7 w 1.1607-o Mon Oct 12 11:43:33 UTC 2009 (1)
addto_syslog: Attemping to register mDNS
*** WARNING *** The program 'ntpd' uses the Apple Bonjour compatibility layer
of Avahi.
*** WARNING *** Please fix your application to use the native API of Avahi!
*** WARNING *** For more information see <http://0pointer.de/avahi-
compat?s=libdns_sd&e=ntpd>
addto_syslog: Unable to register mDNS
addto_syslog: signal_no_reset: signal 13 had flags 14000000
addto_syslog: set_process_priority: Leave priority alone: priority_done is <2>
addto_syslog: precision = 0.978 usec
create_sockets(123)
addto_syslog: ntp_io: estimated max descriptors: 1024, initial socket
boundary: 16
addto_syslog: Listening on interface #0 wildcard, 0.0.0.0#123 Disabled
addto_syslog: bind() fd 17, family AF_INET6, port 123, scope 0, addr ::,
mcast=0 flags=0x81 fails: Address already in use
addto_syslog: unable to bind to wildcard socket address :: - another process
may be running - EXITING
Rzecz jasna, przed zawracaniem komukolwiek głowy sprawdziłem, że nic innego
nie chodzi na udp123. Wygląda to tak, jakby przy otwarciu przez proces portu
123 na wildcardowym adresie IP 0.0.0.0 jądro nieproszone otwierało mu także
ten port na wildcardowym adresie IPv6 :: . Kiedy w następnym kroku proces
otwiera sobie "własnoręcznie" port 123 na adresie IPv6 :: otrzymuje informację
że ktoś mu ten adres wcześniej zajął.
Problem ten nie występuje w dowolnej kombinacji:
dystrybucja: th
architektury: x86_64, i686
jądro: kernel-2.6.31.1-0.1 (zbudowane samodzielnie z CVSa),
kernel-2.6.31.2-0.1 (pobrany z test)
ntp: ntp-4.2.4p6-2 (z dystrybucji), ntp-4.2.4p7-2 (zbudowane samodzielnie z
CVSa),
glibc: glibc-2.10.1-14
Problem nie występuje dla jądra 2.6.28.10-3. Testowane były te same
architektury i wersje ntp oraz cała reszta konfiguracji komputerów testowych.
Marudzenie o apple bonjour to stara sprawa, która w niczym nie przeszkadza.
Co ciekawe, netstat wywołany osobno z opcją --inet i osobno z opcją inet6 przy
jądrze 2.6.28.10-3 wypisuje osobno otwarte porty na TCP/UDP oraz osobno
TCPv6/UDPv6. W przypadku jądra 2.6.31.2-0.1, której bym opcji nie użył zawsze
dostaję listę wszystkich otwartych portów v4 i v6.
Podejrzewam więc, że problem pojawił się w którymś z jąder 2.6.29-31
Na listach dyskusyjnych poświęconych ntp sugerowano:
echo 1 > /proc/sys/net/ipv6/bindv6only
- nie pomaga.
Będę już zadowolony, jeśli ktoś mi podpowie jak wyłączyć IPv6 (którego nie
używam) nie rekompilując jądra. Jest spora szansa, że to załatwi problem.
Pozdrawiam,
--
Bartosz Lis @ Institute of Comp. Science, Technical University of Lodz, Poland
bartoszl @ ics.p.lodz.pl
Więcej informacji o liście dyskusyjnej pld-users-pl