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

21

CentOS 6.0

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

If you're appending to (-A) or deleting from (-D) a chain, you'll want to apply it to network data traveling in one of three directions:

  • INPUT - All incoming packets are checked against the rules in this chain.
  • OUTPUT - All outgoing packets are checked against the rules in this chain.
  • FORWARD - All packets being sent to another computer are checked against the rules in this chain.

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

    
por Mike B 18.10.2013 / 01:36

2 respostas

22

OUTPUT é para pacotes que são emitidos pelo host. Seu destino é geralmente outro host, mas pode ser o mesmo host através da interface de loopback, portanto, nem todos os pacotes que passam por OUTPUT são, na verdade, 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 investigar o mnangling e o NAT, a história completa é bem mais complexa .

    
por 18.10.2013 / 01:43
0

No meu entender:

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

OUTPUT: src IP é do host, ou porta

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

Por exemplo, para o roteador A

INPUT é:

192.168.10.1 -> 192.168.10.199

192.168.10.1 -> 192.168.2.1

OUTPUT é:

192.168.10.199 -> x.x.x.x

192.168.2.1 -> x.x.x.x

FORWARD é:

192.168.10.1 -> 192.168.2.199

192.168.10.1 -> 192.168.8.1

192.168.10.1 -> 192.168.8.199

    
por 25.12.2015 / 20:28