Erstellt vor 8 Jahren

Geschlossen vor 8 Jahren

#999 closed enhancement (fixed)

IPv6 & inetd

Erstellt von: cuma Verantwortlicher:
Priorität: normal Meilenstein: freetz-1.2
Komponente: packages Version: devel
Stichworte: inetd ipv6 Beobachter:
Product Id: Firmware Version:

Beschreibung

Da in der nächsten Firmware IPv6 möglich sein wird, bzw jetzt schon durch aiccu oder gw6 möglich ist sollte auch inetd dies unterstützen. Momentan ist unser inetd durch diese Zeile inetdcfg_proto=tcp in den *.inetd nur auf IPv4 konfiguriert.

Für diese Zeile ist möglich

tcp, tcp4	TCP (IPv4)
udp, udp4	UDP (IPv4)
tcp6		TCP (IPv6)
udp6		UDP (IPv6)
tcp46		TCP sowohl unter IPv4 als auch unter IPv6
udp46		UDP sowohl unter IPv4 als auch unter IPv6

Bei meinen Tests hat sich aber herausgestellt, dass der BB-inetd nur die Keywords tcp, tcp6, udp und udp 6 unterstützt, also nicht beide Protokolle in einer Datei gleichzeitig beherrscht!
So müsste man dann für 4 & 6 zwei .inet Dateien haben (oder den Paramter als Variable veränderbar gestalten und 2x aufrufen)

  • Soll jeder Daemon der momentan per inetd auf IPv4 lauscht auf dem gleichen IPv6 Port lauschen?
  • Soll es davon abhängen ob die Firmware IPv6 unterstützt (evtl ein Problem: aiccu startet nach inetd, und erst eine Internetverbindung da ist und wenn eine korrekte Uhrzeit auf der Box gesetzt ist)
  • Oder soll jedes Package "einzeln" für IPv 4 und/oder 6 konfigurierbar sein?

Anhänge (1)

inetd6.patch (11.6 KB) - hinzugefügt von cuma vor 8 Jahren.
kleiner Schreibfehler, sonst keine Änderungen

Alle Anhänge herunterladen als: .zip

Änderungshistorie (13)

comment:1 Geändert vor 8 Jahren durch Whoopie

tcp46 und udp46 sind wie erwähnt nicht in busybox's inetd enthalten. Aber wenn man tcp6/udp6 verwendet, lauscht das Programm sowohl auf IPv4 (als IPv4-mapped IPv6-Adresse, z.B. ::ffff:192.168.178.1) und IPv6.

Daher braucht man meiner Ansicht nach nicht 2 .inetd-Dateien.

comment:2 Geändert vor 8 Jahren durch cuma

Lustige Sache, obwohl

netstat -an |grep :82
tcp        0      0 :::82                   :::*                    LISTEN

funktioniert IPv4 auch. Dann sind keine 2 .inetd Dateien nötig.
Damit wäre es am einfachsten das "inetdcfg_proto=" allgemein irgendwie zu setzen. Außer man bräuchte es je Package

comment:3 Geändert vor 8 Jahren durch cuma

Falls man es nicht pro Package braucht könnte es so aussehen. Es fehlt aber noch die Bedingung ob IPv6 überhaupt in der Firmware verfügbar ist
Probleme machen übrigens Freetz-Samba und svnserve, da beide in den .inetd den "inetdcfg_port=" eine IP(v4) mitgeben

comment:4 Geändert vor 8 Jahren durch cuma

modinetd führt jetzt noch ein modprobe ipv6 aus, da ansonsten keinem Port abgehört wird

comment:5 Geändert vor 8 Jahren durch oliver

Ich find das nicht gut, dass modinetd ein "modprobe ipv6" ausführt. Das gehört da nicht hin. Sollten wir nicht besser sicherstellen, dass IPv6 verfügbar ist, wenn es bei den Packages benötigt wird. Testen könnten wir das mit diesen Dateien unter /proc.

comment:6 Geändert vor 8 Jahren durch cuma

Finde es da okay, wird nur ausgeführt wenn ipv6 für inetd im Webinterface aktiv ist.
Inetd wird (durch STARTLEVEL) vor gw6 und aiccu (brauch auch richtige Zeit) ausgeführt. Falls das Modul ipv6 nicht geladen ist, hört inetd den Port gar nicht ab, auch nicht IPv4! Dann müssten aiccu/gw6/Labor-FW ein komplettes Neuerstellen der inetd.conf anstossen. Das wäre aber ein Schritt zurück, da es dann sinnlos ist dass sich jedes Paket selbst bei inetd registriert

comment:7 Geändert vor 8 Jahren durch Whoopie

Im OpenVPN-CGI testen wir auf IPv6 mit HASIPV6=$([ -d /proc/sys/net/ipv6 ] && echo true). Vielleicht kann man das hier auch so machen.

comment:8 Geändert vor 8 Jahren durch cuma

Soweit schon klar, das macht aber unnötigen Aufwand. Also falls kein IPv6 Modul geladen ist nur IPv4 nutzen? Und später inetd neu konfigurieren? Wodurch erkennt inetd, dass IPv6 geladen wurde?

Geändert vor 8 Jahren durch cuma

kleiner Schreibfehler, sonst keine Änderungen

comment:9 Geändert vor 8 Jahren durch cuma

(In [5647]) inetd IPv6 support added (refs #999):

  • could be enabled by webinterface if the image has ipv6 support
  • fallback to ipv4 if ipv6 is not (anymore) integrated into image
  • if enabled, ipv6 module is loaded at inetd startup so listening is possible. We hadn't found a better solution atm
    • packages could have custom config via .inetd file like freetz-samba or subversion: if a ip v4 is configured, tcp6 is not enabled
  • WARNING: You should set up properly firewall settings!

comment:10 Geändert vor 8 Jahren durch cuma

Also wenn jemand eine bessere Lösung für das Laden der ipv6.ko hat, bitte her damit.

comment:11 Geändert vor 8 Jahren durch cuma

(In [5650]) inetd + IPv6 (refs #999)
Labor seems to have ipv6 integrated into the kernel, so extend the way of detecting if ipv6 is installed (activated or not)

comment:12 Geändert vor 8 Jahren durch oliver

  • Lösung auf fixed gesetzt
  • Status von new nach closed geändert

Laut cuma ist das Problem zufriedenstellend gelöst → hier zu

Hinweis: Hilfe zur Verwendung von Tickets finden Sie in TracTickets.