Qual é a diferença entre as cadeias OUTPUT e FORWARD no iptables?

Qual é a diferença entre as cadeias OUTPUT e FORWARD no iptables?

CentOS 6.0

Estou estudando iptables e estou ficando confuso sobre a diferença entre as cadeias FORWARD e OUTPUT. Na minha documentação de treinamento, afirma:

Se você estiver anexando (-A) ou excluindo (-D) uma cadeia, você desejará aplicá-la aos dados da rede que viajam em uma das três direções:

  • INPUT - Todos os pacotes recebidos são verificados em relação às regras desta cadeia.
  • SAÍDA - Todos os pacotes de saída são verificados em relação às regras desta cadeia.
  • FORWARD - Todos os pacotes enviados para outro computador são verificados em relação às regras desta cadeia.

Isso me confunde porque, na minha opinião, os pacotes que saem para um host SERIAM enviados. Então, existem cenários em que um pacote iria para outro computador, mas NÃO seria "de saída"? Como o iptables distinguiria entre os dois?

Responder1

OUTPUT é para pacotes emitidos pelo host. Seu destino geralmente é outro host, mas pode ser o mesmo host por meio da interface de loopback, portanto, nem todos os pacotes que passam por OUTPUT são de fato enviados.

FORWARD é para pacotes que não são emitidos pelo host nem direcionados ao host. Eles são os pacotes que o host está apenas roteando.

Quando você começa a pesquisar sobre manipulação de pacotes e NAT, a história completa éum pouco mais complexo.

Responder2

No meu entendimento:

ENTRADA: dst IP está no host, mesmo que tenha várias portas com várias sub-redes

SAÍDA: o IP src é do host, qualquer porta

FORWARD: Nem dst IP no host nem src IP do host

insira a descrição da imagem aqui

Por exemplo, para o roteador A

ENTRADA é:

192.168.10.1 -> 192.168.10.199

192.168.10.1 -> 192.168.2.1

A SAÍDA é:

192.168.10.199 -> xxxx

192.168.2.1 -> xxxx

FRENTE é:

192.168.10.1 -> 192.168.2.199

192.168.10.1 -> 192.168.8.1

192.168.10.1 -> 192.168.8.199

informação relacionada