web-dev-qa-db-fra.com

Quelle est la différence entre les chaînes OUTPUT et FORWARD dans iptables?

CentOS 6.0

J'étudie les iptables et je suis confus sur la différence entre les chaînes FORWARD et OUTPUT. Dans ma documentation de formation, il indique:

Si vous ajoutez à (-A) ou supprimez de (-D) une chaîne, vous souhaiterez l'appliquer aux données réseau voyageant dans l'une des trois directions:

  • INPUT - Tous les paquets entrants sont vérifiés par rapport aux règles de cette chaîne.
  • SORTIE - Tous les paquets sortants sont vérifiés par rapport aux règles de cette chaîne.
  • FORWARD - Tous les paquets envoyés à un autre ordinateur sont vérifiés par rapport aux règles de cette chaîne.

Cela m'embrouille parce que, dans mon esprit, les paquets partant pour un hôte SERONT sortants. Y a-t-il donc des scénarios où un paquet irait vers un autre ordinateur mais NE serait PAS "sortant"? Comment iptables distinguerait-il les deux?

25
Mike B

OUTPUT est destiné aux paquets émis par l'hôte. Leur destination est généralement un autre hôte, mais peut être le même hôte via l'interface de bouclage, donc tous les paquets qui passent par OUTPUT ne sont en fait pas sortants.

FORWARD est destiné aux paquets qui ne sont ni émis par l'hôte ni dirigés vers l'hôte. Ce sont les paquets que l'hôte achemine simplement.

Lorsque vous commencez à creuser dans la manipulation de paquets et le NAT, l'histoire complète est plutôt plus complexe .

À ma connaissance:

ENTRÉE: dst IP est sur l'hôte, même s'il a plusieurs ports avec plusieurs sous-réseaux

SORTIE: src IP provient de l'hôte, sur l'un des ports

AVANT: Ni IP dst sur l'hôte ni IP src de l'hôte

enter image description here

Par exemple, vers le routeur A

INPUT est:

192.168.10.1 -> 192.168.10.199

192.168.10.1 -> 192.168.2.1

LA SORTIE est:

192.168.10.199 -> x.x.x.x

192.168.2.1 -> x.x.x.x

AVANT c'est:

192.168.10.1 -> 192.168.2.199

192.168.10.1 -> 192.168.8.1

192.168.10.1 -> 192.168.8.199

1
flz