Es geht: FBF ohne dsld aber mit DSL

MaxMuster

IPPF-Promi
Mitglied seit
1 Feb 2005
Beiträge
6,932
Punkte für Reaktionen
0
Punkte
36
Hallo zusammen,

dieser Post ist eine Premiere (für mich), denn meine Box ist zwar per DSL im Internet, aber ohne dsld ;-)

So gehts: Die Auswahl von "Remove dsld" lässt ja netterweise die eigentlichen DSL-Treiber und Firmware im Image. Mittels PPPoE und Co. kommt man so ins Internet wie alle Opensource-Router.

Das habe ich gemacht: pppd gewählt und die Module für PPPoE gebaut und ins Image gepackt. Dafür war zumindest bei mir "replace kernel" Voraussetzung, sonst lief ppp nicht.
Für die Module habe ich direkt beim Kernel PPPoE ausgewählt:
"make kernel-menuconfig" in Device-driver -> Network device support: PPPoE
Das erforderliche "br2684" war schon ausgewählt.
Dann ein "make kernel-precompiled" zum Bauen der Module.
(Frage dazu: Kann man aus dem Freetz heraus die zu Kernel-Config irgendwie beeinflussen?!?)

Um den pppd zu nutzen, muss vorher das DSL-Modem in die Box gebrückt werden mit br2684. Das Config-Programm dafür (br2684ctl) habe ich nicht so kompiliert bekommen, deshalb im openwrt ein statisches Binary gebaut und genutzt.

Ich habe ein paar Rudimentäre Dateien (zu freetz-1.0) angehängt. Die "GUI" ist wirklich minimal und die Eingabe vom PW in Klartext sicher nicht optimal. Aber es sollte ja erstmal ein "Proof of Concept" sein...

BITTE BEACHTEN: Die Box ist danach direkt mit dem Internet verbunden. Keine AVM-Firewall, nix schützt euch!

Um eine Firewall zu haben und um das Internet aus den angeschlossenen Netzen nutzen zu können, benötigt ihr iptables!!!

Viel Spaß und schönes Wochenende!

Jörg

EDIT : Neuer Patch, ich hatte das Config.in im obersten Ordner vergessen...
 

Anhänge

Zuletzt bearbeitet:

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Schau mal ob du mit diesem Changeset was anfangen kannst?

br2684 ist bei mir fest im Kernel drin. Da sollte es kein Modul brauchen.

MfG Oliver
 

MaxMuster

IPPF-Promi
Mitglied seit
1 Feb 2005
Beiträge
6,932
Punkte für Reaktionen
0
Punkte
36
... beim br2684 hatte ich mich dumm ausgedrückt. Das war tatsächlich fest "fest ausgewähl", ich wusste nur nicht, ob das immer so ist.
Da war ich zunächst drüber gestolpert, denn im openwrt wurde da vorher das Kernelmodul geladen, was dann bei "unserem" Kernel natürlich unnötig war...

Das neue Changeset sehe ich mir an, aber vermutlich erst morgen, vorgestern und gestern war ich doch etwas zu lange dran ;-)

Vielen Dank!


Jörg

EDIT Erste Rückmeldung: Baut br2684ctl, aber das braucht zumindest noch "libresolv"... Ich schaue später nochmal, muss jetzt weg.
EDIT Ein zusätzliches "select" und es geht (oder müsste es eigentlich als select in die libatm?!?) Hier ein diff zur Revision 2340, das "pppoedsl"-Paket von oben muss natürlich noch etwas geändert werden ;-)
 

Anhänge

Zuletzt bearbeitet:

Silent-Tears

IPPF-Promi
Mitglied seit
3 Aug 2007
Beiträge
7,456
Punkte für Reaktionen
0
Punkte
0
Einfach mal, dass man nicht mehr auf Closed Source von AVM angewiesen ist, sondern selber eingriff in die Verbindungssachen hat.
 

ichego1

Mitglied
Mitglied seit
19 Dez 2005
Beiträge
707
Punkte für Reaktionen
0
Punkte
0
Ich denke das Max Muster uns das genau erklären wird
in diesem Moment rätselt jeder
aber wir sollten MaxMuster das Wort geben was er sich dabei gedacht hat
und ich bin überzeugt das es bestimmt wieder etwas dolles für Freetz ist

