[Info] [Addon dev] DHCP-Server (IPv6)

MrTweek1987

Neuer User
Mitglied seit
2 Mai 2011
Beiträge
116
Punkte für Reaktionen
0
Punkte
0
So das Projekt wurde wieder aufgenommen...

Die Ausgangsbasis...

Server: mittels rc-script läuft er, aber die box bootet nicht weiter, weil die ausgaben des Servers die box blocken...

Ticket: #1800 (der patch ist hier zufinden...)

Dank an sf3978 für die unterstützung ... =)
 
Zuletzt bearbeitet:

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,945
Punkte für Reaktionen
26
Punkte
48
Ich versuch mal das Paket für den dhcpv6-client zu erstellen.

EDIT:

Im Anhang das Paket (Patch) für den client.
 

Anhänge

  • dhcpv6_client.patch.txt.tar.gz
    21.8 KB · Aufrufe: 3
Zuletzt bearbeitet:

MrTweek1987

Neuer User
Mitglied seit
2 Mai 2011
Beiträge
116
Punkte für Reaktionen
0
Punkte
0
was ändert man denn da an den packeten? was würde mich mal interessieren :)

der erstellt den nicht... er hat nur ncurses gebaut :/
aber nicht den dhcp-client... :/

Code:
menu "Testing"
...
...
source make/dosfstools/Config.in
[COLOR="red"]
source make/dhcpv6_server/Config.in
+ source make/dhcpv6_client/Config.in
[/COLOR]
source make/dtach/Config.in
...

auswählen konnte ich ihn aber... :/
 
Zuletzt bearbeitet:

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,945
Punkte für Reaktionen
26
Punkte
48
Version, download-Quelle, md5sum, Namen der binaries/libs, Verzeichnisse, Konfigurieren oder nicht Konfigurieren, evtl. Abhängigkeiten, Konfiguration, source code & Co. evtl. patchen, etc.

EDIT:
der erstellt den nicht... er hat nur ncurses gebaut :/
aber nicht den dhcp-client... :/
Mach mal:
Code:
make dhcpv6_client-precompiled

Code:
...
make[1]: Leaving directory `/home/gm/myfreetz/freetz7293/freetz-trunk/source/target-mipsel_uClibc-0.9.29/dhcpv6_client-1.0'
mkdir -p packages/target-mipsel_uClibc-0.9.29/dhcpv6_client-1.0/root/usr/bin/; cp source/target-mipsel_uClibc-0.9.29/dhcpv6_client-1.0/dhcpv6_client packages/target-mipsel_uClibc-0.9.29/dhcpv6_client-1.0/root/usr/bin/dhcpv6_client; /home/gm/myfreetz/freetz7293/freetz-trunk/toolchain/build/mipsel_gcc-4.4.6_uClibc-0.9.29/mipsel-linux-uclibc/bin/mipsel-linux-uclibc-strip --remove-section={.comment,.note,.pdr} [COLOR=red]packages/target-mipsel_uClibc-0.9.29/dhcpv6_client-1.0/root/usr/bin/dhcpv6_client[/COLOR];
[B][COLOR=red]done[/COLOR][/B].

Code:
> [COLOR=red]file packages/target-mipsel_uClibc-0.9.29/dhcpv6_client-1.0/root/usr/bin/dhcpv6_client[/COLOR]
packages/target-mipsel_uClibc-0.9.29/dhcpv6_client-1.0/root/usr/bin/dhcpv6_client: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x3040000, stripped
 
Zuletzt bearbeitet:

MrTweek1987

Neuer User
Mitglied seit
2 Mai 2011
Beiträge
116
Punkte für Reaktionen
0
Punkte
0
keine regel zum erstellen...

Code:
[email protected]:~/freetz-stable-1.2/make$ cd dhcpv6_client/
[email protected]:~/freetz-stable-1.2/make/dhcpv6_client$ make dhcpv6_client-precompiled
make: *** Keine Regel, um »dhcpv6_client-precompiled« zu erstellen.  Schluss.
[email protected]:~/freetz-stable-1.2/make/dhcpv6_client$

Edit: Falsches verzeichnis nun hat er ihn compiliert

test:

Code:
[email protected]:/var/media/ftp/uStor02/shared# ./dhcpv6_client
[COLOR="red"]Fork for interface eth0 successf****
Exec for interface eth0 failed.[/COLOR]
[email protected]:/var/media/ftp/uStor02/shared#
 
Zuletzt bearbeitet:

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,945
Punkte für Reaktionen
26
Punkte
48
Code:
[email protected]:~/freetz-stable-1.2/make$ cd dhcpv6_client/
[email protected]:~/freetz-stable-1.2/[COLOR=red]make/dhcpv6_client[/COLOR]$ [B]make dhcpv6_client-precompiled[/B]
Wie bist Du auf die glorreiche Idee gekommen, "make dhcpv6_client-precompiled", aus dem Verzeichnis "make/dhcpv6_client" auszuführen??;)

EDIT:

Wenn Du beim Kompilieren diese Warnung:
Code:
dhcpv6_client.c: In function 'main':
dhcpv6_client.c:101: warning: incompatible implicit declaration of built-in function 'execlp'
nicht haben willst, dann füge als 1. Zeile in die Datei "dhcpv6_client.c",
Code:
#include <unistd.h>
ein.

EDIT 2:


[email protected]:/var/media/ftp/uStor02/shared# ./dhcpv6_client
Fork for interface eth0 successf****
Exec for interface eth0 failed.
Hast Du den client richtig konfiguriert? Hat der client Zugang zur Datei "solicit.conf"?
 
Zuletzt bearbeitet:

MrTweek1987

Neuer User
Mitglied seit
2 Mai 2011
Beiträge
116
Punkte für Reaktionen
0
Punkte
0
Code:
if ((child = fork ()) == 0)
	{
	    printf ("Fork for interface %s successf****\n", *p);
	    if ([COLOR="red"]execlp ("cli", "cli", *p, (char *) 0[/COLOR]) < 0)
		printf ("Exec for interface %s failed.\n", *p);
	    else
		printf ("Exec for interface %s successf****\n", *p);
	}
	else if (child == -1)
	    printf ("Fork for interface %s failed.\n", *p);
    }

wie jetz...

Code:
dhcpv6_client.c: In function 'main':
dhcpv6_client.c:101: warning: incompatible implicit declaration of built-in function [COLOR="red"]'execlp'[/COLOR]

is klar.. denn der Fehler bezieht sich auf deine warnung :D

Code:
[email protected]:/var/media/ftp/uStor02/shared# ./dhcpv6_client
[COLOR="red"]Fork for interface eth0 successf****
Exec for interface eth0 failed.[/COLOR]
[email protected]:/var/media/ftp/uStor02/shared#
 

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,945
Punkte für Reaktionen
26
Punkte
48
is klar.. denn der Fehler bezieht sich auf deine warnung :D
Was ist klar? Es gibt keinen Fehler! Wo willst Du jetzt einen Fehler entdeckt haben, dass Du dich wie ein kleiner Schneekönig freust? Es ist nicht meine Warnung! Die Warnung kommt vom Kompiler, kann aber ignoriert werden. Siehe EDIT 1 im Beitrag #6.

EDIT:
Kompiliere mal mit "#include <unistd.h>" in der "dhcpv6_client.c" und versuche dann erneut.
Hat dein client Zugang zur "solicit.conf"? Hat die "solicit.conf" die richtigen Daten?
 
Zuletzt bearbeitet:

MrTweek1987

Neuer User
Mitglied seit
2 Mai 2011
Beiträge
116
Punkte für Reaktionen
0
Punkte
0
weil die funktion mir den fehler bringt :/

nebenbei... ja habe die solicite.conf mit kopiert und bearbeitet... aber gleiches problem...
 

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,945
Punkte für Reaktionen
26
Punkte
48
weil die funktion mir den fehler bringt :/
Dann versuch mal das binary mit "#include <unistd.h>" in der "dhcpv6_client.c".

EDIT:
Die Funktion execlp () will evtl. das binary "cli" ausführen und das ist nicht auf der Box. Zum testen: kopiere mal das cli binary aus dem source-Ordner auf deine Box.

EDIT 2:
Ich habe das Paket geändert, so dass das binary "cli" mit dem Freetz-Image auch auf der Box installiert wird. Es muss noch eruiert werden in welchem Verzeichnis auf der Box, sich das binary "cli" befinden muss, oder kann das evtl. konfiguriert werden.
 
Zuletzt bearbeitet:

MrTweek1987

Neuer User
Mitglied seit
2 Mai 2011
Beiträge
116
Punkte für Reaktionen
0
Punkte
0
da ist ist keine binary "cli" hab nur ne "clilib.h /clilib.c"

Edit: oder statusch linken =/ das client-binary ist übrigends ziehmlich klein =/ mit 6 kb =/
 
Zuletzt bearbeitet:

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,945
Punkte für Reaktionen
26
Punkte
48
Doch, im Verzeichnis "source/target-mipsel_uClibc-0.9.29/dhcpv6_client-1.0" gibt es das binary "cli", aber ungestripped. Mit dem neuen Paket aus dem Anhang kannst Du aber das gestrippte binary "cli" erzeugen:
Code:
> file packages/target-mipsel_uClibc-0.9.29/dhcpv6_client-1.0/[COLOR=red]root/usr/bin/cli[/COLOR]
packages/target-mipsel_uClibc-0.9.29/dhcpv6_client-1.0/root/usr/bin/cli: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), dynamically linked (uses shared libs), with unknown capability 0xf41 = 0x756e6700, with unknown capability 0x70100 = 0x3040000, stripped
EDIT:
Code:
[email protected]:/var/media/ftp/uStor01/archiv# [COLOR=red]ldd ./cli[/COLOR]
        libncurses.so.5 => /usr/lib/freetz/libncurses.so.5 (0x2aabe000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x2aafc000)
        libc.so.0 => /lib/libc.so.0 (0x2ab1a000)
        ld-uClibc.so.0 => /lib/ld-uClibc.so.0 (0x2aaa8000)
EDIT:

Warum statisch linken? Hast Du die "/usr/lib/freetz/libncurses.so.5" nicht auf deiner Box?

EDIT 2:
Was fungiert bei dir als Client, das die IPv6-Adressen vom dhcpv6-Server der Box bekommen soll? Doch die Rechner/Geräte in deinem (W)LAN? Evtl. muss dann der dhcpv6-Client, auf den Rechnern in deinem (W)LAN, installiert werden. Dann muss dieser aber anders kompiliert werden, was aber kein Problem sein sollte. Oder hast Du 2 Boxen mit Freetz?
 

Anhänge

  • dhcpv6_client.patch.txt.tar.gz
    21.8 KB · Aufrufe: 6
Zuletzt bearbeitet:

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,945
Punkte für Reaktionen
26
Punkte
48
Weil es im "alten" Paket, zum "kopieren" nicht vorgesehen war. ;-)
Siehe EDIT 2 im Beitrag #12.
 

MrTweek1987

Neuer User
Mitglied seit
2 Mai 2011
Beiträge
116
Punkte für Reaktionen
0
Punkte
0
hab noch ne alice-box und ne fritz!box SL5 =/ aber die SL 5 kann kein freetz
 

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,945
Punkte für Reaktionen
26
Punkte
48
Was und wo, soll bei dir diese IPv6-Adressen, von dem Server bekommen?
 

MrTweek1987

Neuer User
Mitglied seit
2 Mai 2011
Beiträge
116
Punkte für Reaktionen
0
Punkte
0
eigentlich jeder rechner der im netzwerk ist...
aber ich kann doch den Server per rc.custom starten und den client manuel per telnet
 

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,945
Punkte für Reaktionen
26
Punkte
48

MrTweek1987

Neuer User
Mitglied seit
2 Mai 2011
Beiträge
116
Punkte für Reaktionen
0
Punkte
0
keine ahnung ich hab nen android-phone... windows müsste das doch auch können =/ von sich aus mal den server zu fragen...

edit: oder man sucht sich nen anderen... dhcpv6-server :(
 
Zuletzt bearbeitet:

sf3978

IPPF-Promi
Mitglied seit
2 Dez 2007
Beiträge
7,945
Punkte für Reaktionen
26
Punkte
48
... von sich aus mal den server zu fragen...
Der server will evtl. auf eine bestimmte Art und Weise gefragt werden. Deshalb der client.
Hast Du ein Linux-Rechner? Wenn ja, dann häng ich dir ein Archiv rein, mit dem Du den client und das cli-binary, für deine Linux-Rechner-Architektur kompilieren (make) kannst. Mit dem client auf deinem Linux-Rechner, kannst Du dann experimentieren. ;-)
 

Erhalten Sie 3CX für 1 Jahr kostenlos!

Gehostet, in Ihrer privaten Cloud oder on-Premise! Ganz ohne Haken. Geben Sie Ihren Namen und Ihre E-Mail an und los geht´s:

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.
oder via