Мы реализуем вариант 82 в нашей сети, и я лишь поверхностно разбираюсь в том, как настроить свой сервер. Я успешно создал свой первый ACL для Option 82 на основе идентификатора канала агента, который содержится в пакете, теперь мне просто нужно руководство о том, как я могу внести данные Option 82 в журналы. Вот моя установка O82 на сервере:
## Option 82 Class
class "myvendor" {
match if option agent.circuit-id = 00:04:00:6b:00:84;
}
# Test Option 82 logging
if exists agent.circuit-id
{
log (info, concat( "Lease for ", option agent.circuit-id (leased-address), "is an address assigned using Option82"));
}
pool {
allow members of "myvendor";
range x.x.x.x x.x.x.x;
}
Проблема, с которой я столкнулся, заключается в том, что когда я иду проверить conf перед перезапуском dhcpd, я получаю сообщение об ошибке:
etc/dhcp/dhcpd.conf line 135: right parenthesis expected.
log (info, concat( "Lease for ", option agent.circuit-id (
^
Может ли кто-нибудь сказать мне, что я делаю не так и как исправить эту ошибку? Я пробовал несколько расположений и конфигураций скобок, но он продолжает жаловаться на них.
Я предполагаю, что вы хотите иметь такую строку журнала, как:
Аренда <IP-адрес>, идентификатор цепи <circuit-id> назначается с помощью Option82
Думаю, это должно сработать:
log(info, concat( "Lease ", binary-to-ascii(10, 8, ".", leased-address), ", circuit id", option agent.circuit-id, " is assigned using Option82") );
Имейте в виду, что если поле идентификатора вашей схемы является двоичным (например, не является обычным значением, читаемым человеком), вам необходимо сначала преобразовать его, чтобы получить из него что-то читаемое. См. Также man dhcp-eval.