gruss ichego1
 
Zuletzt bearbeitet von einem Moderator:

Silent-Tears

IPPF-Promi
Mitglied seit
3 Aug 2007
Beiträge
7,456
Punkte für Reaktionen
0
Punkte
0
@ichego1

Ich bitte dich noch einmal, nicht das halbe Posting in die Überschrift zu stecken. Das ist nicht förderlich für den Lesefluss, und hebt dein Posting über die technisch relevanten hinaus.
 

MaxMuster

IPPF-Promi
Mitglied seit
1 Feb 2005
Beiträge
6,932
Punkte für Reaktionen
0
Punkte
36
... hm, was soll ich da noch erklären?!? Wie geschrieben kann ich damit per DSL ins Internet, ohne auf den proprietären "dsld" von AVM angewiesen zu sein, der z.B. eine "ZwangsNAT" macht usw. Natürlich mit dem Nachteil, das man alles das, was die Box "von sich aus macht" eben nachbilden muss, z.B. mit iptables.

Folgendes ist mein Stand:

  • Internet geht
  • DNS muss ich von Hand in /etc/resolv.conf eintragen (das könnte man nach einer Verbindung des pppd's sicher noch aus der Augabe herausziehen; der Eintrag "usepeerdns" macht das scheinbar nicht...)
  • Der Box-DHCP verteilt scheinbar immer die Box-IP als DNS, das klappt aber nicht, da müsste auch der Externe DNS vergeben werden. Anderen DHCP nutzen?
  • Mit Portweiterleitung klappt auch VoIP (nur rausgehend getestet), die Status-Anzeige sagt aber immer "nicht verbunden", weil die Box nicht weiß, dass sie im Internet ist ;-)
  • Hier mal meine Iptables Grundkonfig, Kommentare und Anregungen gern gesehen:
    Code:
    -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
    -A INPUT -m state --state NEW -i ! ppp0 -j ACCEPT
    -A INPUT -p tcp -i ppp0 -d 0.0.0.0/0 --dport 22 -j ACCEPT
    -A INPUT -p tcp -i ppp0 -d 0.0.0.0/0 --dport 5060 -j ACCEPT
    -A INPUT -p udp -i ppp0 -d 0.0.0.0/0 --dport 5060 -j ACCEPT
    -A INPUT -p udp -i ppp0 -d 0.0.0.0/0 -j DROP
    -A INPUT -p tcp -i ppp0 -d 0.0.0.0/0 -j DROP
    -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
  • Langzeitstabilität mit iptables ist nicht getestet.

Jörg

EDIT Der pppd schreibt bei "usepeerdns" die DNS nach /etc/ppp/resolv.conf, da muss man sie dann noch kopieren.
Die Tatsache dass User und PW im Klartext in der Seite sind, ist auch noch blöd. Da könnte man eigentlich noch die Daten aus dem AVM-Interface aus der ar7.cfg nehmen und darauf in der Seite verzichten. Die VPI VCI Sachen stehe auch drin, also eigentlich könnte ich mir die "GUI" schenken und direkt aus der ar7.cfg auslesen.

Auch wie lange der pppd sich normalerweise einwählt, was bei der Zwangstrennung passiert usw, alles das ist noch offen.
 
Zuletzt bearbeitet:

frank_m24

IPPF-Urgestein
Mitglied seit
20 Aug 2005
Beiträge
17,571
Punkte für Reaktionen
1
Punkte
36
Hallo,

die VPI/VCI Konfig holst du also aus der ar7.cfg? Hast du schon Erfahrung mit einer 2. PVC? Unterstützung von VLAN Tags?

Theoretisch müsste es doch auch möglich sein, mit dem Verfahren über ein externes Modem die PPPOE Verbindung aufzubauen. Ich bin bislang nämlich gescheitert, 2 PVCs über ein externes Modem zu etablieren, da der dsld irgendwie keine 2 PPPOE Verbindungen über ein externes Modem triggern will. Versuche, manuell eine Aufteilung auf VLAN IDs zu erzwingen, sind bislang gescheitert. Bei einem extra dafür angeschafften Modem (AR860) kann man nämlich mehrere VPI/VCI Paare getrennt über VLAN Tags ansprechen. Jetzt fehlt mir nur noch die PPPOE Unterstützung dafür auf der anderen Seite ...
 

