Not that I am pitching Zebra/Quagga/Gated/a brand of chewing gum/...
The main issues I have with zebra are:
1. The need to install an OS on the host.
2. The need to harden it.
These are also part of having access to more features. If you can use them.
3. The possible hard disk failure (having *nix on ATA flash is no better
given the actual limits in the number of times one can write to flash).
True, but you can also boot these (OS-wise) from the network (not just the config file), so you upgrade an entire network automagically -- or you can set them to boot from the network if the HD fails.
There are things that I don't like with Cisco, but one thing I do like
is that it boots from flash and it takes no time to install an image,
remove the pcmcia card from the router, and boot different images from
the flash with the flip of a config command.
One problem is that with Cisco, unless you are buying the largest platforms available, each Cisco series uses different underlying hardware with different performance characteristics and images. You need to keep track of lots of separate images and versions when doing upgrades. With a network boot OS for each POP, you can do version control much much more easily.
The concept of appliance (vs. computer) comes to mind.
Yes, plenty of boxes can be made this way. I will let someone who knows more about this talk about it.
That being said,
How does zebra deal with QOS/priority/custom/queuing/LLQ? With CAR? With
QOS, priority/custom queueing are all KERNEL/underlying OS functions. If you are using Linux you have an absurd number of options here. Likewise with CAR. You have many more options (depending on your knowledge of these underlying OSes) than you do with dedicated routing hardware.
IDS? With route redistribution to/from OSPF or ISIS? With multichassis
Likewise, while you can get limited IDS functions on some dedicated HW, you can do much more advanced IDS, etc on a Unix based platform. You can do it all on one box instead of needing multiple ones to get the best-of-breed set of features.
OSPF and ISIS, etc redistribution is a Zebra/etc function and I am told it is pretty good at these functions.
multilink PPP? With spanning tree on multiple VLANs? With peer groups?
Most of these are OS functions, but I believe they support peer groups in the later editions of the software.
OS function. Works.
How does the host deal with 802.1q trunks? With Channel interfaces? With
hot-swapping a line card? With TCP MD5?
Hotswapping is a chassis function. The rest are OS functions.
These are the questions I ask myself when I pick a routing platform.
Cheap is of no use to me if it does not do what I need.
Of course, but you may not need all of these functions on your low-medium end, or you'll want to pick your alternate platform as thoughtfully as you'd pick a large-capital item.