Beiträge von rxmd

    Verbastelt war da nix, das ist eine frische Installation, eine Woche alt (jetzt zwei) und weder Netzwerk- noch Druckerkonfiguration hatte ich angefaßt :) Und ich sitze halt nicht nur zuhause im stillen Kämmerlein und richte das Gerät einmal ein und gut ist, sondern ich bin viel unterwegs und muß mit wechselnden Geräten arbeiten.


    Das hatte ich ja auch schon geschrieben.


    Ansonsten gebe ich dir natürlich recht, dauerhaft offenlassen würde ich die Firewall-Ausnahmen auch nicht, aber wenn man's braucht, geht es jetzt.

    So, ich habe es jetzt am Laufen - hier kurz, wie's geht:


    1. Autodiscovery mit Avahi/mDNS freigeben:


    Das einfachste ist Autodiscovery mit Avahi (also mDNS/Zeroconf/Bonjour auf Port 5353). Dafür muß auf der Firewall für die Zone, in der man ist, der mDNS-Service freigegeben werden (also z.B. mit firewall-cmd --zone=home --add-service=mdns).

    Mit avahi-browse -at kann man prüfen, welche Geräte auf dem lokalen Netzwerk für Autodiscovery sichtbar sind.


    Dann funktioniert hp-setup, wenn man unter "Advanced options" als "Network discovery method" Avahi anwählt.


    2. Autodiscovery mit SLP freigeben


    Manchmal kann Avahi ausreichend sein, z.B. wenn man die Methode nicht auswählen kann (Beispiel: unter VueScan einen HP-Netzwerkscanner einrichten). HPLIP verwendet standardmäßig SLP, das man entsprechend auf der Firewall freigeben muß. Das Problem ist dabei, daß die Standard-SLP-Freigabe auf Port 427 in der Firewall nicht reicht - hp-setup sendet seine SLP-Pakete von hohen UDP-Ports. Die Antwortpakete kommen dementsprechend nicht auf dem Standardport 427 an und bleiben in der Firewall hängen.


    Um das zu lösen, muß man bei ausgehenden SLP-Verbindungen dynamisch Ausnahmen für die Antwortpakete in der Firewall anlegen lassen. Standardmäßig kann die Firewall das für FTP, SIP usw., nicht aber für SLP. Hierfür brauchen wir die zu Netfilter gehörenden Pakete conntrackd und conntrack-tools, die Hilfsprogramme für eine Rieihe weiterer Protokolle enthalten. Damit geht die Freigabe wie folgt:


    - In der Conntrack-Konfigurationsdatei (/etc/conntrackd/conntrackd.conf) die Auskommentierung für den Abschnitt "Helper" und für den SLP-Helper entfernen - für alle anderen Helper nicht unbedingt

    - Helper für SLP aktivieren: nfct add helper slp inet udp (nfct kommt aus dem Conntrack-Tools-Paket)

    - Conntrackd starten (systemctl start conntrackd.service)

    - Firewallregeln für ausgehende SLP-Pakete anlegen, mit denen dafür das Connection tracking aktiviert wird:

    Code
     # firewall-cmd --direct --get-all-rules
    ipv4 raw OUTPUT 0 -m addrtype --dst-type MULTICAST -p udp --dport 427 -j CT --helper slp
    ipv4 raw OUTPUT 0 -m addrtype --dst-type BROADCAST -p udp --dport 427 -j CT --helper slp

    Damit läuft dann auch die Autodiscovery mit SLP.


    Wenn das Ganze einen Reboot überstehen soll, muß man die Firewallregeln permanent machen und den conntrackd-Dienst aktivieren. Außerdem muß man dafür sorgen, daß *vor* conntrackd auf jeden Fall die Helper aktiviert werden, und *nach* conntrackd die Firewallregeln neu geladen werden. Das geht z.B. mit einem Drop-in für conntrackd.service:

    Code
    calypso:~ # cat /etc/systemd/system/conntrackd.service.d/nfct.conf 
    [Service]
    ExecStartPre=-/usr/sbin/nfct add helper slp inet udp
    ExecStartPost=/usr/bin/firewall-cmd --reload

    Damit funktioniert die Autodiscovery auch nach einem Neustart, ohne daß man die Firewall offen stehen lassen muß.


    Vielen Dank für die Unterstützung! Ich habe gerade einiges gelernt.

    Ich hab bisher auch einen HP AOI (HP OfficeJet Pro 7720) in Benutzung und konnte den problemlos auf meinem Desktop und beiden Notebooks einrichten. Ich hab aber auch keine Firewall auf meinem Desktop bzw. den Notebooks laufen, weil ich diese Funktion meiner Fritz!Box überlasse.

    Ja, ohne Firewall läuft hier auch alles reibungslos. Ich bin aber in verschiedenen Netzen unterwegs, insofern bin ich da vorsichtiger und würde die Firewall lieber laufenlassen und entsprechend konfigurieren.


    Ich bin einen Schritt weiter. Das Problem mit hp-setup scheint zu sein, daß es UDP-Verbindungen von anderen Ports aufmacht anstatt den Standardports (427 für SLP, 5353 für mDNS) - im Beispiel ist .37 mein Rechner, .36 der Drucker:

    Die kommen entsprechend nicht mehr durch die Firewall, selbst wenn dort SLP freigegeben ist, denn die Freigabe bezieht sich ja nur auf Port 427. Wenn ich eine zusätzliche Firewallregel einfüge, die UDP-Pakete mit Source-Port 427 ebenfalls erlaubt, funktioniert es mit SLP:

    Mit mDNS und einer entsprechenden Firewallregel für Port 5353 funktioniert es dagegen nach wie vor nicht. Die Ausgangssituation ist die gleiche (hp-setup versucht eine UDP-Verbindung über eine hohe Portnummer aufzumachen):

    Allerdings wenn ich dann eine Firewallregel einfüge, die UDP-Pakete von Port 5353 erlauben soll, findet hp-setup den Drucker immer noch nicht:

    Da SLP aber bei hp-setup die Standardeinstellung ist, werde ich hiermit erst einmal leben können. Sollte sich noch etwas tun, werde ich es hier dokumentieren.

    Vielen Dank für die Kommentare. Ich komme zwar von Ubuntu, aber ich bin auch nicht ohne Grund davon weg. Ich war erst BSD-, dann Windows-, dann Ubuntu, dann Kubuntu-Nutzer. KDE kenne ich noch aus KDE 0.x-Zeiten, damals unter FreeBSD. An den KDE-Desktop habe ich mich gewöhnt, wollte aber zu einer Distribution wechseln, die mehr aus einem Guß ist und gleichzeitig einen Rolling-Release-Updatezyklus bietet. Ich halte OpenSUSE hier für eine gute Wahl und bin bereit, damit zu leben, wenn alles nicht sofort reibunglos funktioniert. Erst recht wenn ich meine Umsteigerfragen hier stellen kann. Die Wahl der Distribution möchte ich hier aber nicht zur Diskussion stellen.


    Ich habe drei Ziele - (1) meinen Drucker zum Laufen zu kriegen, ohne daß ich die IP kennen und händisch eingeben muß - ich weiß aus Erfahrung, daß das unter Linux geht und würde es gern auch unter OpenSUSE hinkriegen - (2) die Hintergründe zu verstehen, warum (oder nicht) es läuft, so daß ich es bei anderen Druckern wiederholen kann, und (3) das Ganze gut genug zu dokumentieren, daß jemand anderes, der gerade damit anfängt, etwas davon hat.


    Bei (1) bin ich jetzt schon mal (mit mDNS-Freigabe in der Firewall funktioniert Zeroconf/Avahi/Bonjour, avahi-browse sieht den Drucker, mit "Avahi" als Suchmethode findet hp-setup ihn auch) - siehe meinen letzten Post. Gedruckt habe ich auch schon.


    Für (2) sind meine nächsten jetzt zwei Dinge, die ich zum Laufen kriegen möchte: (2a) das Ganze auch über SLP zum Laufen zu bekommen, (2b) die Druckersuche nicht nur mit hp-setup zum Laufen zu bekommen, sondern auch unter CUPS, damit es auch mit nicht-HP-Druckern funktioniert.


    Bei beidem habe ich die Firewallregeln im Verdacht. Im Moment bin ich in der "home"-Zone und trage meine Firewallregeln dort ein. Irgend etwas in der Firewall-Konfiguration sorgt dafür, daß mDNS und SLP beide nicht voll funktionieren. Beide Protokolle verwenden Multicast, womit ich mich nicht auskenne; have es jetzt erst einmal versucht, den Empfang von Multicast-Paketen zu erlauben, aber es klappt noch nicht:



    Irgendwas fehlt hier noch, aber ich sehe nicht, was es ist.

    Dafür könnte dann hier für dich etwas dabei sein:

    RE: firewalld-Basics in der Konsole

    Danke, wirklich ein ausgesprochen hilfreiches Tutorial, damit verliert firewalld gleich seinen Schrecken.

    Die zu prüfenden Ports für HP findest du hier, beim HP Support


    Das sind einigermaßen viele, da HP damit auch alte Jet-Direct Karten mit abdeckt. Die meisten davon sind für dich nicht wirklich relevant. Ist halt die vollstänige Referenz.

    Check vordringlich IPP und dann die ICMP Ports.

    Danke, die Übersicht ist hilfreich, aber die habe ich zwischenzeitlich auch mal restlos alle freigegeben, ohne daß die Druckererkennung funktioniert hätte :)

    Dann wirst du schauen müssen, auf welchem Port die "Autodiscovery" läuft.....

    In hp-setup kann man konfigurieren, wie er nach Druckern suchen soll (unter "advanced configuration"). Es gibt drei Optionen: mdns (UDP-Port 5353), oder SLP (der Default, UDP-Port 427), oder Avahi (UDP-Port 5353).


    Ich bin jetzt nach einigem Spielen mit den Firewall-Regeln und avahi-browse (aus dem Paket avahi-util) immerhin einen Schritt weiter: wenn ich auf der Firewall den mdns-Service erlaube (laut /usr/lib/firewalld/services/mdns.xml wird dabei nur Port 5353 UDP freigegeben), ich mit avahi-browse --all die Geräte in meinem Netzwerk mit Zeroconf-Funktion sehen kann. Dann funktioniert auch Druckererkennung mit hp-setup, zwar nicht mit mdns, aber wenn ich Avahi als Suchprotokoll anwähle.


    Die Defaultoption SLP dagegen kriege ich mit hp-setup nicht zum Laufen. Ich kann auf der Firewall den slp-Service erlauben; das gibt laut /usr/lib/firewalld/services/slp.xml Port 427 für TCP und UDP frei. Dann funktioniert aber hp-setup trotzdem nicht. Wenn ich die Firewall deaktiviere, dagegen schon. Ich habe mal versucht, mir mit ss -tulpen | grep hp anzusehen, welche Ports hier in Benutzung sind; hp-setup macht bei jedem Start einen wechselnden UDP-Port im hohen Bereich auf, das bringt also nicht weiter. SLP setzt allerdings auf Multicast auf, vielleicht liegt der Hase auch woanders.

    Bitte lesen:

    Wichtig:Vor dem Posten bitte erst Lesen!


    Vor allem Thema Crossposting.

    Danke. Werde ich mir merken, habe dort erst einmal auf diese Diskussion hier verlinkt. Wenn eine von beiden zu einem Ergebnis kommt, werde ich das Ergebnis entsprechend herüberspiegeln.

    Du kommst aus der Ubuntu Ecke dann frage ich: Was spricht gegen CUPS https://wiki.ubuntuusers.de/CUPS/

    Dagegen spricht nichts, ich hätte nur gern die automatische Suche am Laufen, s.u. :)

    Ich hab hier keine Ports offen, nur die von mir explizit freigegebenen:

    hp-setup als root aufrufen (bitte kein sudo)

    Sodann hab ich mich an die Windows Installationsanleitung gehalten, Drucker zuerst mit USB-Kabel und hp-setup eingerichtet, danach erst als Netzwerkdrucker mit hp-setup.

    Danke. sudo dürfte eine Ubuntu-Angewohnheit sein, die ich mir wohl besser abgewöhne.


    Ich kann den Drucker einrichten, indem ich in hp-setup die IP-Adresse manuell eingebe, dann druckt er auch, das ist also kein Problem. Mir geht es eher darum, die Autodiscovery zum Laufen zu bekommen, in hp-setup oder auch in YAST, denn ich bin relativ viel unterwegs und muß auf wechselnde Druckern zu tun, und da ist es auf Dauer umständlich (und auch nicht immer ohne weiteres möglich), jedes Mal die IP-Adresse herauszubekommen.


    Liegt's doch nicht an den Firewallregeln? Aber hier funktioniert die Autodiscovery genau dann, wenn ich die Firewall abstelle?


    Die OpenSUSE-Netzwerkkonfiguration habe ich eigentlich nicht angefaßt, außer das Interface in die "Home"-Zone zu konfigurieren und dort mdns und slp hinzuzufügen, entsprechend der Empfehlung in der Fehlermeldung von hp-setup. Möglicherweise habe ich hier aber auch einen Denkfehler?

    Hallo und danke erstmal für die Aufnahme!

    Ich bin neu bei OpenSUSE, komme von Ubuntu, wo alles automatisch war, und gewöhne mich gerade um. Etwas Linux-Erfahrung habe ich, aber bei OpenSUSE bin ich Anfänger, deswegen stelle ich die Frage erst einmal hier.


    Ich habe auf meinem Laptop OpenSUSE Tumbleweed und würde gern einen HP-Netzwerkdrucker installieren (OfficeJet Pro 8715), bekomme aber von hp-setup immer eine Fehlermeldung:

    Ich hatte erst den Verdacht, ob das Paket hplip vielleicht aus der falschen Paketquelle kommt, aber es sieht für mich richtig installiert aus:

    Code
    $ zypper se -si hplip
    Repository-Daten werden geladen...
    Installierte Pakete werden gelesen...
    
    S  | Name             | Typ   | Version     | Arch   | Repository
    ---+------------------+-------+-------------+--------+-----------
    i+ | hplip            | Paket | 3.19.12-3.2 | x86_64 | repo-oss
    i  | hplip-hpijs      | Paket | 3.19.12-3.2 | x86_64 | repo-oss
    i  | hplip-sane       | Paket | 3.19.12-3.2 | x86_64 | repo-oss
    i+ | hplip-scan-utils | Paket | 3.19.12-3.2 | x86_64 | repo-oss

    Wenn ich die Firewall abschalte (mit systemctl stop firewalld.service, wird der Drucker gefunden. Damit steht für mich fest, daß die Firewallregeln das Problem sind.


    Die Firewallregeln sind folgendermaßen konfiguriert:

    Die von hp-setup beanstandeten Dienste mdns und slp sind hier beide freigegeben.


    Damit bin ich mit meinem Latein am Ende. Wie muß ich die Firewall konfigurieren, damit die Druckererkennung funktioniert?