Мы реализуем вариант 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 (
^
Кто-нибудь может сказать мне, что я делаю не так и как исправить эту ошибку? Я пробовал несколько мест расположения скобок и конфигурации, но он продолжает жаловаться на них.
Я предполагаю, что вы хотели бы иметь такую строку журнала, как:
Lease
, 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.