OE 2 IPv6

  • Danke vielen Dank du hast mir und vielen anderen Usern wirklich sehr geholfen. Schade das es keinen Danke Button gibt :grinning_squinting_face: .

  • Also ich hätte da noch eine einzige Frage nähmlich ob die Zusammenfassung von mir zur Konfiguration richtig ist :


    IPV4 auf DHCP und IPV6 auf auto in der /etc/network/interfaces stellen geht nicht da die Dreambox sich sonst mit keinem Netzwerk verbindet.


    IPV4 statisch Konfigurieren und gar nichts (nichtmal den auto befehl zu IPV6) zur IPV6 Konfiguration in der /etc/network/interfaces/ bewirkt das die Box IPV4 statisch und IPV6 automatisch nutzt


    IPV4 statisch Konfigurieren und IPV6 auf auto in der /etc/network/interfaces stellen geht nicht da die Dreambox sich sonst gar nicht mit dem Netzwerk verbindet.


    Ist dies wirklich so im Linux Kernel vorgesehen und hat so seine Richtigkeit und man muss eine statische IPV4 nutzen oder mache Ich noch einen Fehler ?

  • Ok ich habe nun rausgefunden das IPV6 Tokenized Interface Identifiers erst im Linux Kernel 3.10 möglich sind. Deshalb will ich nun das Dreambox Image mit diesem Kernel kompilieren. Ich muss dafür doch nur in der linux-dreambox_3.2.bb den Link zu dem neuen Linux Kernel ändern und alle Patches werden automatisch angewendet oder ?

  • Was heisst gegebenenfalls ? Gar nicht oder sind nur einige Bugs zu erwarten ?
    Wenn es gar nicht geht werde ich eben noch etwas warten bis auf einen neueren Kernel gewechselt wird (auch wenn dies erst bei einer neueren Box passiert :winking_face: ).

  • Der aktuelle 3.13 Kernel ist sogar 1Mb kleiner als der der 3.2er. Ich kann aber auch verstehen wenn ihr nicht wechseln wollt da es wirklich ein ziehmlicher Aufwand sein kann. Aber an der Größe sollte es jedenfalls nicht liegen. Ich würde mir aber wünschen das wenigstens bei den zukünftigen Boxen ein aktuellerer Kernel benutzt wird.

  • Hi ich bins nochmal :smiling_face: .
    Mir ist aufgefallen das Python auf der Dream ohne IPv6 gebaut wurde. Könnte dies vll beim nächsten Experimental mitgebaut werden ? Es ist immerhin nur ein Patch von einigen wenigen Zeilen was ja wirklich nicht zuviel verlangt ist da es ja wohl kaum ein Aufwand ist. Hier ist der Link zum Patch : Klick


    Ich war auch nicht untätig und habe ein kleines Script geschrieben welches die Ausgabe von Iproute2 in eine Textdatei umleitet und dann Schritt für Schritt den Inhalt der Textdatei mit sed auf das Präfix reduziert. Dann hab ich den Inhalt der Textdatei als Variable gesetzt mit der die feste Interface ID anhalt des Präfixes der Textdatei gebildet wird. Ich werde das Script jetzt erstmal etwas testen und dann hier veröffentlichen. Es wäre schön wenn ihr in der Zwischenzeit den winzigen Patch in Python bei den nächsten Images einarbeiten könntet was eine Arbeit von 5 min sein sollte.


    Dann sollte die Box endlich voll IPV6 fähig sein :smiling_face:


    LG


    xxlsm

  • Ich bin es auch nochmal...
    Du solltest dich vorher mal genauer informieren bevor du hier irgenwelche Forderungen stellst.
    Der verwendete twisted ist nicht IPv6 fähig, das geht erst in höheren Versionen. Also wäre es völlig sinnfrei das Python mit IPv6 zu bauen, wobei ich nicht mal sicher bin ob die aktuell verwendete Pythonversion das überhaupt kann.

  • Ich hab mich vorher informiert und das alles sogar ausprobiert :). Die Dream bentutzt Twisted 12.0 was die erste Version war die IPV6 unterstützt hat. Die Pyhon Version der Dreambox ist aktuell genug IPV6 muss nur mitgebaut werden z.b mit dem Patch. Das OpenPli z.b und diverse andere Images benutzen exakt die gleiche Python Version nur mit IPV6 Support. Welche Twisted Version dort benutzt wird kann ich leider nicht sagen aber die 12er kam mit IPv6 Support. Und selbst wenn es erst ab 12.1 oder irgendeiner höheren Version gehen sollte, sollte dies kein Problem darstellen da es ja auch nicht so schwer ist ein minimal aktuelleres Twisted zu compilieren. Das dies alles geht beweisen diverse andere Images bei denen dies alles funktioniert.
    Wenn man sich also die Python Libs von einem anderen Image "krallt" und die in dem Dream Image ersetzt funktionert alles ohne Probleme. Es sollte auch keine Probleme mit den bisherigen geschriebenen Plugins geben da es ja immer noch bei der selben Python version (2.7) bleibt.
    Und bis jetzt lag ich mit meinen "Forderungen" ja noch richtig. Denn das der Linux Kernel erst ab version 3.10 das Token Feature unterstützt wirst du nicht verneinen können. Und dies war in dem Sinne auch keine Forderung da ich ja eig. auch Verständnis gezeigt habe bezüglich der damit verbundenen Probleme beim Kernel Umstieg dies war eher ein Verbesserungsvorschlag für die Zukunft. Das mit der Python Version war eher eine Forderung da gebe ich dir uneingeschränkt Recht, dies ist aber eher eine richtig kleine da es ja andere Image bauer auch hingekriegt haben ein minimal aktuelleres Twisted zu benutzen oder eine Python Version mit einem Patch zu bauen. Es muss ja nicht mal gebaut werden es könnte ja einfach vom OpenPli beispielsweise übernommen werden so wie es bei mir aktuell der Fall ist.


    Ich will nur sagen diese Vorschläge waren bis jetzt alle nur gut gemeint und falls ich iwann einen anderen Eindruk erweckt haben sollte so tut es mir leid.

    2 Mal editiert, zuletzt von xxlsm ()

  • Ich würde bei IPv6 generell zu

    Code
    iface eth0 inet6 auto

    raten.
    Denn eigentlich bringt IPv6 alles mit um nicht mehr mit manueller ip-vergabe rumspielen zu müssen.

    Wenn ich das so zusätzlich in die "/etc/network/interface" eintrage bootet meine Box garnicht mehr!
    Wie muss die fertig "/etc/network/interface" denn für ipv4 static und ipv6 dhcp aussehen :confused_face:


    Gruss slonnet

  • Hi konfigurier dir mal übers GUI (also über die Fernbedienung) eine feste IPV4 Adresse und installier dir das Kernel Modul IPV6. Du musst nichts editieren. Dann einfach Box neustarten und die IPV6 Adressen werden automatisch gebildet.

  • Hi ich bins nochmal :smiling_face: .
    Mir ist aufgefallen das Python auf der Dream ohne IPv6 gebaut wurde. Könnte dies vll beim nächsten Experimental mitgebaut werden ? Es ist immerhin nur ein Patch von einigen wenigen Zeilen was ja wirklich nicht zuviel verlangt ist da es ja wohl kaum ein Aufwand ist. Hier ist der Link zum Patch : Klick

    Das ist eigentlich nicht der ganze Patch ...
    ./configure hat immer die Macke, daß es beim Cross-Compilen viele Checks nicht durchführen kann, u.a. auch den, ob die Zielplattform "buggy_getaddrinfo" hat.


    Der eigentliche Patch ist dieser hier: http://lists.busybox.net/piper…ot/2012-April/052896.html
    Ohne diesen Patch führt --enable-ipv6 zu einem Fehler beim Cross-Kompilieren, er war aber im max-tdt sogar schon drin, so daß dort wirklich nur noch --enable-ipv6 nötig war.



    Nichtsdestotrotz ist es ein Klacks, Python mit IPv6-Support zu kompilieren und es kann auch zu keinen Wechselwirkungen kommen, weil man für IPv6 auch immer mit AF_INET6, [::], etc. pp. programmieren muß, d.h. ein Plugin, welches nicht für IPv6 umgeschrieben wird, nutzt es somit auch nicht und kann deshalb auch nicht daran kaputtgehen.


    Das hier ist übrigens der Patch für das old Webif, um es IPv6-tauglich zu machen, ursprünglich extra für HDMU vom OpenWebif backported :smiling_face: :


    Python
    diff -Nur Extensions.old/WebInterface/plugin.py Extensions/WebInterface/plugin.py--- Extensions.old/WebInterface/plugin.py	2013-10-13 13:42:43.000000000 +0200+++ Extensions/WebInterface/plugin.py	2014-04-16 19:13:21.995689400 +0200@@ -10,14 +10,14 @@ from WebChilds.Toplevel import getToplevel from Tools.HardwareInfo import HardwareInfo -from Tools.Directories import copyfile, resolveFilename, SCOPE_PLUGINS, SCOPE_CONFIG+from Tools.Directories import copyfile, resolveFilename, SCOPE_PLUGINS, SCOPE_CONFIG, fileExists  from twisted.internet import reactor, ssl from twisted.internet.error import CannotListenError-from twisted.web import server, http, util, static, resource+from twisted.web import server, http, util, static, resource, version  from zope.interface import Interface, implements-from socket import gethostname as socket_gethostname+from socket import gethostname as socket_gethostname, has_ipv6 from OpenSSL import SSL, crypto from time import gmtime from os.path import isfile as os_isfile, exists as os_exists@@ -239,6 +239,12 @@ 		root = HTTPRootResource(toplevel) 		site = server.Site(root) +	if has_ipv6 and fileExists('/proc/net/if_inet6') and version.major >= 12:+		if ipaddress == '0.0.0.0':+			ipaddress='::'+		elif ipaddress == '127.0.0.1':+			ipaddress='::1'+ 	if usessl: 		ctx = ChainedOpenSSLContextFactory(KEY_FILE, CERT_FILE) 		try:@@ -386,7 +392,7 @@ 		host = request.getHost().host 		#If streamauth is disabled allow all acces from localhost 		if not config.plugins.Webinterface.streamauth.value:-			if( host == "127.0.0.1" or host == "localhost" ):+			if( host == "::ffff:127.0.0.1" or host == "127.0.0.1" or host == "localhost" ): 				print "[WebInterface.plugin.isAuthenticated] Streaming auth is disabled bypassing authcheck because host is '%s'" %host 				return True diff -Nur Extensions.old/WebInterface/WebComponents/Sources/RequestData.py Extensions/WebInterface/WebComponents/Sources/RequestData.py--- Extensions.old/WebInterface/WebComponents/Sources/RequestData.py	2013-10-13 13:42:43.000000000 +0200+++ Extensions/WebInterface/WebComponents/Sources/RequestData.py	2014-04-16 19:12:01.453082600 +0200@@ -24,7 +24,12 @@  	def getHTML(self, id): 		if self.what is self.HOST:-			return self.request.getRequestHostname()+			host = self.request.getHeader(b'host')+			if host:+				if host[0]=='[':+					return host.split(']',1)[0] + "]"+				return host.split(':', 1)[0].encode('ascii')+			return self.request.getHost().host.encode('ascii') 		elif self.what is self.PORT: 			return str(self.request.host.port) 		elif self.what is self.METHOD:

    Receiver/TV/PC:

    • Ultimo / OpenPLi 4.0 / 4*DVB-S2 / 1,8TB WD20EURS / Samsung 50" Plasma / Yamaha RX-V 663 / Teufel 5.1
    • TF7700 / HDMU / 465GB / Samsung 32" TFT
    • DVBSky S-Twin / Samsung SyncMaster T240HD / Yamaha RX-V595aRDS / 5.0 :o
    • TechniSat SkyStar HD2 / Medion 17" (2.PC)

    Alles per Kabel vernetzt :winking_face:


    Pay-TV: Redlight HD&Astra, Brazzers, FL, Hallo, HD-
    Internet: UM 1play 100 / Cisco3212+F!B7390 / IPv4 (UM)+IPv6 (SixXS)

    4 Mal editiert, zuletzt von SpaceRat ()

  • if has_ipv6 and fileExists('/proc/net/if_inet6') and version.major >= 12:
    ...
    Die if_inet6 existiert auf jedenfall auf der Dreambox. Der einzige Grund warum die DB den Check nicht besteht scheint wohl die Funktion version.major zu sein. Weiß zufaällig jemand was diese Funktion bewirkt ?

    Das sind drei Checks:
    1. /proc/net/if_inet6 testet den Kernel auf IPv6-Support
    2. has_ipv6 (aus socket) testet, ob Python mit IPv6-Support gebaut wurde.
    3. version.major (Aus twisted) testet auf eine Version größer/gleich 12.0.0


    Alle drei Bedingungen müssen erfüllt sein, damit das Web-Interface IPv6 unterstützen kann.

    Receiver/TV/PC:

    • Ultimo / OpenPLi 4.0 / 4*DVB-S2 / 1,8TB WD20EURS / Samsung 50" Plasma / Yamaha RX-V 663 / Teufel 5.1
    • TF7700 / HDMU / 465GB / Samsung 32" TFT
    • DVBSky S-Twin / Samsung SyncMaster T240HD / Yamaha RX-V595aRDS / 5.0 :o
    • TechniSat SkyStar HD2 / Medion 17" (2.PC)

    Alles per Kabel vernetzt :winking_face:


    Pay-TV: Redlight HD&Astra, Brazzers, FL, Hallo, HD-
    Internet: UM 1play 100 / Cisco3212+F!B7390 / IPv4 (UM)+IPv6 (SixXS)

  • Und 12.0.0 ist falsch weil twisted erst ab 12.1.0 IPv6 Support hat.

    Das stimmt nicht:

    Code
    root@vuduo2:~# pythonPython 2.7.3 (default, Sep  7 2013, 12:14:16)[GCC 4.8.1] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> import twisted>>> twisted.version
    Version('twisted', 12, 0, 0)>>>

    Receiver/TV/PC:

    • Ultimo / OpenPLi 4.0 / 4*DVB-S2 / 1,8TB WD20EURS / Samsung 50" Plasma / Yamaha RX-V 663 / Teufel 5.1
    • TF7700 / HDMU / 465GB / Samsung 32" TFT
    • DVBSky S-Twin / Samsung SyncMaster T240HD / Yamaha RX-V595aRDS / 5.0 :o
    • TechniSat SkyStar HD2 / Medion 17" (2.PC)

    Alles per Kabel vernetzt :winking_face:


    Pay-TV: Redlight HD&Astra, Brazzers, FL, Hallo, HD-
    Internet: UM 1play 100 / Cisco3212+F!B7390 / IPv4 (UM)+IPv6 (SixXS)

  • Doch das stimmt und auf der VU kann nichtmal das Python standardmässig IPv6 :face_with_tongue:
    Twisted 12.0.0 kann das nur partiell, ab 12.1.0 etwas besser aber immer noch nicht vollständig. Selbst in 12.2.0 noch nicht.


    root@vuduo2:~# python
    Python 2.7.2 (default, Nov 1 2013, 18:31:36)
    [GCC 4.6.4 20120303 (prerelease)] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from socket import has_ipv6
    >>> has_ipv6
    False

  • Doch das stimmt und auf der VU kann nichtmal das Python standardmässig IPv6 :face_with_tongue:


    Nun, das ist eine reine Compile-Switch-Einstellungssache und keine Frage der Version, an sich kann Python schon ewig IPv6.
    Wenn man natürlich --disable-ipv6 drin läßt, dann wird Python nicht einmal in Version 3.4.0 IPv6 können.


    Twisted 12.0.0 kann das nur partiell, ab 12.1.0 etwas besser aber immer noch nicht vollständig. Selbst in 12.2.0 noch nicht.


    Twisted ist alles andere als fehlerfrei und bestimmte Aspekte fluppen selbst in 13.2.0 noch nicht.
    Tatsache ist aber, daß für unseren banalen Listener der IPv6-Support der 12.0.0 ausreicht.



    Tjor.
    Schlechtes Image ...


    Bei guten Images kommt

    Zitat

    Topf:~# python -c 'import twisted,socket; print socket.has_ipv6; print twisted.version'
    True
    [twisted, version 13.0.0]


    oder zumindest

    Zitat

    root@ultimo:~# python -c 'import twisted,socket; print socket.has_ipv6; print twisted.version'
    True
    [twisted, version 12.0.0]


    bzw.

    Zitat

    root@vuduo2:~# python -c 'import twisted,socket; print socket.has_ipv6; print twisted.version'
    True
    [twisted, version 12.0.0]


    Und so sieht netstat bei einem Premium-Image (HDMU auf dem Topfield) aus:


    Nur der Samba murkst da noch mit IPv4 rum, aber nirgendwo ist IPv6 unwichtiger als bei Samba.

    Receiver/TV/PC:

    • Ultimo / OpenPLi 4.0 / 4*DVB-S2 / 1,8TB WD20EURS / Samsung 50" Plasma / Yamaha RX-V 663 / Teufel 5.1
    • TF7700 / HDMU / 465GB / Samsung 32" TFT
    • DVBSky S-Twin / Samsung SyncMaster T240HD / Yamaha RX-V595aRDS / 5.0 :o
    • TechniSat SkyStar HD2 / Medion 17" (2.PC)

    Alles per Kabel vernetzt :winking_face:


    Pay-TV: Redlight HD&Astra, Brazzers, FL, Hallo, HD-
    Internet: UM 1play 100 / Cisco3212+F!B7390 / IPv4 (UM)+IPv6 (SixXS)

  • Ah ja:


    Zitat

    root@ultimo:~# openvpn --version
    OpenVPN 2.3.2 mipsel-oe-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Apr 13 2014


    Zitat

    Topf:~# openvpn --version
    OpenVPN 2.3.3 sh4-unknown-linux-gnu [SSL (OpenSSL)] [LZO] [EPOLL] [MH] [IPv6] built on Apr 9 2014


    Weitgehend vollständiger IPv6-Support unter Enigma2 ist längst keine Frage der Möglichkeit der beteiligten Programme und Dienste mehr, sondern nur noch eine des Wollens bzw. Nichtwollens//Leistungsverweigerung.

    Receiver/TV/PC:

    • Ultimo / OpenPLi 4.0 / 4*DVB-S2 / 1,8TB WD20EURS / Samsung 50" Plasma / Yamaha RX-V 663 / Teufel 5.1
    • TF7700 / HDMU / 465GB / Samsung 32" TFT
    • DVBSky S-Twin / Samsung SyncMaster T240HD / Yamaha RX-V595aRDS / 5.0 :o
    • TechniSat SkyStar HD2 / Medion 17" (2.PC)

    Alles per Kabel vernetzt :winking_face:


    Pay-TV: Redlight HD&Astra, Brazzers, FL, Hallo, HD-
    Internet: UM 1play 100 / Cisco3212+F!B7390 / IPv4 (UM)+IPv6 (SixXS)

    • Offizieller Beitrag

    Hi,


    aber sonst geht es Dir noch gut?


    Wer gibt Dir denn das Recht irgendwelche Vorderungen zu stellen, oder gar uns Vorschriften darüber zu machen was wir zu tun und zu lassen haben?


    Aber wenn DU IPV6 Support unbedingt benötigst, darfst Du es gerne selber einbauen.


    In diesem Fall ist auch alles was notwendig ist offen. Sprich alle Sourcen sind verfügbar.


    Also dann mal los.


    cu!