Fehler im Zeit-Server?

Forum zu aktuellen Geräten der LANCOM Router/Gateway Serie

Moderator: Lancom-Systems Moderatoren

Antworten
alexw
Beiträge: 40
Registriert: 01 Jan 2005, 01:15

Fehler im Zeit-Server?

Beitrag von alexw »

Hi,

wenn ich von Port 37 (TCP) mir die aktuelle Zeit des Lancoms abhole, bekomme ich den Wert 0xc80d0a320b, anstelle von 0xc80a320b fuer "Mon May 8 23:09:31 2006" zurueck (gegengetestet mit einem Linux Server).
Wie man sieht, faellt einem das zusaetzliche 0x0d vor einem 0x0a recht stark ins Auge ;) Wohl ein Fehler in der Lancom Soft?

Hardware war ein 821+ mit Firmware 6.04.0015
Benutzeravatar
alf29
Moderator
Moderator
Beiträge: 6207
Registriert: 07 Nov 2004, 19:33
Wohnort: Aachen
Kontaktdaten:

Beitrag von alf29 »

Moin,

das kann ich hier nicht nachvollziehen. Hast Du einen Ethereal-Trace davon?

Des weitere wäre mir neu, daß LANCOMs NTP über TCP machen würden...

Gruß Alfred
“There is no death, there is just a change of our cosmic address."
-- Edgar Froese, 1944 - 2015
Popasi
Beiträge: 220
Registriert: 16 Jan 2006, 23:23

Beitrag von Popasi »

Ja, ich habe mit meinem 1821 auch das Problem und trace gerade, Webconfig zeigt die richtige Uhrzeit an, seit gestern ist die Uhrzeit, die der NTP Server zurückgibt aber extrem in der Zukunft (~ 2 Tage). Die vom Lancom abgefragten NTP Server sind aber okay und geben die richtige Zeit zurück, seltsam.
Ich verwende aktuell LCOS 6.07.

Desweiteren würde mich mal interessieren, warum der im Lancom eingebaute NTP immer einen "Ping" von 100 ms hat, d.h. die Antwort benötigt immer 100 ms obwohl die Netzverbindung zum Lancom selber natürlich < 1 ms Latenz hat.
alexw
Beiträge: 40
Registriert: 01 Jan 2005, 01:15

Beitrag von alexw »

alf29 hat geschrieben:das kann ich hier nicht nachvollziehen. Hast Du einen Ethereal-Trace davon?
Naja, ist auch zugegeben nicht so auf Anhieb zu sehen der Fehler, da telnet und vorallem auch ntpdate wohl ueber die termcap das 0d dann ausfiltern.
Du kannst es aber sehr leicht mittels netcat nachpruefen. Ich selbst habe mir aber schnell folgendes zusammengebaut:

Code: Alles auswählen

#include <stdio.h>
#include <netdb.h>
#include <time.h>
#include <unistd.h>


int main(int argc, char **argv)
{
	struct sockaddr_in server_addr;
	struct hostent *host;

	unsigned long time;
	int fd = socket(AF_INET, SOCK_STREAM, 0);

	if (argc != 2 ||
	    fd < 0 ||
	    (host = gethostbyname(argv[1])) == NULL)
		return 0;

	server_addr.sin_family		= AF_INET;
	server_addr.sin_addr.s_addr	= *(long *)host->h_addr;
	server_addr.sin_port		= htons(37);

	connect(fd, (struct sockaddr *)&server_addr, sizeof(server_addr));

	if (read(fd, (void *)&time, 4) == 4)
	{
		printf("%s: 0x%08lx", argv[1], time);
		time -= 2208988800UL;
		printf(" .. %s\n", ctime(&time));
	}

	close(fd);

	return 0;
}
Das ergibt dann beim Lancom folgendes:
192.168.0.xxx: 0xc80d0a2e .. Thu May 11 02:56:14 2006

und bei einem ntpd auf einem Linux Rechner:
192.168.0.xx: 0xc80a2e50 .. Mon May 8 22:53:36 2006

Achso, die gelieferte Uhrzeit vom ntpd des Linux Rechners ist natuerlich die richtige ;)
alexw
Beiträge: 40
Registriert: 01 Jan 2005, 01:15

Beitrag von alexw »

Popasi hat geschrieben:... die der NTP Server zurückgibt aber extrem in der Zukunft (~ 2 Tage).
Kannst ja nachrechnen, genau das verursacht das an dieser Stelle fehlerhaft vom Lancom eingefuegte 0d.
Popasi
Beiträge: 220
Registriert: 16 Jan 2006, 23:23

Beitrag von Popasi »

alexw hat geschrieben: 192.168.0.xxx: 0xc80d0a2e .. Thu May 11 02:56:14 2006
Genau, dieses Datum/Zeit ist es bei mir auch....immer diese leidige CR/LF Konvertierung...gut herausgefunden, Alexw !
Benutzeravatar
MoinMoin
Moderator
Moderator
Beiträge: 2036
Registriert: 12 Nov 2004, 16:04

Beitrag von MoinMoin »

Moin, moin!

Sollte in der 6.10 behoben sein.

Ciao, Georg
alexw
Beiträge: 40
Registriert: 01 Jan 2005, 01:15

Beitrag von alexw »

MoinMoin hat geschrieben:Sollte in der 6.10 behoben sein.
Vielen Dank :)
Jetzt bleibt nur noch zu hoffen, dass der Linecode in dieser Version dann auch ein bauchbarer ist.. :/
Antworten