Назад | Перейти на главную страницу

dhcpd option 82 не работает

Мы реализуем вариант 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.