tabela de roteamento configurada com "ip route" parte do "iptables"?
772
Essa pergunta é frequente e já tem muitas respostas, mas ainda não entendi. O roteamento está configurado com "ip route add .." parte do fluxo do iptables? A "decisão de roteamento" como na figura a seguir é a tabela de roteamento configurada com "rota ip"?
Não pretendo conhecer o código-fonte da rede do kernel do Linux e do Netfilter, mas eis como o entendo.
O roteamento está configurado com "ip route add .." parte do fluxo do iptables?
A resposta curta é sim. Veja abaixo uma resposta mais longa.
A "decisão de roteamento" como na figura a seguir é a tabela de roteamento configurada com "rota ip"?
A resposta curta é sim. Veja abaixo uma resposta mais longa.
Eu considero o "iptables" um comando que configura o Netfilter e seus hooks, então vou falar do Netfilter ao invés do iptables.
O roteamento configurado com "ip route add" vai para a(s) tabela(s) de roteamento da rede kernel, e a "decisão de roteamento" do seu diagrama usa as tabelas de roteamento da rede kernel. Se você observar o diagrama no link a seguir , encontrará uma versão mais detalhada do diagrama que você postou. Como no seu diagrama, a "decisão de roteamento" aparece no fluxo e, portanto, parece fazer parte do fluxo do Netfilter. No entanto, se você quiser ser técnico, poderá notar que, de acordo com o código de cores na legenda, a "decisão de roteamento" na verdade faz parte de "Outras redes" e não faz parte da NF (Netfilter). Vou deixar você decidir se ainda considera isso parte do "fluxo".
Observe que há mais nas tabelas de roteamento de rede do kernel do que apenas o que foi adicionado por "ip route add", como rotas locais criadas automaticamente quando as interfaces são configuradas. A ip route show table allpode mostrar algumas dessas rotas adicionais.
Acredito que a "decisão de roteamento" esteja relacionada à resposta de roteamento que você obtém do ip route getcomando. Supondo que você use os valores apropriados para os parâmetros do comando (com base em onde você está no fluxo de NF, pois alguns valores de rede podem ter mudado (por exemplo, endereço de destino alterado por uma entrada DNAT)).
ip route get ROUTE_GET_FLAGS ADDRESS [ from ADDRESS iif STRING ] [ oif
STRING ] [ mark MARK ] [ tos TOS ] [ vrf NAME ] [ ipproto PRO‐
TOCOL ] [ sport NUMBER ] [ dport NUMBER ]
Observe que os namespaces de rede podem influenciar quais tabelas de rede do kernel são usadas e quais regras do Netfilter são percorridas.
Não pretendo conhecer o código-fonte da rede do kernel do Linux e do Netfilter, mas eis como o entendo.
O roteamento está configurado com "ip route add .." parte do fluxo do iptables? A resposta curta é sim. Veja abaixo uma resposta mais longa.
A "decisão de roteamento" como na figura a seguir é a tabela de roteamento configurada com "rota ip"? A resposta curta é sim. Veja abaixo uma resposta mais longa.
Eu considero o "iptables" um comando que configura o Netfilter e seus hooks, então vou falar do Netfilter ao invés do iptables.
O roteamento configurado com "ip route add" vai para a(s) tabela(s) de roteamento da rede kernel, e a "decisão de roteamento" do seu diagrama usa as tabelas de roteamento da rede kernel. Se você observar o diagrama no link a seguir , encontrará uma versão mais detalhada do diagrama que você postou. Como no seu diagrama, a "decisão de roteamento" aparece no fluxo e, portanto, parece fazer parte do fluxo do Netfilter. No entanto, se você quiser ser técnico, poderá notar que, de acordo com o código de cores na legenda, a "decisão de roteamento" na verdade faz parte de "Outras redes" e não faz parte da NF (Netfilter). Vou deixar você decidir se ainda considera isso parte do "fluxo".
Observe que há mais nas tabelas de roteamento de rede do kernel do que apenas o que foi adicionado por "ip route add", como rotas locais criadas automaticamente quando as interfaces são configuradas. A
ip route show table all
pode mostrar algumas dessas rotas adicionais.Acredito que a "decisão de roteamento" esteja relacionada à resposta de roteamento que você obtém do
ip route get
comando. Supondo que você use os valores apropriados para os parâmetros do comando (com base em onde você está no fluxo de NF, pois alguns valores de rede podem ter mudado (por exemplo, endereço de destino alterado por uma entrada DNAT)).Observe que os namespaces de rede podem influenciar quais tabelas de rede do kernel são usadas e quais regras do Netfilter são percorridas.