there's your problem, double-NAT.
Shut off DHCP on the comcast router, set your dlink up with your dynamic public IP, only the dlink should be handing out addresses.
also- Crossover is not needed. Switches auto-switch, crossovers are needed for connecting 2 non-switching devices.