Entenda quando no dia de uma vida de uma mensagem ICMP “echo reply” as tabelas “ip rule” são consultadas

4

Eu tenho um PC com duas interfaces: eth0 (endereço IP 192.168.1.16 ) e eth2 (endereço IP 10.10.10.73 ). Além disso, tenho uma rota de host neste PC na tabela main , que diz que se o endereço de destino for 172.16.1.1 , use eth0 interface.

Agora, quando envio "solicitação de eco" do ICMP de 172.16.1.1 para 10.10.10.73 ( eth2 interface), a "resposta de eco" do ICMP é enviada de eth0 (tenho o RPF desabilitado) usando 192.168.1.16 como um IP de origem. Tudo isso é o esperado devido a essa rota de host.

No entanto, quando eu adiciono um ip rule com o seletor from 10.10.10.73 e a ação lookup test logo após o número da regra 0 e a tabela test contém simplesmente uma rota padrão usando eth2 interface, então ICMP "echo reply "é enviado pela interface eth2 .

Estou confuso como esse seletor from 10.10.10.73 pode coincidir. Quando no dia da vida de uma mensagem de "resposta de eco" do ICMP, o IP de origem era 10.10.10.73 , de modo que a correspondência ocorreu?

    
por Martin 02.06.2017 / 01:22

2 respostas

3

De acordo com o Roteamento de políticas usando o Linux , pacotes originados da máquina local destinada a sistemas externos entrarão na política de roteamento banco de dados depois de passar pelas cadeias de saída, e é aqui que o seletor from 10.10.10.73 corresponderá ao pacote de resposta de eco de saída de 10.10.10.73 destinado a 172.16.1.1 .

De link :

Consider the path for an externally sourced packet destined for an internal service. It enters the system and is processed by the entrance packet mangling and tagging stage, Pre-Route(1). This stage is where you would apply packet mangling operations such as fwmark and TOS/QoS tagging or perhaps the NetFilter NAT. The packet then enters the RPDB to obtain routing and is routed to the Input(2) chain. The Input chain provides the firewalling functions for packets destined to the Local Machine services.

The reverse scenario is the packet path for an internal service sourced packet destined for an external system, such as the reply packet to the one described in the previous paragraph. It exits the Local Machine and enters the Output(4) chains, which provides the firewalling functions. It then enters the RPDB for route processing and exits the system via the exit packet mangling and tagging stage, Post-Route(5).

    
por 09.06.2017 / 09:48
0

O seletor from 10.10.10.73 corresponde porque a resposta de eco é emitida a partir desse endereço. No entanto, nesse caso, não é a maneira recomendada para prosseguir. Porque from 10.10.10.73 pode se aplicar a qualquer coisa que vá para outra interface que a eth0 fazendo uma rota ruim nesse caso. Você deve usar to 172.16.1.1 em sua regra de IP.

O endereço de origem correspondente está relacionado ao fato de que usar ip rule faz a decisão de roteamento relacionada a uma tabela de consulta dedicada fazer com que o pacote ignore o endereço padrão src especificado pela rota dessa interface, como o que você verá em %código%

O que acontece é na parte vermelha deste diagrama: diagrama de viagem de pacotes do kernel

Sem ip route list table local o pacote chega na sua máquina para o processo local, e por causa da rota padrão a resposta vem da eth0 (obviamente com o endereço IP da eth0). Devido à tabela de consulta de alteração do processo de roteamento ip rule e não usar o endereço IP padrão da interface que contém a rota até o destino, agora ele usa o endereço IP da interface de resposta.

    
por 09.06.2017 / 20:53