Tolerance is, of course, related to your bitrate and other tolerance factors, but suffice it to say that ANY CAN interface is going to need better than 1% tolerance, and even that cannot be held by internal chip oscillators. In general, you can say that the semi-synchronous nature of CAN requires frequency error on the order of <0.1% to keep all participants in lock-step, so definitely crystal-based.