MaxMuster

IPPF-Promi
Mitglied seit
1 Feb 2005
Beiträge
6,932
Punkte für Reaktionen
0
Punkte
36
Hi Frank,

das war nur eine Idee, wie man das in Zukunft machen könnte/sollte; noch trage ich die Daten manuell ein.

Im Prinzip gibt es ja zwei Möglichkeiten: Die Werte aus der ar7.cfg nehmen, oder aber aus den ermittelten Werten in /proc/avalanche/avsar_channels arbeiten.

Getestet habe ich es nicht, da aber mein pppd Aufruf das Interface nas0 nimmt, sollte ethx auch möglich sein. Mit zwei Aufrufen sollte es gehen, wenn ich die VLANS als unterschiedliche "Interfaces" ansprechen kann.
Für die interne Lösung sollte das auf jeden Fall gehen: für den zweiten Channel mit seinen VPI/VCI ein weiteres Bridge-Interface bauen und darüber eine weitere PPPoE-Session machen. Falls ich da heute Abend mal zu komme, werde ich das zumindest mit dem internen Modem mal testen (ich weiß aber nicht, warum ich eigentlich 2 Channels habe, da ich bei Versatel nur meine DSL-Flatrate und Telefon über echtes ISDN habe.) Ob das also überhaupt funktionieren kann???

Jörg

EDIT Nein, ich müsste die Daten aus /proc/avalanche/avsar_pvc_table nehmen, da hebe ich nur einen PVC, kann ich also nicht testen...
 
Zuletzt bearbeitet:

Scorch

Neuer User
Mitglied seit
15 Jun 2008
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
Klingt hochinteressant, nur wie genau spielt der avm-dsld mit der avm-telefonie-software zusammen? Ich beschäftige mich erst seit Kurzen mit der Fritzbox, aber ich bin schon auf erheblichen Widerstand gestossen als ich versucht habe herauszufinden wo die avm-telefonie-software hinverbindet und wie ich mit einem asterisk dort hin komme.

Aber vielleicht is gerade das austauschen vom avm-dsld das was man tun muss damit es funktioniert?
 

MaxMuster

IPPF-Promi
Mitglied seit
1 Feb 2005
Beiträge
6,932
Punkte für Reaktionen
0
Punkte
36
Mit den oben geposteten iptables Einstellungen konnte ich meinen VoIP-Account zumindest zum raustelefonieren nutzen.

Wie die AVM-Spezialitäten (VoIP über einen anderen DSL-PVC ... ) funktionieren, weiß ich nicht...

Jörg
 

MaxMuster

IPPF-Promi
Mitglied seit
1 Feb 2005
Beiträge
6,932
Punkte für Reaktionen
0
Punkte
36
...jetzt auch ohne multid ;-)

So, noch ein wenig gebastelt, nun klappt es auch ohne multid (bei mir zumindest).

Multid wurde noch für das Bridging und das Zuweisen der IPs benötigt, den Part habe ich versucht nachzubauen.

Die PPPoE Oberfläche kann nun die Daten aus der ar7.cfg übernehmen, beim Starten des Netzwerkes werden auch die Schnittstellen aus der ar7.cfg "gefüttert". Es werden jetzt auch inadyn und dnsmasq hinzugewählt, um eine "Näherung" zur Originalfunktion zu haben. Mit pppd 2.4.4 scheint es auch zu laufen.

Zum OpenVPN habe ich auch noch ein kleines Update gebaut, damit ein gebrücktes VPN-Interface automatisch zum LAN hinzugefügt wird. Scheinbar schaut der multid sonst ständig, ob ein neues Bridge-Interface dazugekommen ist und fügt das dann ein und es sollte ja nun auch halbwegs dem "Original" entsprechen ;-)...

Natürlich wieder der Hinweis: Seeeehr experimentell, und auch nur auf meiner "alten" Eumex getestet...

Grüße

Jörg

EDIT: Kleine Anmerkung, die mir gerade noch einfiel: Da ist noch meine "Backuplösung" mit drin. Auch bei "allen in einem Netz" habe ich das USB-Netzinterface aus der Bridge herausgenommen und fest auf 192.168.178.1 gesetzt. Das müssten Tester ggf. noch rausnehmen...
 

Anhänge

Zuletzt bearbeitet:

McNetic

Mitglied
Mitglied seit
7 Feb 2007
Beiträge
674
Punkte für Reaktionen
0
Punkte
16
Ich finde das eine sehr schöne Sache, die wir wenn möglich auch in Freetz aufnehmen sollten. Dazu muss das Ganze natürlich ziemlich 'out of the box' funktionieren.
 

MaxMuster

IPPF-Promi
Mitglied seit
1 Feb 2005
Beiträge
6,932
Punkte für Reaktionen
0
Punkte
36
Ja, in der Tat, eine Freetz-Integration wäre schick ;-)

Dafür wären natürlich noch ein paar Dinge nötig, an erster Stelle mutige Tester auf anderen Boxen ;-)

Die Frage wäre, wie man weiter vorgeht, um die Konfiguration hinzubekommen: Entweder (so habe ich das momentan gemacht) die Daten möglichst vollständig aus den AVM-Infos (ar7.cfg) herauszuziehen. Das ist natürlich erstmal praktisch und teilweise unumgänglich, um nach dem ersten Booten eine funktionierende Box zu bekommen (wenn z.B. der multid weg ist, hätte man sonst keine IPs).

Es bliebe die "Merkwürdigkeit", dass ich Änderungen in der AVM-GUI machen müsste, um "Freetzteile" zu konfigurieren.
Als hohes Ziel stellte ich mir eigentlich vor, die AVM-GUI nur noch für die notwendigen Dinge (z.B. Telefonie) zu nutzen und alle anderen Einstellungen (IPs, Zugangsdaten, Bridging...) in eigene Seiten auszulagern. Dabei bliebe dann die weitere Frage, ob man die ar7.cfg weiterhin zur Datenspeicherung nutzt oder die Infos in eigene "Konfigurationen" abspeichert.

Man könnte sich da sicher an die OpenWRT Seiten anlehnen, aber das würde wohl ein wirklich großes Projekt, dafür reichen meine Kapazitäten nicht aus...


Jörg
 

McNetic

Mitglied
Mitglied seit
7 Feb 2007
Beiträge
674
Punkte für Reaktionen
0
Punkte
16
Ich sehe das eigentlich genau so wie Du. Das Freetz-Webinterface wird sowieso demnächst umstrukturiert werden (das ist auf der Mailingliste schon besprochen worden), ich komme nur momentan nicht dazu. Das problematischste, was ich an der ganzen Sache sehe, ist, daß diese ganze Implementierung optional bleiben soll, da viele User möglichst wenig an den AVM-Sachen drehen möchten.
 

olistudent

IPPF-Urgestein
Mitglied seit
19 Okt 2004
Beiträge
14,779
Punkte für Reaktionen
10
Punkte
38
Diese Modifikation benötigt "replace kernel", deshalb muss die optional bleiben.

MfG Oliver
 

MaxMuster

IPPF-Promi
Mitglied seit
1 Feb 2005
Beiträge
6,932
Punkte für Reaktionen
0
Punkte
36
Das das optional bleiben muß ist schon klar, da sehe ich auch nicht so das ganz große Problem drin.

Meine Vorstellung wäre ganz grob, dass die Auswahl (wenn man dann mal soweit ist) einen Teil der AVM-GUI "entsorgt" und dafür eigene Config-Seiten einbindet. Beim ersten Start kann man dann die Dinge aus der ar7.cfg in die eigenen config-Dateien übernehmen, die ar7.cfg könnte dann auch (alternativ zu festen Werten) die Grundlage für "Default"-Einstellungen sein...

