Allright, I've done some more troubleshooting yesterday, and I decided to let the NIC issue rest, since the I211 (igb0) seems to have a proper connection and the I219 is working fine on the LAN side. I'm guessing the I219 simply can't be used for the WAN side or something.
I'm still not getting an WAN IP address though. The dhclient keeps sending DHCPDISCOVER's and it eventually ends with a FAIL. I've done a packet inspection on the DHCP port and the options it has are slightly different than what my DrayTek sends when I put it on the LAN side of the pfSense box. I've correctly spoofed its MAC which I know is locked at the ISP side, so that shouldn't be the problem. I've tried to mimic all the other option fields to make the DHCP request identical to what the DrayTek sends, but I'm having trouble with the hostname option field.
DrayTek sends this:
19:38:22.863598 XX:XX:XX:XX:XX:XX > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 590: (tos 0x0, ttl 127, id 0, offset 0, flags [none], proto UDP (17), length 576)
0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from XX:XX:XX:XX:XX:XX, length 548, xid 0x7b501da0, Flags [none] (0x0000)
Client-Ethernet-Address XX:XX:XX:XX:XX:XX
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Discover
Client-ID Option 61, length 7: ether XX:XX:XX:XX:XX:XX
Requested-IP Option 50, length 4: XXX.XXX.XXX.XXX
MSZ Option 57, length 2: 576
Vendor-Class Option 60, length 9: "Vigor2925"
Parameter-Request Option 55, length 5:
Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name
Option 212
And pfSense sends this:
19:41:30.692195 XX:XX:XX:XX:XX:XX > ff:ff:ff:ff:ff:ff, ethertype IPv4 (0x0800), length 342: (tos 0x10, ttl 128, id 0, offset 0, flags [none], proto UDP (17), length 328)
0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from XX:XX:XX:XX:XX:XX, length 300, xid 0x236406cf, Flags [none] (0x0000)
Client-Ethernet-Address XX:XX:XX:XX:XX:XX
Vendor-rfc1048 Extensions
Magic Cookie 0x63825363
DHCP-Message Option 53, length 1: Discover
Client-ID Option 61, length 7: ether XX:XX:XX:XX:XX:XX
Hostname Option 12, length 7: "pfSense"
Parameter-Request Option 55, length 9:
Subnet-Mask, BR, Time-Zone, Classless-Static-Route
Default-Gateway, Domain-Name, Domain-Name-Server, Hostname
Option 119
My DrayTek doesn't send a hostname (Option 12) whereas the pfSense box sends Hostname Option 12, length 7: "pfSense". Could this be it? If so, is there a way to remove the hostname option from the dhclient's requests, without affecting the general hostname setting of the pfSense box?