OUTPUT es para paquetes emitidos por el host. Su destino suele ser otro host, pero puede ser el mismo host a través de la interfaz de bucle invertido, por lo que no todos los paquetes que pasan por OUTPUT son de hecho salientes.
FORWARD es para paquetes que no son emitidos por el host ni dirigidos al host. Son los paquetes que el host simplemente enruta.
Cuando comienzas a profundizar en la manipulación de paquetes y NAT, la historia completa es bastante más compleja.
A mi entender:
ENTRADA:dst IP está en el host, incluso tiene múltiples puertos con múltiples subredes
SALIDA:src IP es del host, cualquier puerto
ADELANTE:Ni dst IP en el host ni src IP del host
Por ejemplo, al enrutador A
ENTRADA es:
192.168.10.1 -> 192.168.10.199
192.168.10.1 -> 192.168.2.1
SALIDA es:
192.168.10.199 -> x.x.x.x
192.168.2.1 -> x.x.x.x
ADELANTE es:
192.168.10.1 -> 192.168.2.199
192.168.10.1 -> 192.168.8.1
192.168.10.1 -> 192.168.8.199