如何启用CUPS浏览networking?

我有一个定义了两个打印队列的CUPS服务器。 一旦定义了这一点,同一子网上的所有CUPS客户端都可以自动查看两个打印队列,没有问题。

现在我在一个单独的子网上有一系列机器,可以通过路由器从第一个子网访问。

如何在第二组机器上启用CUPS浏览,以便他们可以看到第一台机器上定义的打印队列?

我们打电话给服务器ABC7。 第一个子网是ABC0 / 24。 第二个子网是ABD0 / 24,在两个networking上都有一个带武器的路由器。

“原生”方式是在每个子网上都有一个CUPS服务器(它们不需要打印机,只需要CUPS软件),并将这些服务器configuration为浏览中继服务器。 configuration将是

BrowsePoll abc7 BrowseRelay CUPS 

该CUPS运行的服务器然后将响应与远程服务器的子网本地浏览请求。

还有一种方法可以通过多点传送和服务定位协议来完成,但是没有很好的logging。

杯子1.6使用dnssd。 这个组播到224.0.0.251端口5353.由于路由器不允许转发224.0.0.251数据包卡在网关边界。

您可以在网关上使用avahi-daemon mDNSreflection器function。

注:如果你在网关nat你需要设置NONAT从父networking传入的数据包。 在shorewall / masq文件中:

 <external_interface> <parent_net_ip_range> NONAT <external_interface> 224.0.0.0/4 NONAT <external_interface>:!<parent_net_ip_range>,224.0.0.0/4 <subnet_ip_range> detect 

avahi-daemon.conf在路由器上

 [reflector] enable-reflector=yes avahi-daemon will reflect incoming mDNS requests to all local network interfaces, effectively allowing clients to browse mDNS/DNS-SD services on all networks connected to the gateway. Make sure to not run multiple reflectors between the same networks, this might cause them to play Ping Pong with mDNS packets. 

PS:可能需要打包数据包以增加生存时间。 这是一个需要更多调查的主题,尽pipe这里是shorewall / start,raw iptables的调整:

 /sbin/iptables -t mangle -A PREROUTING -p all -s 224.0.0.0/4 -j TTL --ttl-inc <ttl_inc> /sbin/iptables -t mangle -A PREROUTING -p all -d 224.0.0.0/4 -j TTL --ttl-inc <ttl_inc> /sbin/iptables -t mangle -A PREROUTING -p all -s <parent_net_ip_range> -j TTL --ttl-inc <ttl_inc> /sbin/iptables -t mangle -A PREROUTING -p all -d <parent_net_ip_range> -j TTL --ttl-inc <ttl_inc> 

ttl_inc:从一个开始的任何数字。 尽pipe它不是一成不变的,但我在当地使用了二十个。 主要取决于打印机和客户站之间的路由器数量。

侏儒控制中心“打印机”在这里发送ttl f 255(最大),所以它不是必需的。

据我所知,没有办法自动将它提供给不在同一子网上的其他客户端。 CUPS使用多播DNS分组宣布自己。 您仍然可以从另一个子网使用打印机(如果访问控制是正确的),但是您必须手动将其添加为IP地址。