Momentan fehlt mir etwas der Antrieb, mich an ein Paket zu machen, denn "eigentlich" geht es ja und ich "habe das ja auch garnicht gewollt", sondern ich wollte nur die Frage beantworten, was man machen könnte, um komplett eigene Firewall- und Portforwardingregeln nutzen zu können;).

Jörg
 

MaxMuster

IPPF-Promi
Mitglied seit
1 Feb 2005
Beiträge
6,932
Punkte für Reaktionen
0
Punkte
36
Statusupdate

Hier vorm Urlaub mal mein Status:

Um die Größe des Images noch etwas kleiner zu bekommen habe ich jetzt folgenden Ansatz:

Der rausgepatchte multid wird "ersetzt" durch die Busybox-Tools "brctl" und "udhcpd" (deutlich kleiner als die bridge-tools bzw dnsmasq), die Config wird aus der ar7.cfg generiert, Unterschied ist, dass die Box als DNS den "echten" ProviderDNS weitergibt. Für "dyndns.org" wird beim Aufbau der DSL-Verbindung per wget der Name aktualisiert (Daten auch aus ar7.cfg).

Durch die Möglichkeit auf inadyn, dnsmasq und die bridge-utils verzichten zu können brauche ich zusätzlich zu den benötigten Paketen pppd und br2684ctl (und der größeren Busybox) nur noch iptables. Wenn ich das mit GUI wähle, habe ich eine resultierende Imagegröße die immerhin noch 30k kleiner ist ;-)

"Original:"
Code:
replacing busybox
  replacing busybox-4mb_26
  installing symlinks
replacing kernel
  replacing kernel-4mb_26-04.49 (iln6)
  installing modules
  generating modules.dep
installing packages
  dropbear-0.51
  openvpn-2.1_rc7
  haserl-0.9.24
  modcgi-0.2
invoking custom script
done.

STEP 3: PACK
  Checking for left over Subversion directories
squashfs blocksize
  root filesystem: 65536
packing var.tar
creating filesystem image
merging kernel image
  kernel image size: 3758848 (max: 3866624, free: 107776)
packing 300ip_as_fon_04.49-freetz-devel-2371M.en_20080710-104209.image
done.
"Remove dsld + remove multid + iptables mit GUI"
Code:
replacing busybox
  replacing busybox-4mb_26
  installing symlinks
replacing kernel
  replacing kernel-4mb_26-04.49 (iln6)
  installing modules
    arc4.ko
    sha1.ko
    ppp_deflate.ko
    ppp_mppe_mppc.ko
    slhc.ko
    pppoe.ko
    pppox.ko
    ppp_generic.ko
    ppp_async.ko
    crc-ccitt.ko
    ipt_state.ko
    ipt_multiport.ko
    ipt_MASQUERADE.ko
    iptable_filter.ko
    ipt_iprange.ko
    ipt_REDIRECT.ko
    iptable_nat.ko
    ip_conntrack.ko
    ipt_mac.ko
    ipt_LOG.ko
    ip_conntrack_ftp.ko
    ip_tables.ko
  generating modules.dep
installing packages
  iptables-cgi-1.0.4
  dropbear-0.51
  pppd-2.4.4
  openvpn-2.1_rc7
  br2684ctl-20040226
  haserl-0.9.24
  modcgi-0.2
  pppoedsl-1_alpha
invoking custom script
done.

STEP 3: PACK
  Checking for left over Subversion directories
squashfs blocksize
  root filesystem: 65536
packing var.tar
creating filesystem image
merging kernel image
  kernel image size: 3730176 (max: 3866624, free: 136448)
packing 300ip_as_fon_04.49-freetz-devel-2371M.en_20080710-105423.image
done.
Bliebe noch als Frage, warum das Bauen der Busybox mich nun nach einem Config-Parameter beim udhcpc (also beim Client, den ich garnicht gewählt habe) fragt und wie ich aus dem freetz-Lauf einen Busybox Configparameter (CONFIG_DHCPD_LEASES_FILE=) setzen kann...

Vielleicht findet sich ja noch ein Mutiger, der es auch mal auf einer anderen Box wagt...


Jörg
 

Anhänge

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,618
Beiträge
2,024,804
Mitglieder
350,472
Neuestes Mitglied
DGSSDGSDG