You almost certainly don't want to have dhclient running on eth0 since that is likely to result in two different MAC addresses asking for DHCP configuration from your ISP (unless your cable modem is acting as a DHCP server).
Have you checked the pfSense firewall log for signs DHCP requests has been blocked by the firewall?
Have you done a packet capture in pfSense to look for DHCP traffic?
@otakucode:
Am I correct in thinking that if it were receiving requests, they would be recorded in the DHCP logs?
Yes
@otakucode:
If I tell the machine to use DHCP, I end up with a garbage IP (169.x.x.x).
That is the usual consequence of a machine not receiving DHCP response.
@otakucode:
In the VM, both the LAN and WAN connections are set to be bridged to the two physical NICs, one connected to my LAN, the other to my cable modem. In Ubuntu, in the /etc/network/interfaces file I configured the WAN-connected interface (eth0) to receive no IP, and the other interface is set up with eth1:1 with a static IP, and eth1 with no IP.
I'm not as familiar with Linux networking as I am with FreeBSD networking. What the meaning of an interface name like eth1:1? VLAN with VLAN tag 1 on physical interface eth1?
@otakucode:
I did notice both my adapters are now in promiscuous mode, which is apparently necessary for the bridged networking to function.
Yes.