Serveur Cups qui ne répond plus entre 2 plages IP

Bonjour

Jusqu’a present mon serveur cups debian 10 et mes clients Ubuntu 20.04LTS étaient sur la même plage IP et le dialogue client/serveur se faisait sans problème.

Pour des raisons évidentes de sécurité j’ai séparé les serveurs des clients pour avoir sur la plage 172.16.0.xxx les serveur et 172.16.10.xxx les clients.

Le soucis c’est que depuis cette migration les clients ne voient plus remonter automatiquement les imprimantes disponibles et donc ne peuvent plus imprimer via le serveur Cups.
Le port 631 est bien ouvert entre les deux plages IP.

J’ai donc sans aucun doute dû rater quelque chose pour le coup sachant quand même que les clients ping sans soucis le serveur et inverssement.

voila le contenu de /etc/cups/cupsd.conf de mon serveur:

root@cupsserver:/etc/cups# cat cupsd.conf
# Show troubleshooting information in error_log.
LogLevel debug
MaxLogSize 0
Listen 172.16.0.75:631
Listen localhost:631
Listen /var/run/cups/cups.sock
Browsing On
BrowseLocalProtocols dnssd
WebInterface Yes
<Location />
  Order allow,deny
  Allow all
</Location>
<Location /admin>
  Order allow,deny
  Allow all
</Location>
<Location /admin/conf>
  AuthType Default
  Require user @SYSTEM
  Order allow,deny
  Allow 172.16.0.*
</Location>
<Policy default>
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    Order deny,allow
  </Limit>
  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
    Allow all
  </Limit>
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>
  <Limit CUPS-Authenticate-Job>
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit All>
    Order deny,allow
  </Limit>
</Policy>
<Policy authenticated>
  JobPrivateAccess default
  JobPrivateValues default
  SubscriptionPrivateAccess default
  SubscriptionPrivateValues default
  <Limit Create-Job Print-Job Print-URI Validate-Job>
    AuthType Default
    Order deny,allow
  </Limit>
  <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
    AuthType Default
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>
  <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
    AuthType Default
    Require user @SYSTEM
    Order deny,allow
  </Limit>
  <Limit Cancel-Job CUPS-Authenticate-Job>
    AuthType Default
    Require user @OWNER @SYSTEM
    Order deny,allow
  </Limit>
  <Limit All>
    Order deny,allow
  </Limit>
</Policy>
DefaultAuthType Basic

Caracteristique de mon serveur:

Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
Linux cupsserver 4.19.0-14-amd64 #1 SMP Debian 4.19.171-2 (2021-01-30) x86_64 GNU/Linux

Par avance merci

Bonjour

Peut-être en ajoutant dans le fichier /etc/cups/cupsd.conf du serveur
une directive concernant le réseau 172.16.10.xxx

Séparé comment ? Dans deux (V)LAN distincts reliés par un routeur, ou bien ce sont juste deux sous-réseaux IP distincts dans un même (V)LAN ?

Je ne connais pas le protocole utilisé pour détecter les imprimantes du réseau, mais « remonter automatiquement » ça me fait penser à du broadcast ou similaire (scan du sous-réseau). Or une limitation du broadcast est que ça ne passe pas à travers un routeur.

Par contre le serveur CUPS doit être joignable explicitement par son adresse IP ou nom de domaine (mis à jour suite à la migration si nécessaire).

Une directive qui ferait quoi ? Les directives « Listen » que tu cites ne font que spécifier les sockets locales à ouvrir en écoute.

Bonjour

Pour le moment ce sont deux simples réseaux distincts dit « trusted », la mise en vlan pure et dure est prévu pour le début de l’année prochaine car je suis pour le moment en pleine évolution du systeme.

Donc si j’ai bien compris, contrairement à mon serveur d’impression windows, pour cups il faut que le serveur soit sur la même plage IP que les utilisateurs?

Pour le moment en graphique, a partir d’un poste ubuntu, je suis allé dans le parametrage des imprimantes ajouté l’ip de mon seerveur cups dans la partie recherche, et la il a vu les imprimantes de mon serveur, par contre il refuse de valider l’ajout de mon imprimante.

j’adore les logs clairs :flushed:

Oct  6 16:36:20 Ubuntu2004 gnome-control-c[3646]: cups-pk-helper: addition of printer EpsonWFC579R failed: client-error-not-authorized
Oct  6 16:36:20 Ubuntu2004 gnome-control-c[3646]: Installation of the new printer failed.
Oct  6 16:36:20 Ubuntu2004 gnome-control-c[3646]: gtk_widget_get_allocation: assertion 'GTK_IS_WIDGET (widget)' failed
Oct  6 16:36:20 Ubuntu2004 gnome-control-c[3646]: gtk_widget_get_margin_top: assertion 'GTK_IS_WIDGET (widget)' failed
Oct  6 16:36:30 Ubuntu2004 org.fedoraproject.Config.Printing[3788]: /usr/share/system-config-printer/scp-dbus-service.py:602: DeprecationWarning: Gdk.threads_enter is deprecated
Oct  6 16:36:30 Ubuntu2004 org.fedoraproject.Config.Printing[3788]:   Gdk.threads_enter ()

Bonsoir,

il faudrait voir la configuratoin reseau de ton serveur.
Si les deux réseaux sont en netmask /24 ils ne se verront pas à moins d’avoir un routeur intermédiaire. Routeur qui bloquera les broadcast comme l’a dit Pascal.

Merci pour ces informations

Bon de mon coté à force de bidouiller j’ai un peu avancé, et maintenant les imprimantes s’affichent bien sur les postes Ubuntu en ajoutant simplement la directive suivante dans /etc/cups/cups-browsed.conf

BrowsePoll 172.16.0.75:631

172.16.0.75 étant bien entendu mon serveur cups.
Le poste Ubuntu étant sur la plage 172.16.10.xxx

Par contre, j’ai beau lancer une impression, le poste Ubuntu me dit ok c’est parti, mais rien ne sort de l’imprimante et toutes les files d’attente sont vides (coté serveur comme coté client), la demande d’impression est partie dans les limbes de l’informatique :rage: