Hi Ben,
Thanks for the reply. You're absolutely right about the ordering of the iface statements. I modified my interfaces file such that the bonding parameters followed "iface bond0 inet static" and now it loads the bonding module and adds a default gateway for IPV4. The configuration below works properly. I'm pretty sure I know what happened. I've been using bonding with IPV4-only for quite a while; I used the Debian howto to set it up. I recently added a Hurricane Electric 6in4 tunnel to my pfsense router and therefore added the "iface bond0 inet6 static" section. Restarting the bond using "ifdown bond0 && ifup bond0" worked, perhaps because the bonding module was already loaded. I wasn't able to find much documentation about how to setup a bond with both IPV4 and IPV6. The bonding guide is IPV4 only, and the IPV6 guide doesn't discuss bonding.
However, I still think there's something wrong with my configuration. If I attempt to use "iface bond0 inet6 dhcp", I get an IP from the DHCPv6 server, but no default gateway is created, so attempting to access the internet results in no route to host. I know Router Advertisements and DHCPv6 are working as other Windows and Linux clients are working (tested with both SLAAC and DHCPv6 w/RA). Do you know why I'm not getting a default route when using DHCPv6?
auto lo
iface lo inet loopback
iface eth0 inet manual
iface eth1 inet manual
auto bond0
iface bond0 inet dhcp
slaves eth0 eth1
bond_mode 802.3ad
bond_miimon 100
bond_downdelay 200
bond_updelay 200
mtu 9000
iface bond0 inet6 static
address 2001:470:8:1141::2
netmask 64
gateway 2001:470:8:1141::1
auto eth2
iface eth2 inet static
address 10.0.0.1
netmask 255.255.255.0
mtu 9000
Thanks,
Jason