Si bien existe una cierta superposición en la funcionalidad entre las dos herramientas, hay muchas cosas que solo puede hacer desde una de las herramientas. iproute2
no puede hacer nada con las reglas de firewall de netfilter. iptables
No puede hacer cosas como asignar direcciones IP.
Incluso en lugares donde la funcionalidad parece superponerse, en realidad no se superpone. Por ejemplo, puede hacer la traducción de direcciones con ambos iproute2
y iptables
. Pero la traducción de direcciones que puede hacer con iproute no tiene en cuenta ningún estado y no hace ninguna reescritura del paquete. Existen varios protocolos de red como FTP, SIP, H.323, etc. donde las direcciones IP están incluidas dentro del paquete, y no solo en los encabezados. Si usa el método iproute para la traducción de direcciones, esos tipos de protocolos se romperán. Netfilter hace un trabajo mucho mejor en la traducción de direcciones.
En la mayoría de los casos donde la funcionalidad se superpone, se maneja de diferentes maneras. Es posible hacer un enrutamiento con un módulo iptables
, pero la última vez que verifiqué que el módulo no estaba en la mayoría de las distribuciones no tenía filtro de red / iptables
parcheado con el objetivo ROUTE . Si ese objetivo no está disponible, no puede usar netfilter para el enrutamiento a menos que esté de humor para compilar sus propios núcleos. Su decisión sobre qué herramienta usar se tomará simplemente porque la función no está disponible en la versión de las herramientas que está ejecutando. Incluso si tiene el objetivo ROUTE, por lo que entiendo, no es tan eficiente usar netfilter para las decisiones de enrutamiento como es hacerlo con las tablas de enrutamiento estándar con iproute2
manipuladores.
Mucho de esto también está utilizando la herramienta adecuada para el trabajo correcto. iproute2
está diseñado principalmente para administrar enrutamiento y direcciones en su computadora. iptables
/ Netfilter está construido para cortafuegos.
Creo que en lugares donde una persona podría usar cualquiera de las herramientas, usualmente usarán la herramienta con la que están más familiarizados. Sé que uso el objetivo MARK iptables
para marcar algunos paquetes para una ruta u otra, aunque podría escribir la misma regla con iproute2
.