I have two sites set up pretty much identically. One works and the other does not. My configuration is as follows. I use 6500 series switches at both sites. The only real difference is that the configuration at the site that works runs in hybrid mode (haven't had a chance to migrate yet, Sup32 w/MSFC2A) and the site that does not work runs in native (Sup720) mode. The user vlan uses a Windows DHCP server and the voice vlan uses DHCP defined on the IOS router. The ports on the access switches are configured to trunk allowing the voice and the data (native) vlans only on the trunk. When I bring up a phone for the first time, it appears to work as it gets an IP address and upgrades the boot file on the phone. When it reboots, it fails to get a request to the Windows DHCP server which then tells the phone through site specific options to go to the voice vlan. In any case, the only way I can get the phones to come up is to manually configure the voice vlan into the phone. It eventually grabs a dhcp address from the router and finishes all that it needs to do. Here's the weird thing however. When I do a show arp, the ip addresses on the phone appear just fine. But when I do a show ip dhcp binding command on the router, none of the IP addresses appear.
I've done packet captures from both the phone side and the Windows DHCP side and it appears that the requests from the phone never make it to the Windows DHCP server. Yes, I do have the correct ip helper-address on the user vlan. Are there any differences in how DHCP requests are handled by native vs. hybrid IOS? I can get the phones to work, but not the way they are supposed to.
Here's another strange thing. When I do a show ip dhcp binding on the router, I get the following output (and only the most recently plugged in phone shows up.)
STL-Core2-6506#sho ip dhcp binding
IP address Client-ID/ Lease expiration Type
10.200.80.151 0000.0000.0000 Nov 16 2007 02:46 PM Automatic
MAC address = all 0's? That's not right.
If anyone has any insight on this, I would greatly appreciate it.