No link abaixo há uma imagem explicando o fluxo de pacotes entre cadeias emnftables
Entendo tudo menos uma coisa, a imagem não explica em que fase é routing decision
feito?
Segundo a imagem deverá ser feito em 2 locais:
- Depois
prerouting
do gancho, mas antesinput
eforward
capuz - Antes
output
do gancho quando um pacote sai do processo localhost
O primeiro ponto acima faz sentido porque existem 2 ganchos possíveis a seguir prerouting
, no entanto, para o ponto 2 não está claro qual decisão de roteamento deve ser executada, pois a única opção de fluxo do processo local é o output
gancho, portanto não deve haver nenhuma decisão de roteamento, mas o a imagem diz que existe um.
Isso me faz acreditar que existe apenas uma decisão de roteamento que está no ponto 1 acima.
Por que a imagem especifica routing decision
o nó entre local process
e output
o gancho?
SNAT
é feito no postrouting
gancho que, de acordo com a documentação, "vê todos os pacotes após o roteamento, pouco antes de saírem do sistema local"
Mas a questão é qual roteamento? já que existem 2 decisões de roteamento de acordo com a imagem.
E aliás. o que é "decisão de roteamento" (nó na imagem) Não acho que seja NAT
porque NAT
é feito em prerouting
e postrouting
ganchos.
A imagem está certa.
O roteamento é feito apenas uma vez: por
Local Process
ser um ponto inicial ou final, um fluxo de pacotes passa por apenas uma decisão de roteamento. Para o seu segundo ponto, o fluxo passará por:Não há nada antes disso, então ele passará apenas por uma decisão de roteamento. Neste caso, decisão de roteamento significa escolher para qual endereço IP, através de qual interface, você enviará seu pacote. Se eu quiser enviar um pacote para 1.1.1.1, isso significaria fazer:
Portanto, enviarei meu pacote (srcip:192.168.1.254, dstip:1.1.1.1) para 192.168.1.1 na minha interface Wi-Fi wlp0s20f3. Depois de escolher isso, posso alterar o ip de origem do cabeçalho IP se quiser fazer snat.