DHCP 4.0.2, execute() and hardware address mismatch

Sławomir Paszkiewicz paszczus at gmail.com
Tue Oct 19 11:29:18 UTC 2010


I`ve been testing that hack for a while and i found one problem:

While commit everything is ok, but on release/expiry i`m getting an error in
logs:

2010-10-19 13:15:23 data: hardware: raw packet not available
2010-10-19 13:15:23 data: hardware: raw packet not available
2010-10-19 13:15:23 data: hardware: raw packet not available
2010-10-19 13:15:23 data: hardware: raw packet not available
2010-10-19 13:15:23 data: hardware: raw packet not available
2010-10-19 13:15:23 data: hardware: raw packet not available
2010-10-19 13:15:23 data: hardware: raw packet not available
2010-10-19 13:15:23 data: hardware: raw packet not available
2010-10-19 13:15:23 execute_statement argv[0] = /opt/dnsmasq/dhcpv2
2010-10-19 13:15:23 execute_statement argv[1] = del
2010-10-19 13:15:23 execute: bad arg 2
2010-10-19 13:15:23 execute_statement argv[1] = del
2010-10-19 13:15:23 execute: bad arg 2

and script fails, because of missing ClientMAC.


My config:

on release {

set ClientIP = binary-to-ascii(10, 8, ".", leased-address);

set ClientMAC = concat (suffix (concat ("0", binary-to-ascii (16, 8, "",
substring(hardware,1, 1))),2),":",suffix (concat ("0", binary-to-ascii (16,
8, "", substring(hardware, 2, 1))),2),":",suffix (concat("0",
binary-to-ascii (16, 8, "", substring(hardware, 3, 1))),2),":",suffix
(concat ("0", binary-to-ascii (16, 8, "", substring(hardware,
4,1))),2),":",suffix (concat ("0", binary-to-ascii (16, 8, "",
substring(hardware, 5, 1))),2),":",suffix (concat ("0", binary-to-ascii (16,
8, "",substring(hardware, 6, 1))),2));

execute("/opt/dnsmasq/dhcpv2", "del", clientMAC, clientIP);
}

on expiry {

set ClientIP = binary-to-ascii(10, 8, ".", leased-address);

set ClientMAC = concat (suffix (concat ("0", binary-to-ascii (16, 8, "",
substring(hardware,1, 1))),2),":",suffix (concat ("0", binary-to-ascii (16,
8, "", substring(hardware, 2, 1))),2),":",suffix (concat("0",
binary-to-ascii (16, 8, "", substring(hardware, 3, 1))),2),":",suffix
(concat ("0", binary-to-ascii (16, 8, "", substring(hardware,
4,1))),2),":",suffix (concat ("0", binary-to-ascii (16, 8, "",
substring(hardware, 5, 1))),2),":",suffix (concat ("0", binary-to-ascii (16,
8, "",substring(hardware, 6, 1))),2));

execute("/opt/dnsmasq/dhcpv2", "del", clientMAC, clientIP);

}

Best regards,
paszczus

W dniu 18 października 2010 09:11 użytkownik <Uwe.Buchwitz at gavi.de> napisał:

> Hello,
>
> with:
>
>          ( concat (
>                         suffix (concat ("0", binary-to-ascii (16, 8,
> "",substring(hardware, 1, 1))),2),":",
>                         suffix (concat ("0", binary-to-ascii (16, 8,
> "",substring(hardware, 2, 1))),2),":",
>                         suffix (concat ("0", binary-to-ascii (16, 8,
> "",substring(hardware, 3, 1))),2),":",
>                         suffix (concat ("0", binary-to-ascii (16, 8,
> "",substring(hardware, 4, 1))),2),":",
>                         suffix (concat ("0", binary-to-ascii (16, 8,
> "",substring(hardware, 5, 1))),2),":",
>                         suffix (concat ("0", binary-to-ascii (16, 8,
> "",substring(hardware, 6, 1))),2)
>                 ),
>
> you get the correct format.
>
> Best regards,
>
> Uwe
>
>
>  Von:
> Sławomir Paszkiewicz <paszczus at gmail.com>
> An:
> dhcp-hackers at lists.isc.org
> Datum: 11.10.2010 12:41 Betreff: DHCP 4.0.2, execute() and hardware
> address mismatch Gesendet von: dhcp-hackers-bounces+uwe.buchwitz=gavi.de@
> lists.isc.org
> ------------------------------
>
>
>
> Hello,
> I`m trying to migrate from DNSMasq to ISC DHCP because of failover.
> My problem is that MAC Addresses (hardware) are in different format than
> iptables accept (i`m executing script via execute() which call iptables
> -A FORWARD -m mac --mac-source .... -j ACCEPT).
>
> In ISC DHCP logs format is correct:
>
> DHCPREQUEST for 10.59.146.180 from 00:d0:b8:0c:ba:d8 via eth0
>
> But 'hardware' (i`m using binary-to-ascii(16, 8, ":",
> substring(hardware,1, 6));) gives me:
>
> 0:d0:b8:c:ba:d8 which is incorrect for iptables:
>
> # iptables -A FORWARD -m mac --mac-source 0:d0:b8:c:ba:d8 -s
> 10.59.146.180 -j ACCEPT
> iptables v1.4.4: Bad mac address "0:d0:b8:c:ba:d8"
>
> My question is how to get correct (for iptables) format (same as in dhcp
> logs) ?
>
> Best regards,
> paszczus
> _______________________________________________
> dhcp-hackers mailing list
> dhcp-hackers at lists.isc.org
> https://lists.isc.org/mailman/listinfo/dhcp-hackers
>
>
> _______________________________________________
> dhcp-hackers mailing list
> dhcp-hackers at lists.isc.org
> https://lists.isc.org/mailman/listinfo/dhcp-hackers
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.isc.org/pipermail/dhcp-hackers/attachments/20101019/62ac70a5/attachment.html>


More information about the dhcp-hackers mailing list