The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"isc-dhcpd option 82"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (DHCP / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"isc-dhcpd option 82"  +/
Сообщение от АлексейТ (ok) on 09-Фев-13, 17:28 
возникло несколько вопросов

-dhcpd42 для работы option 82 с сокетом надо собирать?
-как сверить match в dhcpd в логах нет?
-поставил circuit и remote равными 0 для проверки все равно не получается.

dhcpd.conf
subnet 10.0.0.0 netmask 255.0.0.0 {
        class "1" {
                match if (binary-to-ascii(10,8,"",suffix(option agent.circuit-id,1)) = "0") and
                        (binary-to-ascii(16,8,"",substring(option agent.remote-id,2,6)) = "0");
        }
        pool {
                range 10.1.255.2;
                allow members of "1";
        }

tcpdump -i em1 -nn -s 0 -vvv port 67 or port 68
17:23:04.943370 IP (tos 0x0, ttl 64, id 0, offset 0, flags [none], proto UDP (17), length 568)
    0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from b8:a3:86:14:1d:c8, length 540, xid 0x40ad2c35, Flags [none] (0x0000)
          Client-Ethernet-Address b8:a3:86:14:1d:c8
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: Discover
            Client-ID Option 61, length 7: ether b8:a3:86:14:1d:c8
            Vendor-Class Option 60, length 11: "udhcp 0.9.8"
            Requested-IP Option 50, length 4: 192.168.1.235
            Parameter-Request Option 55, length 11:
              Subnet-Mask, Default-Gateway, Domain-Name-Server, Hostname
              Domain-Name, RP, BR, TFTP
              Static-Route, Classless-Static-Route, Classless-Static-Route-Microsoft
            Agent-Information Option 82, length 6:
              Circuit-ID SubOption 1, length 1: 0
              Remote-ID SubOption 2, length 1: 0
            END Option 255, length 0
            PAD Option 0, length 0, occurs 247

dhcpd.log
Listening on BPF/em1/68:05:ca:04:11:fb/test
Sending on   BPF/em1/68:05:ca:04:11:fb/test
Sending on   Socket/fallback/fallback-net
data: "leased-address" configuration directive: there is no lease associated with this client.
data: "leased-address" configuration directive: there is no lease associated with this client.
DHCPDISCOVER from b8:a3:86:14:1d:c8 via em1: network test: no free leases
DHCPINFORM from 192.168.1.139 via em1: unknown subnet for client address 192.168.1.139
DHCPDISCOVER from b8:a3:86:14:1d:c8 via em1: network test: no free leases
DHCPDISCOVER from 28:92:4a:50:50:90 via em1: network test: no free leases
DHCPDISCOVER from 00:7c:d7:ed:f8:2e via em1: network test: no free leases
DHCPDISCOVER from 00:7c:d7:ed:f8:2e via em1: network test: no free leases
DHCPDISCOVER from 00:7c:d7:ed:f8:2e via em1: network test: no free leases
DHCPDISCOVER from 00:7c:d7:ed:f8:2e via em1: network test: no free leases
DHCPDISCOVER from 28:92:4a:50:50:90 via em1: network test: no free leases
DHCPDISCOVER from 00:7c:d7:ed:f8:2e via em1: network test: no free leases
DHCPINFORM from 192.168.1.43 via em1: unknown subnet for client address 192.168.1.43
DHCPDISCOVER from 00:0e:19:72:f2:7a via em1: network test: no free leases
DHCPDISCOVER from 00:0e:19:72:f2:7a via em1: network test: no free leases

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "isc-dhcpd option 82"  +/
Сообщение от John (??) on 09-Фев-13, 20:12 
class "logging" {
    log(info, concat(
        "VLAN = ", binary-to-ascii(10, 16, "", substring(option agent.circuit-id, 2, 2)),
        ", Port = ", binary-to-ascii(10, 8, "", substring(option agent.circuit-id, 5, 1)),
        ", AgentIP = ", binary-to-ascii(10, 8, ".", packet(24, 4))
        )
    );

    match if (
        exists agent.circuit-id
    );
}

class "Class_1" {
    match if (
        (
            exists agent.circuit-id
            and
            binary-to-ascii(10, 16, "", substring(option agent.circuit-id, 2, 2)) = "<VLAN_ID>"
        ) or (
            binary-to-ascii(10, 8, ".", packet(12, 3)) = "A.B.C"
        )
    );
}

subnet A.B.C.0 netmask 255.255.255.0 {
    pool {
        option subnet-mask 255.255.255.0;
        option routers A.B.C.254;

        deny dynamic bootp clients;
        allow members of "Class_1";

        range A.B.C.1 A.B.C.253;
    }
}

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "isc-dhcpd option 82"  +/
Сообщение от АлексейТ (ok) on 09-Фев-13, 21:35 
спасибо за пример конфига, но меня интересует, как мне узнать, что получает dhdcpd в опции 82

данный конфиг также опробовал, без изменений

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "isc-dhcpd option 82"  +/
Сообщение от John (??) on 09-Фев-13, 21:49 
> спасибо за пример конфига, но меня интересует, как мне узнать, что получает
> dhdcpd в опции 82
> данный конфиг также опробовал, без изменений

tcpdump, wireshark, ...

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "isc-dhcpd option 82"  +/
Сообщение от alexmasz (ok) on 09-Фев-13, 22:35 
>> спасибо за пример конфига, но меня интересует, как мне узнать, что получает
>> dhdcpd в опции 82
>Agent-Information Option 82, length 6:
> Circuit-ID SubOption 1, length 1: 0
> Remote-ID SubOption 2, length 1: 0

это он и получает, только затея с нулями, извините, какая-то дурацкая

>> конфиг:

ddns-update-style interim;
default-lease-time 3600;
max-lease-time 7200;
authoritative;
log-facility local7;
ignore client-updates;

log(info, "***");
if exists agent.circuit-id {
        log( info,concat("*Leased ",binary-to-ascii(10,8,".",leased-address)," (with opt82)") );
        log( info,concat("*Remote-ID: ",binary-to-ascii(16,8,":",substring(option agent.remote-id,2,6))) );
        log( info,concat("*Port: ",binary-to-ascii(10,8,"",suffix(option agent.circuit-id,1))) );
} else {
        log( info,concat("*Leased ",binary-to-ascii(10,8,".",leased-address)," (without opt82)") );
}
log(info, "***");

>> дамп:

20:29:01.729003 IP (tos 0x0, ttl 128, id 22004, offset 0, flags [none], proto UDP (17), length 365)
    0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 48:5b:39:7b:db:41, length 337, xid 0xd947daeb, Flags [none] (0x0000)
          Client-Ethernet-Address 48:5b:39:7b:db:41
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: Request
            Client-ID Option 61, length 7: ether 48:5b:39:7b:db:41
            Requested-IP Option 50, length 4: 192.168.100.130
            Hostname Option 12, length 8: "admin-M-^OM-^J"
            FQDN Option 81, length 11: "admin-M-^OM-^J"
            Vendor-Class Option 60, length 8: "MSFT 5.0"
            Parameter-Request Option 55, length 12:
              Subnet-Mask, Domain-Name, Default-Gateway, Domain-Name-Server
              Netbios-Name-Server, Netbios-Node, Netbios-Scope, Router-Discovery
              Static-Route, Classless-Static-Route, Classless-Static-Route-Microsoft, Vendor-Option
            Agent-Information Option 82, length 29:
              Circuit-ID SubOption 1, length 19: Vlan100+Ethernet1/1
              Remote-ID SubOption 2, length 6: 250-25
            END Option 255, length 0
20:29:01.738108 IP (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 363)
    192.168.100.2.67 > 192.168.100.130.68: [udp sum ok] BOOTP/DHCP, Reply, length 335, xid 0xd947daeb, Flags [none] (0x0000)
          Your-IP 192.168.100.130
          Client-Ethernet-Address 48:5b:39:7b:db:41
          Vendor-rfc1048 Extensions
            Magic Cookie 0x63825363
            DHCP-Message Option 53, length 1: ACK
            Server-ID Option 54, length 4: 192.168.100.2
            Lease-Time Option 51, length 4: 3600
            Subnet-Mask Option 1, length 4: 255.255.255.0
            Domain-Name Option 15, length 15: "dns.here"
            Default-Gateway Option 3, length 4: 192.168.100.1
            Domain-Name-Server Option 6, length 4: 192.168.100.2
            FQDN Option 81, length 11: 255/255 "admin-M-^OM-^J"
            Agent-Information Option 82, length 29:
              Circuit-ID SubOption 1, length 19: Vlan100+Ethernet1/1
              Remote-ID SubOption 2, length 6: 250-25
            END Option 255, length 0

>> и что вас:

Client-ID Option 61, length 7: ether b8:a3:86:14:1d:c8
>> а в логах:

DHCPDISCOVER from b8:a3:86:14:1d:c8 via em1: network test: no free leases

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

5. "isc-dhcpd option 82"  +/
Сообщение от АлексейТ (ok) on 09-Фев-13, 23:15 
попробовал tshark

Option: (t=82,l=14) Agent Information Option
        Option: (82) Agent Information Option
        Length: 14
        Value: 010400010004020664700291440f
        Agent Circuit ID: 00010004
        Agent Remote ID: 64700291440f
End Option

как match писать?

match if (binary-to-ascii(10,8,"",suffix(option agent.circuit-id,1)) = "10004") and
(binary-to-ascii(16,8,"",substring(option agent.remote-id,2,6)) = "64700291440f");

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "isc-dhcpd option 82"  +/
Сообщение от alexmasz (ok) on 10-Фев-13, 10:40 
> как match писать?
> match if (binary-to-ascii(10,8,"",suffix(option agent.circuit-id,1)) = "10004") and
>  (binary-to-ascii(16,8,"",substring(option agent.remote-id,2,6)) = "64700291440f");

у меня так:

log(info, "***");
if exists agent.circuit-id {
        log( info,concat("*Leased ",binary-to-ascii(10,8,".",leased-address)," (with opt82)") );
        log( info,concat("*Remote-ID: ",binary-to-ascii(16,8,":",substring(option agent.remote-id,2,6))) );
        log( info,concat("*Port: ",binary-to-ascii(10,8,"",suffix(option agent.circuit-id,1))) );
} else {
        log( info,concat("*Leased ",binary-to-ascii(10,8,".",leased-address)," (without opt82)") );
}
log(info, "***");

class "247-10-1/4" { match if option agent.circuit-id="Vlan100+Ethernet1/4" and option agent.remote-id="247-10"; }

shared-network vlan100 {
        subnet 192.168.100.0 netmask 255.255.255.0 {
                option domain-name-servers 192.168.100.2;
                option domain-name "dns.here";
                authoritative;
                option routers 192.168.100.1;

## vlan100-247
        pool { range 192.168.100.124; allow members of "247-10-1/4"; }

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

7. "isc-dhcpd option 82"  +/
Сообщение от АлексейТ (ok) on 10-Фев-13, 11:34 
я просто думаю, что у меня ошибка именно в match, но не знаю как это проверить :(
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

8. "isc-dhcpd option 82"  +/
Сообщение от АлексейТ (ok) on 10-Фев-13, 13:15 
еще как не стараюсь не пишет в логи данные, которые приходят с option 82
конфигов по логам перепробовал штук 5, вот последний:
if exists agent.circuit-id
{
log (
info, concat( " Lease for ", binary-to-ascii (10, 8, ".", leased-address),
" Swith port: ",
binary-to-ascii (10, 8, ".", option agent.circuit-id),
" Switch MAC: ",
binary-to-ascii (16, 8, ":", suffix ( option agent.remote-id, 6)),
" Switch IP: ",
binary-to-ascii(10, 8, ".", packet(24, 4)),
" VLAN: ",
binary-to-ascii (10, 16, "", substring( option agent.circuit-id, 2, 2)),
" MAC on the port: ",
binary-to-ascii (16, 8, ":", substring(hardware, 1, 6))
)
);
}

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "isc-dhcpd option 82"  +/
Сообщение от АлексейТ (ok) on 10-Фев-13, 15:29 
поставил получение ip стандартно с hardware ethernet с вышеуказанным логированием получил в логах строку:

Lease for 10.1.255.2 Swith port: 0.1.0.5 Switch MAC: 64:70:2:91:44:f Switch IP: 0.0.0.0 VLAN: 5 MAC on the port: b8:a3:86:14:1d:c3

подправил conf по полученным данным, похоже вопрос решен!

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру