[SLE] CUPS and multiple enet ports
![](https://seccdn.libravatar.org/avatar/5a1ff996671b3bbad16acab9a1723a8b.jpg?s=120&d=mm&r=g)
SuSE 10.0 and 10.1 I am having somewhat of a problem with CUPS. I have 3 enet ports. One is actually connected to a real network (local 10.10.10.xx) . On that network are various network printers configured for direct tcp printing. The other 2 ports are configured also with internal ip addresses like 192.168.10.1 and 192.168.20.1. They are not used for any network. Each are directly connected to an external piece of hardware and operate via software in promiscuous mode. The problem I'm having is that the cupsd is sending broadcast frames out on these other 2 cards. It is not a good thing because the piece of hardware on the other end of the cable does not know to throw those packets away. Looking at cupsd.conf I see the following: # # BrowseInterval: the time between browsing updates in seconds. Default # is 30 seconds. # # Note that browsing information is sent whenever a printer's state changes # as well, so this represents the maximum time between updates. # # Set this to 0 to disable outgoing broadcasts so your local printers are # not advertised but you can still see printers on other hosts. # #BrowseInterval 30 Setting this BrowseInterval to 0 stops all of it. Even on the enet card connected to the local network that I don't really want to mess with. What is the proper way to stop cupsd from sending broadcast packets out on these other 2 enet cards? Thanks in advance Mark -- Check the headers for your unsubscription address For additional commands send e-mail to suse-linux-e-help@suse.com Also check the archives at http://lists.suse.com Please read the FAQs: suse-linux-e-faq@suse.com
![](https://seccdn.libravatar.org/avatar/5e70f769092f3372f14b4f2df58a17e1.jpg?s=120&d=mm&r=g)
On 22/06/06 12:45, Mark Hounschell wrote:
SuSE 10.0 and 10.1
I am having somewhat of a problem with CUPS. I have 3 enet ports. One is actually connected to a real network (local 10.10.10.xx) . On that network are various network printers configured for direct tcp printing. The other 2 ports are configured also with internal ip addresses like 192.168.10.1 and 192.168.20.1. They are not used for any network. Each are directly connected to an external piece of hardware and operate via software in promiscuous mode.
The problem I'm having is that the cupsd is sending broadcast frames out on these other 2 cards. It is not a good thing because the piece of hardware on the other end of the cable does not know to throw those packets away.
Check the BrowseAddress directive. You may be able to resolve the issue by using "BrowseAddress 10.10.10.255:631" in the config file, and let the kernel handle routing issues. A better alternative would seem to be to use "BrowseAddress @IF(<interface_name>)" where <interface_name> is the interface connected to the real network; however, I do not know if CUPS understands interface names like "eth-id-<hardware address>", and there is no way to guarantee that something like "eth0" will persist across reboots. I haven't found anything anywhere that comes close to discussing this matter. -- Check the headers for your unsubscription address For additional commands send e-mail to suse-linux-e-help@suse.com Also check the archives at http://lists.suse.com Please read the FAQs: suse-linux-e-faq@suse.com
![](https://seccdn.libravatar.org/avatar/5a1ff996671b3bbad16acab9a1723a8b.jpg?s=120&d=mm&r=g)
Darryl Gregorash wrote:
Check the BrowseAddress directive. You may be able to resolve the issue by using "BrowseAddress 10.10.10.255:631" in the config file, and let the kernel handle routing issues.
A better alternative would seem to be to use "BrowseAddress @IF(<interface_name>)" where <interface_name> is the interface connected to the real network; however, I do not know if CUPS understands interface names like "eth-id-<hardware address>", and there is no way to guarantee that something like "eth0" will persist across reboots. I haven't found anything anywhere that comes close to discussing this matter.
It seems no matter which of the discussed methods I use, it prevents all broadcasts from all interfaces. I can certainly live with that. It just means I'll have to know the IP or URL of any network printer I need access to right? Thanks Mark -- Check the headers for your unsubscription address For additional commands send e-mail to suse-linux-e-help@suse.com Also check the archives at http://lists.suse.com Please read the FAQs: suse-linux-e-faq@suse.com
![](https://seccdn.libravatar.org/avatar/5e70f769092f3372f14b4f2df58a17e1.jpg?s=120&d=mm&r=g)
Darryl Gregorash wrote:
Check the BrowseAddress directive. You may be able to resolve the issue by using "BrowseAddress 10.10.10.255:631" in the config file, and let the kernel handle routing issues.
A better alternative would seem to be to use "BrowseAddress @IF(<interface_name>)" where <interface_name> is the interface connected to the real network; however, I do not know if CUPS understands interface names like "eth-id-<hardware address>", and there is no way to guarantee that something like "eth0" will persist across reboots. I haven't found anything anywhere that comes close to discussing this matter.
It seems no matter which of the discussed methods I use, it prevents all broadcasts from all interfaces. I can certainly live with that. It just means I'll have to know the IP or URL of any network printer I need access to right? That is what it would mean, yes -- also, on remote clients, no updated
On 23/06/06 06:17, Mark Hounschell wrote: printer information would be available. I made my previous suggestions based solely on the administrator documentation, which differs slightly from the installed cupsd.conf file (this is SuSE 9.3, but 10.x should be the same). Not having a network running at this time, I didn't bother to check them in an active system (duh). I think I have it figured out now. All this stuff can be done from Yast (not surprising, I guess). First, undo all the changes based on my previous suggestions and restart the daemon; if necessary, unplug the cables to those external devices so they won't receive spurious broadcast packets. Now, in Yast/Hardware/Printer (which brings up the Printer Configuration panel), click on "Change" in the lower half (Already installed printers and queues). The next panel is "Printer administration in CUPS"; click on the "Advanced" radio button. Select "full server installation" in the spooler box, and then click on "CUPS server settings". If necessary, set "Browsing" to On, then click on "Add" beneath the "Browse addresses" box, fill in the proper broadcast address (in your case, 10.10.10.255), and click OK. Don't click "Propose" because that will just fill in @LOCAL, which means all non-point-to-point interfaces (in particular, all network cards, which you don't want). By default, the firewall will be opened for port 631 on all network interfaces, and this will be stated **every time** you come into this configuration panel. You only want the firewall open on the network interface, so click on "Firewall details", make sure only that interface is selected (you will need to know which MAC address corresponds to the networked interface), and click OK. Now click "Next", then "Accept", and finally "Finish". The firewall and cups daemon will be restarted with the new configuration. If you check near the very bottom of the cupsd.conf file, you will find these lines: Browsing On BrowseAddress 10.10.10.255 With an appropriate change in the IP, this is what my system is currently set to, broadcasting on a network card that goes nowhere :-) It should take care of your problem. Note the absence of the port number in the second line, which differs from the documentation I was using before. Including the port number in the BrowseAddress line is probably an error which resulted in all broadcasting being turned off. There is probably some debug setting that can be set somewhere in cupsd.conf that will confirm this (or otherwise), but I don't think it is worth the effort to find out. -- Check the headers for your unsubscription address For additional commands send e-mail to suse-linux-e-help@suse.com Also check the archives at http://lists.suse.com Please read the FAQs: suse-linux-e-faq@suse.com
![](https://seccdn.libravatar.org/avatar/5a1ff996671b3bbad16acab9a1723a8b.jpg?s=120&d=mm&r=g)
Darryl Gregorash wrote:
Darryl Gregorash wrote:
Check the BrowseAddress directive. You may be able to resolve the issue by using "BrowseAddress 10.10.10.255:631" in the config file, and let the kernel handle routing issues.
A better alternative would seem to be to use "BrowseAddress @IF(<interface_name>)" where <interface_name> is the interface connected to the real network; however, I do not know if CUPS understands interface names like "eth-id-<hardware address>", and there is no way to guarantee that something like "eth0" will persist across reboots. I haven't found anything anywhere that comes close to discussing this matter.
It seems no matter which of the discussed methods I use, it prevents all broadcasts from all interfaces. I can certainly live with that. It just means I'll have to know the IP or URL of any network printer I need access to right? That is what it would mean, yes -- also, on remote clients, no updated
On 23/06/06 06:17, Mark Hounschell wrote: printer information would be available.
I made my previous suggestions based solely on the administrator documentation, which differs slightly from the installed cupsd.conf file (this is SuSE 9.3, but 10.x should be the same). Not having a network running at this time, I didn't bother to check them in an active system (duh). I think I have it figured out now.
All this stuff can be done from Yast (not surprising, I guess). First, undo all the changes based on my previous suggestions and restart the daemon; if necessary, unplug the cables to those external devices so they won't receive spurious broadcast packets.
Now, in Yast/Hardware/Printer (which brings up the Printer Configuration panel), click on "Change" in the lower half (Already installed printers and queues).
The next panel is "Printer administration in CUPS"; click on the "Advanced" radio button. Select "full server installation" in the spooler box, and then click on "CUPS server settings". If necessary, set "Browsing" to On, then click on "Add" beneath the "Browse addresses" box, fill in the proper broadcast address (in your case, 10.10.10.255), and click OK. Don't click "Propose" because that will just fill in @LOCAL, which means all non-point-to-point interfaces (in particular, all network cards, which you don't want).
By default, the firewall will be opened for port 631 on all network interfaces, and this will be stated **every time** you come into this configuration panel. You only want the firewall open on the network interface, so click on "Firewall details", make sure only that interface is selected (you will need to know which MAC address corresponds to the networked interface), and click OK.
Now click "Next", then "Accept", and finally "Finish". The firewall and cups daemon will be restarted with the new configuration.
If you check near the very bottom of the cupsd.conf file, you will find these lines:
Browsing On BrowseAddress 10.10.10.255
With an appropriate change in the IP, this is what my system is currently set to, broadcasting on a network card that goes nowhere :-) It should take care of your problem.
Note the absence of the port number in the second line, which differs from the documentation I was using before. Including the port number in the BrowseAddress line is probably an error which resulted in all broadcasting being turned off. There is probably some debug setting that can be set somewhere in cupsd.conf that will confirm this (or otherwise), but I don't think it is worth the effort to find out.
Yep its all configurable in YAST. And seems to work like it should. Thanks for your help. Regards Mark -- Check the headers for your unsubscription address For additional commands send e-mail to suse-linux-e-help@suse.com Also check the archives at http://lists.suse.com Please read the FAQs: suse-linux-e-faq@suse.com
participants (2)
-
Darryl Gregorash
-
Mark Hounschell