CUPS @LOCAL значение

Я получил две машины. Один с CUPS 1.5.0, а другой с CUPS 1.6.1. Две машины находятся в одной локальной сети. Я хочу полное обнаружение принтеров в сети. Если я запускаю следующую команду:

CUPS_DEBUG_LEVEL=2 /usr/lib/cups/backend/snmp 2>&1

на обеих машинах я получаю разные результаты. Результат с CUPS 1.5.0 - это результат, который я хочу получить от другой машины с CUPS 1.6.1.

Я понял проблему! Существует переменная с именем @LOCAL в кубках. Верхняя команда равна:

CUPS_DEBUG_LEVEL=2 /usr/lib/cups/backend/snmp @LOCAL 2>&1

Проблема в том, что во втором случае (CUPS 1.6.1) значение @LOCAL это локальный IP(192.168.3.69) машины вместо широковещательной (192.168.3.255).

Если я запускаю следующую команду на машине два, все работает отлично:

CUPS_DEBUG_LEVEL=2 /usr/lib/cups/backend/snmp 192.168.3.255 2>&1

Пожалуйста, объясните мне, как я могу настроить значение @LOCAL переменная. Или почему CUPS 1.5.0 хорошо настраивает его при установке, а 1.6.1 - нет? (Я ничего не делал после установки, и все работало отлично)

1 ответ

Первый...

... давайте выясним, что @LOCAL средства:

@LOCAL Строка не совсем переменная - в контексте конфигурации CUPS (/etc/cups/cupsd.conf) она называется макросом. Есть еще макросы, которые можно использовать: @IF, @GROUP, @ACL, @OWNER а также @SYSTEM,

@LOCAL макрос был введен в CUPS с версией 1.1.15. Соответствующая запись CHANGELOG гласит:

 - The Allow, Deny, BrowseAllow, BrowseDeny, and
   BrowseAddress directives now support the network
   interface names "@LOCAL" and "@IF(name)" for access
   control and browsing based on the current interface
   addresses instead of fixed names or IP addresses.

Другими словами: перед его внедрением в кодовую базу CUPS вам пришлось жестко закодировать текущие IP-адреса хоста в cupsd.conf, После этого у вас была возможность просто написать @LOCAL или же @IF(eth0) или же @IF(wlan1) в cupsd.conf и CUPS будет использовать текущий IP-адрес (все локальные IP-адреса, если поле имеет несколько!), даже если он изменился. (Адреса для соединений PPP/dialup не считаются локальными IP-адресами...)

Во-вторых...

... давайте посмотрим, почему вы можете увидеть различия:

Без доступа к вашим полным CUPS и конфигурации сетевых устройств обеих ваших машин невозможно ответить на этот вопрос.

Может случиться так, что один сервер имеет больше сетевых интерфейсов и / или больше разных IP-адресов, чем другой (например, при использовании eth0:1 трюк с использованием дополнительного виртуального сетевого интерфейса).

Возможно, вы также наткнулись на ошибку в одном из двух воплощений CUPS ваших машин.

Другие вопросы по тегам