Here's how I deal with the incomplete implementation of DHCP Client.
Screen shots and old 2.0 patch here:
DHCP Client Additional Custom Options Patch
http://forum.pfsense.org/index.php/topic,40194.0.html
2.1 patch here:
Advanced DHCP Client Options & Config File Override
Protocol Timing
Send Options
Request Options
Require Options
Option Modifiers
https://github.com/bsdperimeter/pfsense/pull/275
Optional config override file example from 2.0.1.
# Actiontec MI424-WR Router Impersonation
# ISP: Frontier FiOS
# Router Make: Actiontec
# Router Model: MI424WR-GEN2
# Router HW: Rev. F
# Router FW: 20.12.2.4
# pfSense 2.0.1 (FreeBSD 8.1)
#interface "de1" {
interface "{interface}" {
# DHCP Protocol Timing Values
timeout 60;
retry 1;
select-timeout 0;
initial-interval 1;
#bootp-broadcast-always; # Bootp flags: 0x8000 (Broadcast)
# DHCP Protocol Options
send dhcp-class-identifier "Wireless Broadband Router"; # Option 60 ## Hard Coded Class Identifier
send dhcp-client-identifier ""; # Option 61 ## Blank to Prevent Send
#send host-name "Wireless_Broadband_Router"; # Option 12 ## Hard Coded Host Name
send host-name "{hostname}"; # Option 12 ## Obtained From Web Configurator (WAN Hostname Setting)
send domain-name "home"; # Option 15 ## Hard Coded Domain Name
# V-I Vendor-specific Information # Option 125 ## Hard Coded MAC
#send option-125 "\x00\x00\x0d\xe9\x1f\x01\x06000FB3\x02\x0c00180160EB84\x03\x07MI424WR";
#send option-125 00:00:0d:e9:1f:01:06:30:30:30:46:42:33:02:0c:30:30:31:38:30:31:36:30:45:42:38:34:03:07:4d:49:34:32:34:57:52;
# V-I Vendor-specific Information # Option 125 ## Obtained From Web Configurator (WAN MAC Address Spoof Setting)
#send option-125 "\x00\x00\x0d\xe9\x1f\x01\x06000FB3\x02\x0c{mac_addr_asciiU}\x03\x07MI424WR";
#send option-125 00:00:0d:e9:1f:01:06:30:30:30:46:42:33:02:0c:{mac_addr_hexU:}:03:07:4d:49:34:32:34:57:52;
# Parameter Request List # Option 55 ## Hard Coded Parameter Request List
#request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, time-servers, log-servers, default-ip-ttl, interface-mtu, vendor-encapsulated-options, dhcp-requested-address, dhcp-lease-time, dhcp-server-identifier, dhcp-parameter-request-list, dhcp-class-identifier, dhcp-client-identifier, www-server, option-125;
request subnet-mask, broadcast-address, time-offset, routers, domain-name, domain-name-servers, time-servers, log-servers, default-ip-ttl, interface-mtu, vendor-encapsulated-options, dhcp-requested-address, dhcp-lease-time, dhcp-server-identifier, dhcp-parameter-request-list, dhcp-class-identifier, dhcp-client-identifier, www-server;
require subnet-mask, domain-name-servers, routers; # These are required by the client
script "/sbin/dhclient-script";
}