[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:
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:
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:
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:
keine regel zum erstellen...

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

Edit: Falsches verzeichnis nun hat er ihn compiliert

test:

Code:
root@fritz:/var/media/ftp/uStor02/shared# ./dhcpv6_client
[COLOR="red"]Fork for interface eth0 successf****
Exec for interface eth0 failed.[/COLOR]
root@fritz:/var/media/ftp/uStor02/shared#
 
Zuletzt bearbeitet:
Code:
freetz@freetz-linux:~/freetz-stable-1.2/make$ cd dhcpv6_client/
freetz@freetz-linux:~/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:


root@fritz:/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:
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:
root@fritz:/var/media/ftp/uStor02/shared# ./dhcpv6_client
[COLOR="red"]Fork for interface eth0 successf****
Exec for interface eth0 failed.[/COLOR]
root@fritz:/var/media/ftp/uStor02/shared#
 
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:
weil die funktion mir den fehler bringt :/

nebenbei... ja habe die solicite.conf mit kopiert und bearbeitet... aber gleiches problem...
 
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:
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:
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:
root@fritz:/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:
Weil es im "alten" Paket, zum "kopieren" nicht vorgesehen war. ;-)
Siehe EDIT 2 im Beitrag #12.
 
hab noch ne alice-box und ne fritz!box SL5 =/ aber die SL 5 kann kein freetz
 
Was und wo, soll bei dir diese IPv6-Adressen, von dem Server bekommen?
 
eigentlich jeder rechner der im netzwerk ist...
aber ich kann doch den Server per rc.custom starten und den client manuel per telnet
 
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:
... 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. ;-)
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

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.