¿Qué es un enrutador de software y cómo se implementa el plano de datos en los enrutadores de software?

Esto depende de la implementación exacta y de cómo defina el “enrutador de software”. Casi todos los enrutadores realizan al menos parte de su procesamiento de paquetes en software en una CPU de uso general, en lugar de hacerlo únicamente en chips dedicados ASIC o FPGA. Esto se debe a que parte del tráfico, es de esperar un porcentaje bajo, es mucho más fácil de implementar allí y eso reduce los costos del hardware. La mayoría de los enrutadores residenciales y SOHO realizan básicamente todo el enrutamiento en el software porque la carga total esperada no requiere la velocidad de los circuitos dedicados, aparte de (generalmente) las interfaces Ethernet que normalmente tienen algunos ASIC económicos (porque son muy comunes). Broadcom fabrica muchos de estos ASICS integrados en interfaces Ethernet:
Soporte de controlador NIC Ethernet

Los enrutadores de extremo superior generalmente tendrán más funcionalidad en ASIC o FPGA, y también serán más caros. Habiendo dicho eso, a menudo seguirán realizando algunas de sus operaciones de plano de datos en software.
Este documento sobre la arquitectura del enrutador Cisco 7200 puede ser esclarecedor:
Arquitectura del enrutador Cisco 7200 Series

Ahora, llegamos a las cosas nuevas, específicamente enrutadores que se ejecutan exclusivamente en software sin ningún ASIC como parte de una solución SDN / NFV. En estos casos, todas las funciones del plano de datos se realizan en software y la transferencia real de la VM a la red cableada es manejada (generalmente) por el hipervisor que tiene acceso a las interfaces Ethernet reales, que por supuesto tienen algunos ASIC.

Algunos ejemplos de esta tecnología serían:
Cisco Cloud Services Router 1000V Series – Productos y Servicios
Enrutador virtual para redes de proveedores de servicios y empresas

Acrónimos
ASIC = circuito integrado específico de la aplicación
FPGA = matriz de compuerta programable en campo
SDN = redes definidas por software
NFV = virtualización de funciones de red

Un enrutador de software es solo un enrutador que se implementa completamente en el software: la CPU hace todo el trabajo (ignorando el hecho de que las NIC se están volviendo más inteligentes y están haciendo un poco más cada generación). El plano de datos se implementa de manera bastante trivial: cuando se acepta un paquete de la NIC, la CPU lo examina y toma una decisión de cambio en función de su dirección IP. Puede elegir recibir el paquete y pasarlo a alguna entidad local; puede elegir descartar el paquete, opcionalmente con algún tipo de respuesta de error; o puede optar por enviarlo a otro sistema (host o enrutador) en una de sus interfaces de red. Suponiendo que el paquete no se está recibiendo, el encabezado del paquete se reescribe de acuerdo con la información en la tabla de reenvío y el paquete se transmite desde la NIC de salida.