I would like to use an Arduino Ethernet board with a CAN-BUS Shield to make a simple Ethernet ↔ CAN gateway. However, it seems like I am running into troubles with the SPI. Is it realistic to use another SS for the CAN board or is this idea just beyond the Arduino world?
If the CAN traffic is heavy and/or transmit speed is high, you will reach the limit. Not the SPI transmission speed, but the total handling speed.
Why not use a micro which has integrated CAN and ethernet. I use LPC1769, which is a Cortex M3 @ 120MHz on a LPCXpresso board. With this board, you only need to add a CAN transceiver. Everything ethernet is already onboard, except the connector.
You could also try Mbed.
Many STM32 evaluation boards also have everything onboard.
Any Atmel AVR with SPI could mate with a WizNet full module (not chipset), and your TCP/IP/ICMP/ARP is all off-loaded, for 5-8 concurrent sockets. Moreover, the packet buffers are off-loaded - and with small RAM AVRs, these features are essential.
CAN is “just” 150Kbps as I recall, in common vehicular use. Not a big load. Its stack can be big and complicated though.
The LPCXpresso boards are good for a one-of project. But look at the on-board vs. off-loaded TCP/IP. It drives the software architecture due to the packet events.